# mosaic_v2-electronic-pay

_Witnessed 2026-09-04T19:34:13.633Z — QRATE-UAT-1_

**Two passes.** Pass 1 drove this fixture with ONE diner on table 9971 and is kept whole under `pass1-solo-table9971/` (notes, screenshots, video, trace). This pass puts a second person on the table, because the canary journey is a two-diner one.

> **What pass 1 found, in one line:** a lone diner who taps *Check Please* is taken straight to *“You’re covering the whole table / Almost there.”* with **Pay now on my phone** and **Have my server bring it** — no Cover-or-Split choice, the staff already notified, and **no amount on the screen**. Screenshot: `pass1-solo-table9971/diner/06-how-would-you-like-to-settle.png`.

**I press nothing that pays.** Not `payhow-pay-now`, not `payhow-server`. Live Stripe test merchant; both controls move the table's settlement state.

### 01 · DINER 1

**I expected:** I sit down and put a drink in my basket

**I saw:** In. Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 1 Canary I

### 02 · DINER 2

**I expected:** my friend scans the same code and adds a drink too

**I saw:** She is on the table too. Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Ice

### 03 · DINER 1

**I expected:** my phone should now show me there are two of us

**I saw:** My basket header shows: "1 Quinn (You)", "2 All", "1 Supergirl". Two of us.

### 04 · DINER 1

**I expected:** I send the order to the kitchen for both of us

**I saw:** Sent. Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3

> **The sheet, word for word:** — REQUEST CHECK — Staff notified and will be with you shortly! How would you like to settle your bill? Cover Split the check (2)

> **Controls inside the sheet:** `service-response-message`, `settlement-cover`, `settlement-split`

### 05 · DINER 1

**I expected:** now I ask for the check — and I expect to be asked how to split it

**I saw:** I got cover-or-split fork. Sheet: "— REQUEST CHECK — Staff notified and will be with you shortly! How would you like to settle your bill? Cover Split the check (2)". Not one money figure inside the sheet.

> **Cover-scope sheet:** — REQUEST CHECK — Staff notified and will be with you shortly! Who are you covering? Just me Someone on the table The whole table ← Back

### 06 · DINER 1

**I expected:** if I am offered a choice, I choose to cover the whole table

**I saw:** Fork said "— REQUEST CHECK — Staff notified and will be with you shortly! How would you like to settle your bill? Cover Split the check (2)". Then it asked cover-scope-just-me, cover-scope-someone, cover-scope-table — "— REQUEST CHECK — Staff notified and will be with you shortly! Who are you covering? Just me Someone on the table The whole table ← Back". I picked the whole table.

> **The pay-how fork, word for word:** — REQUEST CHECK — Staff notified and will be with you shortly! You’re covering the whole table Almost there. Pay now on my phone Apple Pay, Google Pay or card Have my server bring it Cash or card at the table ← Back

> `payhow-pay-now` → “Pay now on my phone Apple Pay, Google Pay or card”

> `payhow-server` → “Have my server bring it Cash or card at the table”

> **I stop here on purpose.** Either control is a settlement action against a live Stripe test merchant. My brief forbids pressing them, so the boundary this walk reports is mine, not the product's.

### 07 · DINER 1

**I expected:** and here the app asks me HOW to pay — this is as far as I go

**I saw:** Offered “Pay now on my phone Apple Pay, Google Pay or card” and “Have my server bring it Cash or card at the table”. Sheet: "— REQUEST CHECK — Staff notified and will be with you shortly! You’re covering the whole table Almost there. Pay now on my phone Apple Pay, Google Pay or card Have my server bring it Cash or card at the table ← Back". Still not one money figure. I have been told WHO I am paying for and asked HOW I want to pay, and never once told WHAT I owe.

### 08 · DINER 1

**I expected:** I get cold feet and back out without paying

**I saw:** Back left me on: `payhow-pay-now`, `payhow-server`, `service-response-message`. Screen: Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baselin

### 09 · DINER 2

**I expected:** meanwhile, does my friend's phone know any of this is happening?

**I saw:** Nothing. Her phone shows the ordinary menu — no notice that someone is settling the whole table's bill on her behalf. Screen: Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baselin

> **Payment-ish network calls:** none

> **What I left behind:** table 9972 has a live session with two guests, one placed order, an open check request and an un-completed cover intent. Nothing was paid, no card was entered. Table 9971 from pass 1 is in the same state.

---

**Verdict:** WALKED

**Why it ended here:** Drove two diners from sitting down to the pay-how fork and stopped at the payment boundary by choice. The settle path presented itself as: cover-or-split fork.

---

## CORRECTION — written by me, against my own step 08

On step 08 I pressed "Back" on the pay screen, saw the same three controls afterwards, and let
that stand as if Back were broken. **I did not report it as a finding, and I was right not to** —
I went back and tested it properly, and **Back works**. My step-08 locator was a page-wide
`getByRole("button", {name:/back/i})` that need never have touched the sheet's own Back at all.

The proper test is `pass3-back-probe/` (table 9975, one diner). Pressing the element whose own
text is "Back", inside `service-bubble`:

- **disappeared:** `payhow-pay-now`, `payhow-server`
- **appeared:** `settlement-cover`, `settlement-split`
- tapping outside the sheet closes it entirely

So Back retreats one screen, exactly as it should, and I retract any suggestion otherwise.

**But that probe found something sharper than the thing it went looking for.** The diner in
`pass3-back-probe` was **alone**, and on tapping *Check Please* he was taken in one step to
*"You're covering the whole table / Almost there."* — yet pressing Back reveals
`settlement-cover` **and** `settlement-split` sitting there. The Cover-or-Split choice exists
for a lone diner; the app simply **skips past it and decides for him** that he is covering the
whole table. He only discovers he had a choice by trying to retreat from a screen he did not
ask to be on.
