QRATE-UAT-1 · Witness Room

Keyed by ledger number. Open a W# to see every time it was walked, newest first — each run with a video per role, the full trace, and what I expected versus what I actually saw. Walked by hand at human pace: five seconds of stillness after every screen.
44 journeys · 44 walked · 0 not walked yet · 213 runs · built 2026-09-09 01:24 UTC.
Every journey in this room has footage. A row that could not be driven at all is not listed here as an unfinished walk — it is in Blocked (34) below, with the reason. Deferred is not the test: 15 of the rows above hit a wall partway, and the part that worked is still worth watching.
24 ledger rows are deliberately not in this room — nothing to film (D1 is API-only, SPINE_OK never reached a human surface), nothing to learn (an honest green is the board and I agreeing), or D5, which is my own harness being wrong rather than a product finding. They keep their evidence in the ledger: out of the room is not out of the record. 4 more sit in Ad-hoc requests below — clean verdict, in the room only because it was explicitly asked for.

Enter jumps to the first match · Esc clears

show all walked not walked yet blocked

Canary Honesty Ledger Partial Walks reportHow this was checked

W-001 active-menu-window False green PATRON · 11 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:15 UTC STOPPED 3 steps · 1 video(s) · trace

Why it ended here: It does not. I am shown 1 dishes and no closed message, including "Canary Dinner Special" - a 17:00-23:00 dish, at 12:15:29 local. The server was asked the same question twice: closed=true/items=0 then closed=false/items=0 - the only thing that changed between them is that the app minted a table session for me. Screen reads: Mains C Canary Dinner Special Canary dinner-only item — DO NOT MODIFY. $22.99 ✦ ✦ ✦ ✦ — BEFORE YOU BROWSE — Anything we should know? Do you have any dietary restrictions or allergens? We’ll tailor the

open trace viewer trace.zip notes spec

patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
my phone agrees the restaurant is shut right now
I saw
My phone reads 12:15:29 local (Asia/Dhaka) - after breakfast, before dinner.
02PATRON
I expected
the very first thing the server tells my phone is that it is shut
I saw
Its first answer is menus_closed=true with 0 items. The gate works at the server. Everything after this is about what my phone then SHOWS me.
03PATRON
I expected
so the screen tells me they are closed, and offers me no dishes
I saw
STOPPED — It does not. I am shown 1 dishes and no closed message, including "Canary Dinner Special" - a 17:00-23:00 dish, at 12:15:29 local. The server was asked the same question twice: closed=true/items=0 then closed=false/items
W-002 bar-tender Partial green PATRON · 6 steps 2 runs

see this row in the honesty ledger →

Evidenced by the menu-stability walk — one walk can answer more than one canary.

2026-09-04 05:53 UTC WALKED 3 steps · 1 video(s) · trace

Anant, table 12 — a quiet table, so I disturb nobody's meal. — just me, a diner reading the menu twice.

Why it ended here: read the menu twice and found the drinks — that is the whole promise

open trace viewer trace.zip notes spec

patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I open the menu and it actually has dishes on it
I saw
I can count 32 dishes I could add. The page reads: Bud Light Michelob Ultra Drinks Starters Mains Desserts LASSI 4 BEER (BOTTLE) 11 ANANT MOCKTAILS 7 BEER (DRAFT) 4 SODA 6 Lassi 4 dishes Lass > **Does the menu hold still:** 32 dishes the first time, 32 the second.
02PATRON
I expected
I look away and look again — the same dishes are still there
I saw
32 dishes — exactly the same as before > **Drinks band:** I can see drinks, beer, cocktail, mocktail, wine, lassi, soda. The bar-tender canary skips its own cocktail steps because its fixture has no cocktails — on a real restaurant menu the drinks are plainly there.
03PATRON
I expected
I can find the drinks on the menu, the way a thirsty person would
I saw
drinks I can see: drinks, beer, cocktail, mocktail, wine, lassi, soda
2026-09-04 05:53 UTC WALKED 3 steps · 1 video(s) · trace

Anant, table 12 — a quiet table, so I disturb nobody's meal. — just me, a diner reading the menu twice.

Why it ended here: read the menu twice and found the drinks — that is the whole promise

open trace viewer trace.zip notes spec

patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I open the menu and it actually has dishes on it
I saw
I can count 32 dishes I could add. The page reads: Bud Light Michelob Ultra Drinks Starters Mains Desserts LASSI 4 BEER (BOTTLE) 11 ANANT MOCKTAILS 7 BEER (DRAFT) 4 SODA 6 Lassi 4 dishes Lass > **Does the menu hold still:** 32 dishes the first time, 32 the second.
02PATRON
I expected
I look away and look again — the same dishes are still there
I saw
32 dishes — exactly the same as before > **Drinks band:** I can see drinks, beer, cocktail, mocktail, wine, lassi, soda. The bar-tender canary skips its own cocktail steps because its fixture has no cocktails — on a real restaurant menu the drinks are plainly there.
03PATRON
I expected
I can find the drinks on the menu, the way a thirsty person would
I saw
drinks I can see: drinks, beer, cocktail, mocktail, wine, lassi, soda
W-003 boost-special Partial green OWNER, PATRON · 14 steps 1 run

see this row in the honesty ledger →

Evidenced by the recs-boost-special walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC WALKED 7 steps · 2 video(s) · trace

Why it ended here: walked the owner controls and the diner surface end to end

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01OWNER
I expected
I sign in and land on my restaurant
I saw
owner app at https://owner.dev.qrate-ai.com/owner/dashboard/?restaurantId=99e9d621-6941-4acc-8d85-50f15f3a2f2b. Screen: Skip to main content QRate Canary Kitchen — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner GOOD EVENING, CANARY What would you like to do? 29% > **On the dish LIST, words that could mean "promote":** none
02OWNER
I expected
I open one of my dishes to promote it
I saw
dish editor open with tabs: Dish Properties | Menus (1) | Modifiers | Pairings | Performance. Screen: Skip to main content QRate Canary Kitchen — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Warnings 45 CSV Add Dish Food Categories All Items 40 Appetize > **What each tab of the dish editor offers:** > ``` > Dish Properties: words [] · named controls ["food-library-table-sort-groupings","food-library-groupings-count","tab-groupings"] · 3 toggles/sliders > Menus (1): words ["Boost","Chef","special"] · named controls ["food-library-table-sort-groupings","food-library-groupings-count","tab-groupings","placements-tab-boost-a2a9c07d-5214-4091-a20d-29f3afeef68b","placements-tab-chefs-special-a2a9c07d-5214-4091-a20d-29f3afeef68b"] · 4 toggles/sliders > Modifiers: words [] · named controls ["food-library-table-sort-groupings","food-library-groupings-count","tab-groupings","food-item-groupings-section","grouping-add-new","groupings-list","grouping-row-b3fcdd9d-4ee3-4e98-aa04-73b09e6b8960","grouping-name-b3fcdd9d-4ee3-4e98-aa04-73b09e6b8960","grouping-rule-b3fcdd9d-4ee3-4e98-aa04-73b09e6b8960-trigger","grouping-pricing-label-b3fcdd9d-4ee3-4e98-aa04-73b09e6b8960","grouping-pricing-toggle-b3fcdd9d-4ee3-4e98-aa04-73b09e6b8960","grouping-rename-b3fcdd9d-4ee3-4e98-aa04-73b09e6b8960","grouping-add-member-b3fcdd9d-4ee3-4e98-aa04-73b09e6b8960"] · 4 toggles/sliders > Pairings: words [] · named controls ["food-library-table-sort-groupings","food-library-groupings-count","tab-groupings","food-item-groupings-section","groupings-list","grouping-row-c5d9c5c6-eaf2-4d83-948f-52a280c0eecc","grouping-name-c5d9c5c6-eaf2-4d83-948f-52a280c0eecc","grouping-rule-c5d9c5c6-eaf2-4d83-948f-52a280c0eecc-trigger","grouping-rename-c5d9c5c6-eaf2-4d83-948f-52a280c0eecc","grouping-add-member-c5d9c5c6-eaf2-4d83-948f-52a280c0eecc"] · 3 toggles/sliders > Performance: words [] · named controls ["food-library-table-sort-groupings","food-library-groupings-count","tab-groupings"] · 3 toggles/sliders > ```
03OWNER
I expected
I look on EVERY tab of the dish for a way to boost it or mark it a chef's pick
I saw
across 5 tabs — a boost control: true; a chef's-pick control: true > **What the promote controls say:** > ``` > boost: None Low Moderate High -> Skip to main content QRate Canary Kitchen — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Warnings 45 CSV Add Dish Food Categories All Items 40 Appetizers 2 Beverages 11 Desserts 2 Entrees 19 Sides 6 Add category Modifiers Add-ons 7 Custom Modifier Food Restrictions & Spice Dietary 5 Allergens 9 Spice Levels 5 PHOTO NAME SPICE VISIBILITY SPICE REQUIRED MENUS GROUPINGS VISIBILITY Canary Cae > chefs-special: -> Skip to main content QRate Canary Kitchen — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Warnings 45 CSV Add Dish Food Categories All Items 40 Appetizers 2 Beverages 11 Desserts 2 Entrees 19 Sides 6 Add category Modifiers Add-ons 7 Custom Modifier Food Restrictions & Spice Dietary 5 Allergens 9 Spice Levels 5 PHOTO NAME SPICE VISIBILITY SPICE REQUIRED MENUS GROUPINGS VISIBILITY Canary Cae > ```
04OWNER
I expected
I open the Boost and Chef's Special controls and read what they tell me
I saw
boost: None Low Moderate High · chefs-special: > **The other places an owner would look:** > ``` > Menu builder: words [] · named controls [] > Personalize: words [] · named controls [] > Insights · recommendations: words [] · named controls [] > ```
05OWNER
I expected
If it is not on the dish, it is on the menu builder or Personalize
I saw
none of the three mentions boosting, chef's picks or featuring a dish
06PATRON
I expected
I sit down at a table in this restaurant
I saw
passed: dietary question. Menu: C Canary Caesar Salad Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT > **What each course shows me:** > ``` > Beverages: 9 dishes · words [] · controls ["m2-hero","m2-hero-slide-7d344d5f-d008-4ce7-a149-d896863987f2"] > Appetizers: 1 dishes · words [] · controls ["m2-hero","m2-hero-slide-7d344d5f-d008-4ce7-a149-d896863987f2"] > Entrees: 13 dishes · words [] · controls ["m2-hero","m2-hero-slide-7d344d5f-d008-4ce7-a149-d896863987f2"] > Desserts: 1 dishes · words [] · controls ["m2-hero","m2-hero-slide-7d344d5f-d008-4ce7-a149-d896863987f2"] > ```
07PATRON
I expected
Somewhere on this menu the restaurant tells me what it recommends
I saw
{"Beverages":{"tiles":9,"words":[],"badgeIds":["m2-hero","m2-hero-slide-7d344d5f-d008-4ce7-a149-d896863987f2"]},"Appetizers":{"tiles":1,"words":[],"badgeIds":["m2-hero","m2-hero-slide-7d344d5f-d008-4ce7-a149-d896863987f2"]},"Entrees":{"tiles":13,"words":[],"badgeIds":["m2-hero","m2-hero-slide-7d344d5f-d008-4ce7-a149-d896863987f2"]},"Desserts":{"tiles":1,"words":[],"badgeIds":["m2-hero","m2-hero-slide-7d344d5f-d008-4ce7-a149-d896863987f2"]}} **Cleanup:** none — I changed nothing.
W-004 cross-journey-ledger False green PATRON, WAITER · 13 steps 6 runs

see this row in the honesty ledger →

Evidenced by the w004-bill2 walk — one walk can answer more than one canary.

2026-09-05 19:54 UTC SPINE_OK 2 steps · 1 video(s) · trace

Why it ended here: The Bill tab.

open trace viewer trace.zip notes spec

waiter screen
0:00
01WAITER
I expected
What exactly are the three tabs on this sheet
I saw
tab-like elements: [{"tag":"BUTTON","cls":"flex-1 py-2.5 text-xs font-semibold capi","text":"\"guests\"","x":0,"y":285,"w":427,"h":38,"kids":0},{"tag":"BUTTON","cls":"flex-1 py-2.5 text-xs font-semibold capi","text":"\"Service\"","x":427,"y":285,"w":427,"h":38,"kids":1},{"tag":"SPAN","cls":"flex items-center justify-center gap-1","text":"\"Service\"","x":427,"y":296,"w":427,"h":16,"kids":0},{"tag":"BUTTON","cls":"flex-1 py-2.5 text-xs font-semibold capi","text":"\"bill\"","x":853,"y":285,"w":427,"h":38,"kids":0}]
02WAITER
I expected
Tap Bill and see what a waiter gets
I saw
Bill: serve controls = NONE; buttons = Orders 8 | Tables | Wine | Guests | Service | Bill
2026-09-05 19:52 UTC SPINE_OK 2 steps · 1 video(s) · trace

Why it ended here: Service / Bill / Guests tabs of the table sheet.

open trace viewer trace.zip notes spec

waiter screen
0:00
01WAITER
I expected
Tap Service on my table sheet and look
I saw
Service: serve controls = NONE. Canary Mosaic — dev Server: Canary Mosaic Waiter Active Orders 8 Tables Wine Table 9905 Canary Table 9905 No guests Table 9906 Canary Table 9906 No guests Table 9907 Canary Table 9907 No guests Table 9908 Canary Table 9908 No guests Table 9909 Canary Table 9909 No guests Table 9910 Canary Table 9910 No guests Table 991
02WAITER
I expected
Tap Bill on my table sheet and look
I saw
STOPPED — no "Bill" label on screen at all > Stopped: no "Bill" label on screen at all
2026-09-05 19:26 UTC SPINE_OK 5 steps · 1 video(s) · no trace

Why it ended here: A targeted look for a per-dish serve control. Not a verdict on the journey.

notes spec

waiter screen
0:00
01WAITER
I expected
I open my table and note exactly what the sheet offers
I saw
sheet reads: Canary Mosaic — dev Server: Canary Mosaic Waiter Active Orders 8 Tables Wine Table 9905 Canary Table 9905 No guests Table 9906 Canary Table 9906 No guests Table 9907 Canary Table 9907 No guests Table 9908 Canary Table 9908 No guests Table 9909 Canary Table 9909 No guests Table 9910 Canary Table 9910
02WAITER
I expected
I tap one dish's row, in case the actions are hidden behind it
I saw
tapping the dish revealed: nothing new. Canary Mosaic — dev Server: Canary Mosaic Waiter Active Orders 8 Tables Wine Table 9905 Canary Table 9905 No guests Table 9906 Canary Table 9906 No guests Table 9907 Canary Table 9907 No guests Table
03WAITER
I expected
I put the order into the till, then look again
I saw
pressed Enter in POS. New controls: none. Sheet: Canary Mosaic — dev Server: Canary Mosaic Waiter Active Orders 8 Tables Wine Table 9905 Canary Table 9905 No guests Table 9906 Canary Table 9906 No guests Table 9907 Canary Table 9907 No guests Table 9908 Canary Table 9908 No guests Table 9909 Canary Table 9909 No guests Table 9910 Canary Table 9910
04WAITER
I expected
And on the orders list, what can I do to this order now
I saw
0 card(s) for my table. Controls: n/a. Card: Canary Mosaic — dev Server: Canary Mosaic Waiter Active Orders 8 Tables Wine Table 9905 Canary Table 9905 No guests Table 9906 Canary Table 9906 No guests Table 9907 Canary Table 9907 No guests Table
05WAITER
I expected
The Service and Bill tabs of my table, in case serving lives there
I saw
Service: Canary Mosaic — dev Server: Canary Mosaic Waiter Active Orders 8 Tables Wine Table 9905 Canary Table 9905 No guests Table 9906 Canary Table 9906 No guests Table 9907 Canary Table 9 || Bill: Canary Mosaic — dev Server: Canary Mosaic Waiter Active Orders 8 Tables Wine Table 9905 Canary Table 9905 No guests Table 9906 Canary Table 9906 No guests Table 9907 Canary Table 9
2026-09-05 19:20 UTC INCOMPLETE 7 steps · 2 video(s) · trace

Why it ended here: I can find no way to serve a SINGLE dish. On the orders list the only serve control is order-mark-served-484d56b0, which is the whole order. Screen reads: Canary Mosaic — dev Server: Canary Mosaic Waiter Active Orders 8 Tables Wine Table 9905 Canary Table 9905 No guests Table 9906 Canary Table 9906 No guests Table 9907 Canary Table 9907 No guests Table 9908 Canary Table 9908 No guests Table 9

open trace viewer trace.zip notes

patron screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
01PATRON
I expected
I sit down at table 10094 and the menu comes up
I saw
gates: dietary question; 9 dishes I can add. Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair t
02PATRON
I expected
I choose four dishes
I saw
I picked: Canary Iced Tea Canary baseline beverage | Canary Cola Canary baseline drink — DO N | Canary IPA Canary baseline drink — DO NO | Canary Lager Canary baseline drink — DO. Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 1 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair
03WAITER
I expected
The waiter can see somebody is at my table
I saw
table 10094 card reads "Table 10094 Canary Table 10094 Mipha Settling — 0/1 covered"
04PATRON
I expected
I place the order for all four
I saw
Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair the wine → More 8 dishes C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary IPA Canary > **My order card carries these controls:** `rail-badge-pending`, `order-status-action-484d56b0-33cf-4f8d-a568-dd6e4793f8a4`
05WAITER
I expected
My order shows up on the waiter's list
I saw
card 484d56b0 of 20 on the list reads: T10094 Guest just now New Canary Cola Canary Iced Tea Canary IPA Canary Lager Enter in POS — Canary Mosaic — dev Server: Canary Mosaic Waiter Active Orders 8 Tables Wine 20 C
06WAITER
I expected
The waiter puts it into the till and starts the kitchen
I saw
no till button on this card; pressed the status control; card now reads: T10094 Guest just now ✓ In POS New Canary Cola Canary Iced Tea Canary IPA Canary Lager Entering… > **On the table sheet the waiter has:** `cancel-item-btn-3a9d3921-0723-4139-9638-a0ca184faed5`, `cancel-item-btn-4e894e01-7fb9-43da-bd34-ed4ddfcaae96`, `cancel-item-btn-9efc8c97-71b8-44b4-a54f-f67efc174d07`, `cancel-item-btn-c767328a-06f2-4a74-919a-923128636e44`, `edge-banner-bottom`, `edge-banner-left`, `edge-banner-overlay`, `edge-banner-right`, `edge-banner-top`, `group-action-order-placed`, `group-header-order-placed`, `guest-pill-be2af9c3-1d96-40f5-8bc7-739d52104075`, `guests-item-row-3a9d3921-0723-4139-9638-a0ca184faed5`, `guests-item-row-4e894e01-7fb9-43da-bd34-ed4ddfcaae96`, `guests-item-row-9efc8c97-71b8-44b4-a54f-f67efc174d07`, `guests-item-row-c767328a-06f2-4a74-919a-923128636e44`, `logout-btn`, `notifications-bell`, `staff-orders-page`, `status-toggle`, `tab-orders`, `tab-tables`, `tab-wine`, `table-card-10000`, `table-card-10001`, `table-card-10002`, `table-card-10003`, `table-card-10004`, `table-card-10005`, `table-card-10006`, `table-card-10007`, `table-card-10008`, `table-card-10009`, `table-card-10010`, `table-card-10011`, `table-card-10012`, `table-card-10013`, `table-card-10014`, `table-card-10015`, `table-card-10016`, `table-card-10017`, `table-card-10018`, `table-card-10019`, `table-card-10020`, `table-card-10021`, `table-card-10022`, `table-card-10023`, `table-card-10024`, `table-card-10025`, `table-card-10026`, `table-card-10027`, `table-card-10028`, `table-card-10029`, `table-card-10030`, `table-card-10031`, `table-card-10032`, `table-card-10033`, `table-card-10034`, `table-card-10035`, `table-card-10036`, `table-card-10037`, `table-card-10038`, `table-card-10039`, `table-card-10040`, `table-card-10041`, `table-card-10042`, `table-card-10043`, `table-card-10044`, `table-card-10045`, `table-card-10046`, `table-card-10047`, `table-card-10048`, `table-card-10049`, `table-card-10050`, `table-card-10051`, `table-card-10052`, `table-card-10053`, `table-card-10054`, `table-card-10055`, `table-card-10056`, `table-card-10057`, `table-card-10058`, `table-card-10059`, `table-card-10060`, `table-card-10061`, `table-card-10062`, `table-card-10063`, `table-card-10064`, `table-card-10065`, `table-card-10066`, `table-card-10067`, `table-card-10068`, `table-card-10069`, `table-card-10070`, `table-card-10071`, `table-card-10072`, `table-card-10073`, `table-card-10074`, `table-card-10075`, `table-card-10076`, `table-card-10077`, `table-card-10078`, `table-card-10079`, `table-card-10080`, `table-card-10081`, `table-card-10082`, `table-card-10083`, `table-card-10084`, `table-card-10085`, `table-card-10086`, `table-card-10087`, `table-card-10088`, `table-card-10089`, `table-card-10090`, `table-card-10091`, `table-card-10092`, `table-card-10093`, `table-card-10094`, `table-card-10095`, `table-card-10096`, `table-card-10097`, `table-card-10098`, `table-card-10099`, `table-card-9905`, `table-card-9906`, `table-card-9907`, `table-card-9908`, `table-card-9909`, `table-card-9910`, `table-card-9911`, `table-card-9912`, `table-card-9913`, `table-card-9914`, `table-card-9915`, `table-card-9916`, `table-card-9917`, `table-card-9918`, `table-card-9919`, `table-card-9920`, `table-card-9921`, `table-card-9922`, `table-card-9923`, `table-card-9924`, `table-card-9925`, `table-card-9926`, `table-card-9927`, `table-card-9928`, `table-card-9929`, `table-card-9930`, `table-card-9931`, `table-card-9932`, `table-card-9933`, `table-card-9934`, `table-card-9935`, `table-card-9936`, `table-card-9937`, `table-card-9938`, `table-card-9939`, `table-card-9940`, `table-card-9941`, `table-card-9942`, `table-card-9943`, `table-card-9944`, `table-card-9945`, `table-card-9946`, `table-card-9947`, `table-card-9948`, `table-card-9949`, `table-card-9950`, `table-card-9951`, `table-card-9952`, `table-card-9953`, `table-card-9954`, `table-card-9955`, `table-card-9956`, `table-card-9957`, `table-card-9958`, `table-card-9959`, `table-card-9960`, `table-card-9961`, `table-card-9962`, `table-card-9963`, `table-card-9964`, `table-card-9965`, `table-card-9966`, `table-card-9967`, `table-card-9968`, `table-card-9969`, `table-card-9970`, `table-card-9971`, `table-card-9972`, `table-card-9973`, `table-card-9974`, `table-card-9975`, `table-card-9976`, `table-card-9977`, `table-card-9978`, `table-card-9979`, `table-card-9980`, `table-card-9981`, `table-card-9982`, `table-card-9983`, `table-card-9984`, `table-card-9985`, `table-card-9986`, `table-card-9987`, `table-card-9988`, `table-card-9989`, `table-card-9990`, `table-card-9991`, `table-card-9992`, `table-card-9993`, `table-card-9994`, `table-card-9995`, `table-card-9996`, `table-card-9997`, `table-card-9998`, `table-card-9999`, `table-detail-sheet`, `table-detail-tab-bill`, `table-detail-tab-guests`, `table-detail-tab-service`, `table-detail-tabs`, `table-settle-status` > **Everything on screen that mentions serving, delivering, an item or a status:** `cancel-item-btn-3a9d3921-0723-4139-9638-a0ca184faed5`, `cancel-item-btn-4e894e01-7fb9-43da-bd34-ed4ddfcaae96`, `cancel-item-btn-9efc8c97-71b8-44b4-a54f-f67efc174d07`, `cancel-item-btn-c767328a-06f2-4a74-919a-923128636e44`, `guests-item-row-3a9d3921-0723-4139-9638-a0ca184faed5`, `guests-item-row-4e894e01-7fb9-43da-bd34-ed4ddfcaae96`, `guests-item-row-9efc8c97-71b8-44b4-a54f-f67efc174d07`, `guests-item-row-c767328a-06f2-4a74-919a-923128636e44`, `status-toggle`, `table-settle-status`
07WAITER
I expected
The waiter serves ONE of my four dishes
I saw
STOPPED — I can find no way to serve a SINGLE dish. On the orders list the only serve control is order-mark-served-484d56b0, which is the whole order. Screen reads: Canary Mosaic — dev Server: Canary Mosaic Waiter Active Orders 8 > **What I left behind:** table 10094 still reads "1 new Table 10094 Canary Table 10094 Mipha Settling — 0/1 covered" — I could not close it.
2026-09-05 19:14 UTC INCOMPLETE 5 steps · 2 video(s) · trace

Why it ended here: My phone says all four dishes are ORDERED, and after two minutes the waiter's list still has no card for table 10093. The list itself is live - it is showing 19 orders for other tables. Top of the list: T10093 Guest 2m ago New Canary IPA Canary Iced Tea Canary Lager Canary Cola Enter in POS // T10092 Guest 6m ago New Canary IPA Canary Lager Canary Iced Tea Canary Cola Enter in POS // T10091 Captain America 10m ago New Canary Lager Canary Iced Tea Canary IPA Canary Cola Ent // T9963 Guest 11m ago Cancelled M2MS B1 35219472

open trace viewer trace.zip notes

patron screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
01PATRON
I expected
I sit down at table 10093 and the menu comes up
I saw
gates: dietary question; 9 dishes I can add. Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair t
02PATRON
I expected
I choose four dishes
I saw
I picked: Canary Iced Tea Canary baseline beverage | Canary Cola Canary baseline drink — DO N | Canary IPA Canary baseline drink — DO NO | Canary Lager Canary baseline drink — DO. Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 1 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair
03WAITER
I expected
The waiter can see somebody is at my table
I saw
table 10093 card reads "Table 10093 Canary Table 10093 Winston Deavor Settling — 0/1 covered"
04PATRON
I expected
I place the order for all four
I saw
Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair the wine → More 8 dishes C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary IPA Canary
05WAITER
I expected
My order shows up on the waiter's list
I saw
STOPPED — My phone says all four dishes are ORDERED, and after two minutes the waiter's list still has no card for table 10093. The list itself is live - it is showing 19 orders for other tables. Top of the list: T10093 Guest 2m a > **What I left behind:** table 10093 still reads "1 new Table 10093 Canary Table 10093 Winston Deavor Settling — 0/1 covered" — I could not close it.
2026-09-05 19:11 UTC INCOMPLETE 5 steps · 2 video(s) · trace

Why it ended here: I placed one order and the waiter's list shows 0 cards for table 10092. I cannot tell which is mine, so I will not act on any of them.

open trace viewer trace.zip notes

patron screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
01PATRON
I expected
I sit down at table 10092 and the menu comes up
I saw
gates: dietary question; 9 dishes I can add. Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair t
02PATRON
I expected
I choose four dishes
I saw
I picked: Canary Iced Tea Canary baseline beverage | Canary Cola Canary baseline drink — DO N | Canary IPA Canary baseline drink — DO NO | Canary Lager Canary baseline drink — DO. Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 1 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair
03WAITER
I expected
The waiter can see somebody is at my table
I saw
table 10092 card reads "Table 10092 Canary Table 10092 Xavi Settling — 0/1 covered"
04PATRON
I expected
I place the order for all four
I saw
Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair the wine → More 8 dishes C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary IPA Canary
05WAITER
I expected
My order shows up on the waiter's list
I saw
STOPPED — I placed one order and the waiter's list shows 0 cards for table 10092. I cannot tell which is mine, so I will not act on any of them. > **What I left behind:** table 10092 still reads "1 new Table 10092 Canary Table 10092 Xavi Settling — 0/1 covered" — I could not close it.

Other evidence · lane-pos — Driven by a subagent lane, not a human-paced witness walk — screenshots and checkpoints, no role video and no trace. Stated so this is not read as the same grade of evidence.

W-010 food-tags-invariant Partial green OWNER, PATRON · 9 steps 2 runs

see this row in the honesty ledger →

Evidenced by the menu-food-tags walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC WALKED 4 steps · 2 video(s) · trace

Why it ended here: Read the tags, then watched the vegetarian filter act on them.

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01OWNER
I expected
I read which of my dishes are tagged vegetarian and which have no tag at all
I saw
6 dietary controls: food-library-rail-group-restrictions="Food Restrictions & Spice Dietary 6 Alle", food-library-item-type-tab-dietary="Dietary 6", food-library-item-type-tab-dietary-count="6", food-library-item-type-tab-allergens="Allergens 9", food-library-item-type-tab-allergens-count="9", food-library-table-row-85605a6b-51e3-4993-aee8-3b65c4c5a059="M2BDA Allergen 61289182 Off Optional 1 m" > **Dietary controls on the dish editor:** food-library-item-type-tab-dietary="Dietary 6" · food-library-item-type-tab-dietary-count="6" · food-library-item-type-tab-allergens="Allergens 9" · food-library-item-type-tab-allergens-count="9" · food-library-table-row-85605a6b-51e3-4993-aee8-3b65c4c5a059="M2BDA Allergen 61289182 Off Op" · food-library-table-row-f25a8c0c-c370-4a2e-937d-35d3f514d7db="M2BDA Vegan 61289182 Off Optio" · dietary-info-card="🍽️DIETARY INFO DIETARY RESTRI" · dietary-section-dietary="DIETARY RESTRICTIONS Vegetaria" · dietary-pill-dietary-vegetarian="Vegetarian" · dietary-pill-dietary-vegan="Vegan" · dietary-pill-dietary-gluten-free="Gluten-Free" · dietary-pill-dietary-halal="Halal" · dietary-pill-dietary-kosher="Kosher" · dietary-pill-dietary-jain="Jain" · dietary-pill-dietary-na="N/A" · dietary-section-allergen="ALLERGENS Dairy Eggs Fish Shel" · dietary-pill-allergen-dairy="Dairy" · dietary-pill-allergen-eggs="Eggs" · dietary-pill-allergen-fish="Fish" · dietary-pill-allergen-shellfish="Shellfish" · dietary-pill-allergen-tree-nuts="Tree Nuts" · dietary-pill-allergen-peanuts="Peanuts" · dietary-pill-allergen-wheat="Wheat" · dietary-pill-allergen-soy="Soy" · dietary-pill-allergen-sesame="Sesame"
02OWNER
I expected
I open one dish and read its dietary tags
I saw
25 dietary controls on the dish editor. > **Entrees: 3 dishes before, 2 after "vegetarian".** > **Before:** Canary Fries Canary base · Canary Grilled Chicken C · Canary Margherita Canary > **After:** Canary Fries Canary base · Canary Margherita Canary
03PATRON
I expected
I sit down and tell the menu I am vegetarian
I saw
3 -> 2 dishes. > **Survived the vegetarian filter:** Canary Fries Canary · Canary Margherita Canary > **Filtered out:** Canary Grilled Chicken
04PATRON
I expected
The dishes that survive are the ones actually tagged vegetarian
I saw
1 removed, 2 kept.
2026-09-04 06:30 UTC WALKED 7 steps · 2 video(s) · trace

Why it ended here: Compared the owner's real tags against what the vegetarian filter left me.

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01OWNER
I expected
I open my food library
I saw
Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Warnings 22 CSV Add Dish Food Categories All Items 16 Appetizers 2 Beverages 9 Dess > **Canary Fries** — dietary pills that read as CHOSEN: N/A (out of 17 pills offered)
02OWNER
I expected
I open "Canary Fries" and read the dietary tags that are set on it
I saw
chosen: N/A > **Canary Grilled Chicken** — dietary pills that read as CHOSEN: N/A · N/A (out of 17 pills offered)
03OWNER
I expected
I open "Canary Grilled Chicken" and read the dietary tags that are set on it
I saw
chosen: N/A, N/A > **Canary Margherita** — dietary pills that read as CHOSEN: **none** (out of 17 pills offered)
04OWNER
I expected
I open "Canary Margherita" and read the dietary tags that are set on it
I saw
NOTHING is selected — this dish carries no dietary tag at all. > **Before:** Canary Fries Canary · Canary Grilled Chicken · Canary Margherita Canary → **after "vegetarian":** Canary Fries Canary · Canary Margherita Canary
05PATRON
I expected
I sit down, say I am vegetarian, and see which of the three survive
I saw
3 -> 2 > **Oracle:** the owner screenshots `owner/02..04-*.png`, not the attribute scrape. A pill's selected state on this design system is carried by styling that `className`/`aria-pressed` do not expose. > **Attribute scrape (unreliable, recorded only so nobody re-derives it):** Canary Fries: N/A · Canary Grilled Chicken: N/A/N/A · Canary Margherita: -
06BOTH
I expected
What the owner's screen actually shows against what the filter left me
I saw
Before: Canary Fries Canary, Canary Grilled Chicken, Canary Margherita Canary · after vegetarian: Canary Fries Canary, Canary Margherita Canary
07PATRON
I expected
Now I say I am VEGAN — a vegetarian-but-not-vegan dish must go too
I saw
STOPPED — locator.click: Timeout 25000ms exceeded.
W-014 micro-kitchen-delivery-address Honest red CANARY, PATRON, WAITER · 6 steps 1 run

see this row in the honesty ledger →

Evidenced by the mk-delivery-address walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC WALKED 8 steps · 2 video(s) · trace

Why it ended here: Confirmed the reachable half of a journey the board reports as not passing.

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I arrive at the micro kitchen and it offers me a way to get food
I saw
9 dish(es) I could tap. Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baseline beverage — DO NOT
02PATRON
I expected
I put something in my basket and go to order
I saw
Basket shows 1. Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 1 Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 C C > **Method controls in the basket:** _none by testid_ · page text mentions pickup/delivery: **false**
03PATRON
I expected
Now it should ask me pickup or delivery
I saw
STOPPED — With a full basket, still neither a pickup nor a delivery choice anywhere. Screen: Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 1 Canary Iced Tea Canary baseline beverage — DO
04PATRON
I expected
I can reach somewhere to tell it WHERE to deliver
I saw
STOPPED — No address field and no address control is reachable from here. Screen: Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 1 Canary Iced Tea Canary baseline beverage — DO NOT MODIFY
05PATRON
I expected
and where a person is stopped from finishing
I saw
Pressing Place order stops me at the signup gate — a micro kitchen needs to know who to hand the bag to. Going past it needs a confirmed diner account this container does not hold, so I do not walk the "order carries the address" step. > **Order-shaped things on this dashboard:** 1 price(s), 1 table reference(s). Filter chip bar present: true (its six status words are chrome, not orders).
06OWNER
I expected
As the owner, I look at the orders this kitchen has taken
I saw
The dashboard is showing real orders: 1 price(s), undefined status word(s). Skip to main content QRate Canary Micro Kitchen Delivery — dev Home Food Items Menu Orders Personalize Insights Collection Payments C Canary Owner Orders Track and manage restauran
07OWNER
I expected
I open the order to see where it should go
I saw
The order is open (detail region grew 765 -> 886 chars). Skip to main content QRate Canary Micro Kitchen Delivery — dev Home Food Items Menu Orders Personalize Insights Collection Payments C Canary Owner Orders Track and manage restaurant orders Canary Micro Kitchen Delivery — dev Canary Kitchen — dev Canary Marquee > **In the opened order:** address word present: **false** · something shaped like a street address: **false** · location shown as: `Table 10075`
08OWNER
I expected
Does the open order tell me where to deliver it?
I saw
No. With the order open, there is nothing shaped like a delivery address. The only location on it is "Table 10075" — a TABLE number, on a kitchen whose whole point is that there are no tables. Region reads: Orders Track and manage restaurant orders Canary Micro Kitchen Delivery — dev Canary Kitchen — dev Canary Marquee — dev Canary Micro Kitchen Delivery — dev Canary Micro Kitchen — dev Canary Micro Kitchen Windowless — dev Canary Mosaic — dev
W-020 micro-kitchen-order-type-window Partial green CANARY, PATRON · 7 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC STOPPED 7 steps · 2 video(s) · trace

Why it ended here: It asked who I am instead of when I want it.

open trace viewer trace.zip notes

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01OWNER
I expected
I sign in and confirm this really is a micro kitchen
I saw
The dashboard is headed "Canary Micro Kitchen — " and reads: Skip to main content QRate Canary Micro Kitchen — dev Home Food Items Menu Orders 50 Personalize Insights Collection Payments C Canary Owner GOOD EVENING, CANARY · FRIDAY, SEPTEMBER 4 Canary Micro Kitchen — dev Dashboard Your QR code ORDERS OVERVIEW 100 23 new > **This kitchen's own sidebar offers me:** **Home** (`/owner/dashboard/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03`) · **Food Items** (`/owner/food-items/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03`) · **Menu** (`/owner/menu/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03`) · **Orders 50** (`/owner/order-dashboard/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03`) · **Personalize** (`/owner/personalize/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03`) · **Insights** (`/owner/insights/order-history/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03`) · **Collection** (`/owner/settings/fulfilment/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03`) · **Payments** (`/owner/settings/payments/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03`) > **Every page in that sidebar, read:** > > - **Home** `/owner/dashboard/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03` HTTP 200 → nothing about lead times, order types, notice or a booking horizon > - **Food Items** `/owner/food-items/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03` HTTP 200 → nothing about lead times, order types, notice or a booking horizon > - **Menu** `/owner/menu/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03` HTTP 200 → nothing about lead times, order types, notice or a booking horizon > - **Orders 50** `/owner/order-dashboard/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03` HTTP 200 → Collection window > - **Personalize** `/owner/personalize/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03` HTTP 200 → nothing about lead times, order types, notice or a booking horizon > - **Insights** `/owner/insights/order-history/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03` HTTP 200 → 24h > - **Collection** `/owner/settings/fulfilment/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03` HTTP 200 → lead time, Party, party, 48 h, Booking horizon, collection window, Collection window > - **Payments** `/owner/settings/payments/?restaurantId=d79cd122-d52a-5484-804d-f5e1c84a7b03` HTTP 200 → nothing about lead times, order types, notice or a booking horizon
02OWNER
I expected
I go looking for where the 24h and 48h floors are set
I saw
Lead-time / order-type words appear on: Orders 50 (Collection window) ; Insights (24h) ; Collection (lead time,Party,party,48 h,Booking horizon,collection window,Collection window) > **Collection windows the kitchen is actually holding right now:** Mon, Sep 7, 10:34 PM – 12:34 AM | Mon, Sep 7, 10:34 PM – 12:34 AM | Sun, Oct 4, 09:03 PM – 10:03 PM | Sat, Sep 5, 05:00 PM – 07:00 PM | Sat, Sep 5, 05:00 PM – 07:00 PM
03OWNER
I expected
I read the kitchen's own order board to see what a real window looks like
I saw
The board shows PICKUP and DELIVERY orders carrying collection windows such as Mon, Sep 7, 10:34 PM – 12:34 AM | Mon, Sep 7, 10:34 PM – 12:34 AM | Sun, Oct 4, 09:03 PM – 10:03 PM.
04PATRON
I expected
As a customer I cart something at this kitchen
I saw
9 dishes; one is in my basket. > **Before I pressed order, anything about a pickup time:** nothing
05PATRON
I expected
I press Place order and try to reach the when-do-you-want-it screen
I saw
STOPPED — It asked who I am instead of when I want it.
06PATRON
I expected
I sign in with the account this container was given, to get past the gate
I saw
STOPPED — It refused me: "Incorrect username or password." — so I cannot get to the picker at all.
07PATRON
I expected
If I am through, I read the dates and times I am offered
I saw
STOPPED — Still at the who-are-you panel — there is no picker to read.
W-022 micro-kitchen-signup-gate Partial green CANARY, PATRON, WAITER · 6 steps 1 run

see this row in the honesty ledger →

Evidenced by the mk-signup-gate-signed-in walk — one walk can answer more than one canary.

2026-09-05 17:41 UTC WALKED 5 steps · 1 video(s) · no trace

— a customer ordering from a micro kitchen — there is no table, so the kitchen has to know who to hand the bag to.

Why it ended here: got past the identity gate with a real account and saw what steps 2 and 3 actually ask for

notes spec

patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I browse and fill a basket without anyone asking who I am
I saw
I got all the way to Place order as a guest, and then: "STEP 1 OF 3 · SIGN IN Who's this order for? There's no table here — the kitchen needs a name to hand the bag to. Sign in once and we'll remember you. " > **Every input on screen at step 1:** search, signup-gate-email, signup-gate-password > **Does step 1 ask for an address?** **no**. **For a phone?** **no**.
02PATRON
I expected
I can see exactly what this first step is asking me for
I saw
step 1 shows: search, signup-gate-email, signup-gate-password
03PATRON
I expected
I sign in, and the kitchen finally knows who I am
I saw
signed in off-camera; the session is now carried into this recording > _My basket and my place in the checkout were still there when I came back — the panel picked up where it left off rather than making me start again._ > **Inputs on screen once signed in:** search, signup-gate-name, signup-gate-details-email, signup-gate-phone, signup-gate-address > **Name?** yes · **Phone?** yes · **Address?** yes
04PATRON
I expected
now signed in, Place order asks me the things a kitchen actually needs
I saw
it now asks for: search, signup-gate-name, signup-gate-details-email, signup-gate-phone, signup-gate-address > **Fulfilment controls:** signup-gate, signup-gate-address, signup-gate-address-use-location, signup-gate-back, signup-gate-details-email, signup-gate-details-submit, signup-gate-grabber, signup-gate-name, signup-gate-overlay, signup-gate-phone > **An address field at this step?** **yes**
05PATRON
I expected
and I am offered how I want it — pickup or delivery, and when
I saw
offered: signup-gate, signup-gate-address, signup-gate-address-use-location, signup-gate-back, signup-gate-details-email, signup-gate-details-submit, signup-gate-grabber, signup-gate-name, signup-gate-overlay, signup-gate-phone + an address field

Other evidence · probe-mk — Driven by a subagent lane, not a human-paced witness walk — screenshots and checkpoints, no role video and no trace. Stated so this is not read as the same grade of evidence.

W-024 micro-kitchen-windowless-checkout Partial green CANARY, PATRON · 5 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC STOPPED 6 steps · 1 video(s) · trace

Why it ended here: It did not open a checkout. It opened a who-are-you panel: "STEP 1 OF 3 · SIGN IN Who's this order for? There's no table here — the kitchen needs a name to hand the bag to. Sign in once and we'll remember you. Continue w"

open trace viewer trace.zip notes

patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
There is something here I could actually order
I saw
9 dish(es) I could tap; it asked about allergies first.
02PATRON
I expected
I put one in my basket
I saw
Basket shows 1. > **What pressing "Place order $3.50 ›" put on screen:** held-cart-item-item_1788560563685_ivtd6s7rk, held-cart-total, signup-gate, signup-gate-apple, signup-gate-back, signup-gate-cancel, signup-gate-google, signup-gate-grabber, signup-gate-overlay, signup-gate-use-email
03PATRON
I expected
Pressing Place order opens a CHECKOUT
I saw
STOPPED — It did not open a checkout. It opened a who-are-you panel: "STEP 1 OF 3 · SIGN IN Who's this order for? There's no table here — the kitchen needs a name to hand the bag to. Sign in once and we'll remember you. Continue w
04PATRON
I expected
So I try to make an account, the way a new customer would
I saw
STOPPED — It now wants a code emailed to that address, which I cannot read. A real customer could; I cannot.
05PATRON
I expected
Failing that, I sign in with an account that already exists
I saw
STOPPED — locator.fill: Timeout 30000ms exceeded. > **On this screen:** fulfilment controls none; payment controls none
06PATRON
I expected
If I am through, the checkout tells me collection will be arranged
I saw
STOPPED — I am still at the who-are-you panel, so there is no checkout to read.
W-026 mosaic-v2-edit Partial green OWNER, PATRON · 7 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC WALKED 6 steps · 1 video(s) · trace

Canary Mosaic V2 Dining — dev, table 9932, iPhone 14 Pro. — a guest diner ordering two of something, then changing their mind.

Why it ended here: Steps 3-6 all held: two went in as one line at $17.98, tapping that line reopened the dish pre-filled with 2, and confirming it left the order exactly as it was.

open trace viewer trace.zip notes spec

diner screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I sit down and the menu opens
I saw
passed through: dietary question. Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baseline beverage
02PATRON
I expected
I move off drinks and open the salad
I saw
It opens showing 1, and the button says "Add to order ($8.99)".
03PATRON
I expected
I make it 2 and add it
I saw
It read 2 and the button said "Add to order ($17.98)". I pressed it.
04PATRON
I expected
my order has ONE line of it, two of them, $17.98
I saw
One line, total $17.98. My order reads: "The Cart Ordered C Canary Caesar Salad $17.98 − 2 + TOTAL $17.98 A 20% gratuity will be added to parties of 5 or more Place order $17.98 ›"
05PATRON
I expected
tapping that line in my order reopens the dish — and it remembers the 2 I chose
I saw
It reopened already showing 2, and the button now reads "Add to order ($17.98)". > **The moment that matters:** my order held **2** salads. I reopened the dish from that line — it showed **2** and offered **"Add to order ($17.98)"**. I changed nothing and pressed it. My order now holds a total of **$17.98**, which is **2** salads.
06PATRON
I expected
I change NOTHING and press that button — so my order should still be two salads
I saw
Still one line, still $17.98. Confirming an unchanged edit changed nothing. > **Cleanup:** emptied the unplaced orders I left behind — 9932: empty · 9926: empty · 9931: empty (no order was ever sent to the kitchen)
W-034 mosaic_v2-cold-start-rescan Partial green PATRON, WAITER · 5 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC STOPPED 3 steps · 3 video(s) · trace

Why it ended here: No control in the owner app closes a table session, so the negative half of this journey - cold start BLOCKED after a close, and a rescan starting a fresh session - cannot be reached.

open trace viewer trace.zip notes

owner screen
0:00
patron-again screen · iPhone 14 Pro — web content area
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I scan, and I put something in my basket
I saw
9 dishes; my basket reads 1; the app shows a live table session (1).
02PATRON
I expected
I close the browser completely, then open it again and re-scan
I saw
I am back in: 9 dishes, live table session shown, and my basket still reads "1" - the same as before I shut the browser. > **Every owner screen searched for a way to close the session:** > > - `/owner/host-station/` → nothing that closes a table > - `/owner/experience/` → nothing that closes a table > - `/owner/tables/` → nothing that closes a table > - `/owner/orders/` → nothing that closes a table > - `/owner/dashboard/` → nothing that closes a table
03OWNER
I expected
Now staff close the session — I go and find that control
I saw
STOPPED — No control in the owner app closes a table session, so the negative half of this journey - cold start BLOCKED after a close, and a rescan starting a fresh session - cannot be reached.
W-036 mosaic_v2-cover-someone Partial green PATRON, WAITER · 8 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC PARTIAL_GREEN 3 steps · 2 video(s) · trace

Why it ended here: Both diners ordered for real this time, and the cover-someone screen offered a person to cover.

open trace viewer trace.zip notes

diner-1 screen · iPhone 14 Pro — web content area
0:00
diner-2 screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
Diner one sits down and orders something
I saw
Diner one ordered: "Place order $3.50 ›", ledger says "ORDERED". > **Who diner two can see at the table:** 1Wasp(You) · 4All · 1Scaramanga · 1Vader · 1Aang
02PATRON
I expected
Diner two joins the same table and orders too
I saw
Diner two ordered: "Place order $3.50 ›". At the table she can see: 1Wasp(You), 4All, 1Scaramanga, 1Vader, 1Aang. > **Is the order sheet actually open?** yes · on-screen order/cart controls: `m2-dock-scrim`, `m2-dock`, `m2-dock-search`, `m2-dock-cart`, `m2-dock-filter`, `m2-dock-trigger`, `layout-cart-shell`, `m2-cart-scrim`, `cart-sheet`, `cart-back-btn`, `cart-sheet-header`, `cart-scope-chip-341a62ba-3a1f-5f18-a093-c793ff344375`, `cart-scope-name-341a62ba-3a1f-5f18-a093-c793ff344375`, `cart-scope-chip-all`, `cart-scope-chip-2b63a820-59c7-5f15-95d4-4953ce1a26d6`, `cart-scope-name-2b63a820-59c7-5f15-95d4-4953ce1a26d6`, `cart-scope-chip-701ca552-6a96-539f-a79e-d0d99f8eb62a`, `cart-scope-name-701ca552-6a96-539f-a79e-d0d99f8eb62a`, `cart-scope-chip-daa7198d-0a00-513a-9efa-4915b7b25669`, `cart-scope-name-daa7198d-0a00-513a-9efa-4915b7b25669`, `m2-cart-tab-way`, `m2-cart-tab-table`, `cart-group-341a62ba-3a1f-5f18-a093-c793ff344375`, `order-status-badge`, `reorder-item-f36ad753-bc92-47b7-81e2-6add6935b6e1` > **Settle controls diner two is offered:** `` > **Service bubble open?** yes · what it offers: `layout-service-button`, `cart-service-btn`, `service-bubble`, `service-bubble-attend_table`, `service-bubble-cutlery`, `service-bubble-ready_for_bill` > **After pressing Check Please, the settlement sheet offers:** `settlement-cover`, `settlement-split` > **Other people I can scope the cart to:** 1 Scaramanga · 1 Vader · 1 Aang > **Scoped the cart to 1 Scaramanga - what she is then offered:** `table-session-active`, `settlement-cover`, `settlement-split` > **Who she is offered to cover:** Just me · Someone on the table · The whole table
03PATRON
I expected
Diner two asks to pay for someone else
I saw
She is offered 3 person(s) to cover: Just me, Someone on the table, The whole table. > **Cleanup:** each diner cancelled their own dish where the control was still offered.
W-037 mosaic_v2-coverage Partial green PATRON, WAITER · 11 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC WALKED 0 steps · 2 video(s) · trace

the coverage canary fixture, table 9948 — not a table the canary drives. — exactly two of us, A and B, on two separate phones.

Why it ended here: drove two real diners through ordering and into the cover flow, and recorded exactly what coverage choices exist — stopping short of anything that takes money

open trace viewer trace.zip notes

patron-a screen · iPhone 14 Pro — web content area
0:00
patron-b screen · iPhone 14 Pro — web content area
0:00

Other evidence · lane-pay — Driven by a subagent lane, not a human-paced witness walk — screenshots and checkpoints, no role video and no trace. Stated so this is not read as the same grade of evidence.

W-040 mosaic_v2-dietary-safety Partial green OWNER, PATRON, WAITER · 5 steps 1 run

see this row in the honesty ledger →

Evidenced by the anant-dietary-safety walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC PARTIAL_GREEN 4 steps · 2 video(s) · trace

Why it ended here: Walked on Anant with a real owner account and a real guest, no data changed. The diner can state a dietary need and the menu visibly narrows.

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01OWNER
I expected
I sign in and look at what this restaurant says about its dishes
I saw
Signed in. Sidebar: Home · Food Items · Menu · Tables/Staff · Personalize · Insights · Payments. Screen: Skip to main content QRate Anant Home Food Items Menu Tables/Staff Personalize Insights Payments D Demo Owner ⌘K Sage ready Ask Sage Loading > **Dietary words visible on the owner's food-items screen:** {"allergen":1}
02OWNER
I expected
I find which dishes carry a dietary or allergen tag
I saw
25 rows; dietary wording present: {"allergen":1}. > **Dietary choices this restaurant offers a diner:** Gluten-Free
03PATRON
I expected
I sit down as a guest and open the dietary filter
I saw
1 dietary choice(s): Gluten-Free.
04PATRON
I expected
I say I cannot eat something, and count what I am then offered
I saw
Choosing "Gluten-Free" took the menu from 32 dishes to 15.
W-042 mosaic_v2-drink-subcat Partial green OWNER, PATRON · 6 steps 2 runs

see this row in the honesty ledger →

Evidenced by the menu-drink-subcat walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC WALKED 5 steps · 2 video(s) · trace

Canary Drink Subcategories — dev, table 9941 — the restaurant this journey is named after. Canary Mosaic is driven as a control, because it is a restaurant that really does have sub-categories. —

Why it ended here: Looked at the diner's Beverages and then tried to do the owner half.

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I sit down and open Drinks at the restaurant this journey names
I saw
1 drink tile(s); sub-category controls: NONE. Screen: Drinks Starters Mains Desserts Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 Swipe across to explore the next course
02PATRON
I expected
There are sub-category dividers I can navigate between
I saw
STOPPED — Beverages here is a single ungrouped list of 1 drink(s). There is nothing to navigate between — no divider, no sub-category rail. The two drinks and two sub-categories this journey is about are not on the menu when a per > **Control (Canary Mosaic, Drinks):** 9 drink(s), sub-category controls: m2-subcat-jump-Beverages · m2-subcat-jump-more · m2-subcat-nav · headings on screen: Moving to Table 9942.
03PATRON
I expected
Control: on a restaurant that does have sub-categories, they render
I saw
9 tiles; m2-subcat-jump-Beverages, m2-subcat-jump-more, m2-subcat-nav; headings: Moving to Table 9942. > **Owner → Menu for this restaurant:** **"Failed to load menu — please try again", and Retry does not help.**
04OWNER
I expected
I sign in as the owner of this restaurant and open its Menu
I saw
"Failed to load menu — please try again." Retry changes nothing. I cannot reach the menu builder, so I cannot attach a drink or file a sub-category. > **Owner → Food Items for this restaurant:** **"Failed to fetch menu-item summaries for d4d9a4b3-3c76-5cac-b070-52e77fbba79e" — the whole page is that one line.**
05OWNER
I expected
I try the other door — Food Items
I saw
The page is one red line: "Failed to fetch menu-item summaries". There is no Add Dish button, no list, nothing. Both owner doors into this restaurant's menu are shut.
2026-09-04 06:30 UTC WALKED 17 steps · 1 video(s) · no trace

Why it ended here: Recon only.

notes spec

owner screen
0:00
01OWNER
I expected
I sign in
I saw
Skip to main content QRate Canary Kitchen — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner GOOD EVENING, CANARY What would you like t
02OWNER
I expected
Menu page — canary-mosaic
I saw
loaded, 125 testids: Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Canary Default Menu ACTIVE All day · Daily M2LF Menu 88479154 INACTIVE All day · Daily M2GD Menu 88479587 INACTIVE All day · Daily M2SPM Menu 7
03OWNER
I expected
Food Items — canary-mosaic
I saw
16 dish rows. Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Warnings 22 CSV Add Dish Food Categories All Items 16 Appetizers 2 Beverages 9 Dess
04OWNER
I expected
Menu page — owner-menu
I saw
FAILED TO LOAD (even after Retry)
05OWNER
I expected
Food Items — owner-menu
I saw
FAILED: Skip to main content QRate Canary Owner Menu — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner ⌘K Failed to fetch menu-item summaries for cdaf8ce3-68ef-57ab-889e-592a5e685fc9
06OWNER
I expected
Menu page — food-subcategories
I saw
FAILED TO LOAD (even after Retry)
07OWNER
I expected
Food Items — food-subcategories
I saw
FAILED: Skip to main content QRate Canary Food Subcategories — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner ⌘K Failed to fetch menu-item summaries for 1953946f-3a27-5415-8249-a64a
08OWNER
I expected
Menu page — drink-subcategories
I saw
FAILED TO LOAD (even after Retry)
09OWNER
I expected
Food Items — drink-subcategories
I saw
FAILED: Skip to main content QRate Canary Drink Subcategories — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner ⌘K Failed to fetch menu-item summaries for d4d9a4b3-3c76-5cac-b070-52e
10OWNER
I expected
Menu page — canary-kitchen
I saw
loaded, 86 testids: Skip to main content QRate Canary Kitchen — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Canary Default Menu ACTIVE All day · Daily Canary Lunch 19672660 ACTIVE All day · Daily Canary Dinner 19672660 ACTIVE All day · Daily Canary L
11OWNER
I expected
Food Items — canary-kitchen
I saw
24 dish rows. Skip to main content QRate Canary Kitchen — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Warnings 45 CSV Add Dish Food Categories All Items 40 Appetizers 2 Beverages 11 De
12OWNER
I expected
Menu page — includes
I saw
FAILED TO LOAD (even after Retry)
13OWNER
I expected
Food Items — includes
I saw
FAILED: Skip to main content QRate Canary Includes — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner ⌘K Failed to fetch menu-item summaries for e8e9a568-066e-5bee-8d48-0b54e90eb5f7
14OWNER
I expected
Menu page — groupings
I saw
FAILED TO LOAD (even after Retry)
15OWNER
I expected
Food Items — groupings
I saw
FAILED: Skip to main content QRate Canary Groupings — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner ⌘K Failed to fetch menu-item summaries for c2cb26f6-73ca-5306-ac22-07f4131b2753
16OWNER
I expected
Menu page — mosaic_v2-dining
I saw
loaded, 68 testids: Skip to main content QRate Canary Mosaic V2 Dining — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Canary Default Menu ACTIVE All day · Daily Clone Schedule Add Menu SCHEDULE Canary Default Menu live now ends in 1h 45m MON TUE WED T
17OWNER
I expected
Food Items — mosaic_v2-dining
I saw
14 dish rows. Skip to main content QRate Canary Mosaic V2 Dining — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Warnings 14 CSV Add Dish Food Categories All Items 14 Appetizers 1 Bevera
W-043 mosaic_v2-electronic-pay False green Ad-hoc request PATRON, WAITER · 11 steps 5 runs

see this row in the honesty ledger →

Ad-hoc request. Operator asked for a full comprehensive re-walk of W-043 with detail and trace (2026-09-05). It was asked for and it is a finding - verdict False green - so it stays in the main grid, where findings are read.

Evidenced by the w043-unpaid-discriminator walk — one walk can answer more than one canary.

2026-09-05 20:48 UTC WALKED 1 steps · 2 video(s) · trace

Why it ended here: One diner paid by card; the other diner's check was then read.

open trace viewer trace.zip notes

diner-1 screen · iPhone 14 Pro — web content area
0:00
diner-2 screen · iPhone 14 Pro — web content area
0:00
01BOTH
I expected
two of us order a drink each
I saw
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.49 C C Canary IPA Canary baseline drink — DO NOT MODIFY. $7.00 Canary Lager Canary baseline drink — DO NOT MODIFY. $6.00 C C Canary Lemonade Canary baseline drink — DO NOT MODIFY. $3.50 Canary Margarita Canary baseline drink — DO NOT MODIFY. $11.00 C C Canary Negroni Canary baseline drink — DO NOT MODIFY. $12.00 Canary Red Wine Canary baseline drink — DO NOT MODIFY. $11.00 C C Canary White Wine Canary baseline drink — DO NOT MODIFY. $10.00 TO THE TOP 1 Han Solo (You) 2 All 1 Kong The Cart Ordered C Canary Cola ORDERED $3.50 Re-order TOTAL $3.50 Back to Menu
2026-09-05 20:34 UTC PARTIAL_GREEN 1 steps · 2 video(s) · trace

Why it ended here: Completed a real test-mode card payment as one diner of two on table 10097, then read the other diner's check. — BUT 2 step(s) did not succeed, so this walk did not go end to end: 05 (my own phone now shows me as settled); 06 (her check now shows only what is still unpaid). Verdict downgraded from WALKED by the journal, because the spec claimed more than its steps support.

open trace viewer trace.zip notes spec

diner-1 screen · iPhone 14 Pro — web content area
0:00
diner-2 screen · iPhone 14 Pro — web content area
0:00
01BOTH
I expected
two of us sit down and each order a drink
I saw
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.49 C C Canary IPA Canary baseline drink — DO NOT
2026-09-05 20:28 UTC WALKED 3 steps · 1 video(s) · trace

Why it ended here: Tapped the Card row on the payment screen and recorded what happened.

open trace viewer trace.zip notes spec

diner screen · iPhone 14 Pro — web content area
0:00
01DINER
I expected
I order, ask for the check and take the card route
I saw
frames [{"name":"__privateStripeController4591","kind":"controller-with-preconnect","text":"","inputs":[]},{"name":"__privateStripeFrame4593","kind":"elements-inner-accessory-target","text":"Card ","inputs":[]},{"name":"__privateStripeFrame4594","kind":"elements-inner-easel","text":" 1 ","inputs":[]},{"name":"hcaptcha-invisible","kind":"hcaptcha-invisible","text":"","inputs":[]},{"name":"","kind":"?","text":"","inputs":[]}] | pay button {"text":"Pay $4.57","disabled":true}
02DINER
I expected
I tap the row that says Card, the way anyone would
I saw
tapped text "Card" inside __privateStripeFrame4593; fields now [{"name":"number","ph":"1234 1234 1234 1234","type":"text","vis":true},{"name":"expiry","ph":"MM / YY","type":"text","vis":true},{"name":"cvc","ph":"CVC","type":"text","vis":true},{"name":"postalCode","ph":"12345","type":"text","vis":true},{"name":null,"ph":null,"type":"text","vis":true},{"name":null,"ph":null,"type":"text","vis":true},{"name":null,"ph":null,"type":"text","vis":true},{"name":null,"ph":null,"type":"text","vis":true},{"name":null,"ph":null,"type":"text","vis":true}]
03DINER
I expected
I type a test card and the Pay button comes alive
I saw
filled ["input[name=\"number\"]","input[name=\"expiry\"]","input[name=\"cvc\"]","input[name=\"postalCode\"]"]; pay button now {"text":"Pay $4.57","disabled":false} - I am stopping here rather than charging
2026-09-05 20:21 UTC PARTIAL_GREEN 1 steps · 3 video(s) · trace

Why it ended here: Drove the full electronic-pay journey on its own fixture (7766d206-244c-576d-be4b-f5e746bf9832) at table 10094, two diners on iPhone 14 Pro geometry over chromium. Stripe mode read as TEST. — BUT 4 step(s) did not succeed, so this walk did not go end to end: 12 (before I pick a payment method the app tells me what I owe); 14 (the check is itemised and adds up); 15 (I add a 20% tip and the total moves to match); 17 (I type a card in and pay). Verdict downgraded from WALKED by the journal, because the spec claimed more than its steps support.

open trace viewer trace.zip notes spec

diner-1 screen · iPhone 14 Pro — web content area
0:00
diner-2 screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
08WAITER
I expected
the server sees our table and marks the food served
I saw
board says: QRate OWNER PORTAL My Restaurants Brand & Info Menu Menu Items Up/Cross Sells Recommendations Chef Experience Reviews & Ratings Patrons Staff C Canary Owner Restaurant Owner Canary Kitchen — dev Server: Canary Owner Active Orders Tables Wine ✅ All caught up! No active orders for your tables | controls ["staff-orders-page","tab-orders","tab-tables","tab-wine"]
2026-09-04 06:30 UTC WALKED 0 steps · 2 video(s) · trace

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.

open trace viewer trace.zip notes

diner-1 screen · iPhone 14 Pro — web content area
0:00
diner-2 screen · iPhone 14 Pro — web content area
0:00

Other evidence · lane-pay — Driven by a subagent lane, not a human-paced witness walk — screenshots and checkpoints, no role video and no trace. Stated so this is not read as the same grade of evidence.

W-044 mosaic_v2-enter-pos Partial green Ad-hoc request PATRON, WAITER · 9 steps 2 runs

see this row in the honesty ledger →

Ad-hoc request. Operator named this row for a comprehensive re-walk. Re-driven twice on 2026-09-06 on the journey's real fixture with a waiter account scoped to it. It was asked for and it is a finding - verdict Partial green - so it stays in the main grid, where findings are read.

Evidenced by the w044b-enter-pos-discriminator walk — one walk can answer more than one canary.

2026-09-06 00:33 UTC PARTIAL_GREEN 6 steps · 2 video(s) · trace

Why it ended here: Told apart 'the press failed' from 'the press succeeded silently'. — BUT 1 step(s) did not succeed, so this walk did not go end to end: 05 (the same is true in the table's own sheet). Verdict downgraded from WALKED by the journal, because the spec claimed more than its steps support.

open trace viewer trace.zip notes spec

diner screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
01DINER
I expected
I order one drink at my table
I saw
ordered via "Place order $3.49 ›" | Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair t
02WAITER
I expected
the server signs in and my order is on the Orders tab
I saw
Orders tab till control(s) ["Enter in POS","Re-enter in POS"] | ids ["pos-entered-ea6c73e0-2f12-4fc8-afd2-da4864cb7c50","order-status-action-dd85c4cd-fa90-4720-94da-12d7d2126992","pos-entered-9be77c92-e9a7-4e35-b7fe-5da26f0411cc","order-status-action-9be77c92-e9a7-4e35-b7fe-5da26f0411cc"]
03WAITER
I expected
I press it on the order card — and the network shows whether that reached the restaurant
I saw
the press DID reach the restaurant: [{"phase":"req","m":"POST","u":"https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/28ae37ab-706c-4e20-83d7-52f5d2dff747/orders/dd85c4cd-fa90-4720-94da-12d7d2126992/notify-pos-entered"},{"phase":"res","status":200,"m":"POST","u":"https://2maba2yvbkfgrzzalh7eg45zd40dkedr.lambda-url.us-east-1.on.aws/owner/restaurants/28ae37ab-706c-4e20-83d7-52f5d2dff747/orders/dd85c4cd-fa90-4720-94da-12d7d2126992/notify-pos-entered"}] | button now ["Re-enter in POS","Re-enter in POS"] | in-POS badges 2
04WAITER
I expected
having pressed it, the card now tells me the order is in the till
I saw
card moved: ["Enter in POS","Re-enter in POS"] -> ["Re-enter in POS","Re-enter in POS"] | badges 2
05WAITER
I expected
the same is true in the table's own sheet
I saw
STOPPED — the sheet also still offers "Enter in POS" with no in-POS mark: ["Enter in POS"]
06WAITER
I expected
and it is still true after a reload, so it was written down somewhere
I saw
after reload ["Re-enter in POS","Re-enter in POS","Re-enter in POS"] | badges 3
2026-09-04 06:30 UTC WALKED 8 steps · 2 video(s) · trace

Why it ended here: walked the whole journey

open trace viewer trace.zip notes

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
First I try the journey's OWN fixture, the POS-gated one
I saw
Nothing to order: the app renders its own empty state and there is not one dish or even a course to tap. So I cannot walk this journey on its own fixture, and I move to Canary Mosaic, which has a real menu. > **Every course on this restaurant's menu:** {"(as it opened)":9,"Drinks":9,"Starters":2,"Mains":3,"Desserts":1}
02PATRON
I expected
I sit down at a table I can actually order from and the menu loads
I saw
9 dishes on screen once I open the fullest course. Per course: {"(as it opened)":9,"Drinks":9,"Starters":2,"Mains":3,"Desserts":1}. Screen: Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT M
03PATRON
I expected
I add a dish to my cart
I saw
The cart pill reads 1.
04PATRON
I expected
I send the order to the kitchen
I saw
I pressed "Place order $3.49 ›". The Ordered tab now reads "1 Supergirl (You) 2 All 1 Lantern The Cart Ordered C Canary Iced Tea ORDERED $3.49 Re-order TOTAL $3.49 Back to Menu" with badge "ORDERED" and 1 cancel control(s).
05OWNER
I expected
Staff confirm my order (owner orders board, standing in for the waiter)
I saw
Confirmed. The board around my table now reads: "Table 9951 1 item $3.80 Start Preparing Mark Served Cancel Cancelled 12m ago Table 9963 1 item $21.77 Cancelled 12m ago Table 9963"
06PATRON
I expected
While it is only confirmed, I can still cancel my dish
I saw
1 cancel control(s) offered; badge "ORDERED"; sheet "1 Supergirl (You) 2 All 1 Lantern The Cart Ordered C Canary Iced Tea ORDERED $3.49 Re-order TOTAL $3.49 Back to Menu". > **This restaurant's sidebar offers:** Home · Food Items · Menu · Tables/Staff · Personalize · Insights > **Every owner screen searched for a way to enter an order into the till:** > > - `/owner/dashboard/` → nothing > - `/owner/food-items/` → nothing > - `/owner/menu/` → nothing > - `/owner/experience/` → nothing > - `/owner/personalize/` → nothing > - `/owner/insights/order-history/` → nothing > - `/owner/settings/pos/` → "Get Started"(pos-get-started-btn) > - `/owner/orders/` → nothing
07OWNER
I expected
Now staff enter the order into the till — I go looking for that control
I saw
Found: /owner/settings/pos/?restaurantId=28ae37ab-706c-4e20-83d7-52f5d2dff747 → "Get Started"(pos-get-started-btn)
08PATRON
I expected
CLEANUP — I cancel my own dish so nothing is left on this table
I saw
Cancel controls before 1 → after 0; the sheet now reads "The Cart Ordered C Canary Iced Tea CANCELLED $3.49 Back to Menu".
W-045 mosaic_v2-food-subcat Partial green OWNER, PATRON · 6 steps 1 run

see this row in the honesty ledger →

Evidenced by the menu-food-subcat walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC WALKED 5 steps · 2 video(s) · trace

Canary Food Subcategories — dev, table 9945 — the restaurant this journey is named after. Canary Mosaic is driven as a control, because it is a restaurant that really does have sub-categories. —

Why it ended here: Looked at the diner's Entrees and then tried to do the owner half.

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I sit down and open Mains at the restaurant this journey names
I saw
3 dish tile(s); sub-category controls: m2-subcat-jump-Sides, m2-subcat-jump-more, m2-subcat-nav. Screen: Drinks Starters Mains Desserts SIDES 1 MORE 2 Sides 1 dish C Canary Fries Canary baseline side — DO NOT MODIFY. $4.99 More 2 dishes C Canary Grilled Chicken Canary baseline entree
02PATRON
I expected
There are sub-category dividers I can navigate between
I saw
dividers/rail present: m2-subcat-jump-Sides, m2-subcat-jump-more, m2-subcat-nav > **Control (Canary Mosaic, Mains):** 3 dish(es), sub-category controls: m2-subcat-jump-Sides · m2-subcat-jump-more · m2-subcat-nav · headings on screen: Moving to Table 9946.
03PATRON
I expected
Control: on a restaurant that does have sub-categories, they render
I saw
3 tiles; m2-subcat-jump-Sides, m2-subcat-jump-more, m2-subcat-nav; headings: Moving to Table 9946. > **Owner → Menu for this restaurant:** **"Failed to load menu — please try again", and Retry does not help.**
04OWNER
I expected
I sign in as the owner of this restaurant and open its Menu
I saw
"Failed to load menu — please try again." Retry changes nothing. I cannot reach the menu builder, so I cannot attach a dish or file a sub-category. > **Owner → Food Items for this restaurant:** **"Failed to fetch menu-item summaries for 1953946f-3a27-5415-8249-a64a19bf5ae4" — the whole page is that one line.**
05OWNER
I expected
I try the other door — Food Items
I saw
The page is one red line: "Failed to fetch menu-item summaries". There is no Add Dish button, no list, nothing. Both owner doors into this restaurant's menu are shut.
W-051 mosaic_v2-menu-parity Partial green OWNER, PATRON · 6 steps 1 run

see this row in the honesty ledger →

Evidenced by the menu-parity walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC WALKED 4 steps · 2 video(s) · trace

Why it ended here: Checked the add-on half of the parity promise from both sides.

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01OWNER
I expected
I list my add-ons — the things that are never a dish on their own
I saw
6 add-ons: UAT-modlink-optA-560587 — Visible $2.50 ×, UAT-modlink-optA-635435 — Visible $2.50 ×, UAT-modlink-optA-771472 — Visible $2.50 ×, UAT-modlink-optA-965505 — Visible $2.50 ×, UAT-modlink-optB-771472 — Visible $2.50 ×, UAT-modlink-optB-965505 — Visible $2.50 × > **The whole menu as a diner sees it:** Beverages(9): Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3, Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50, Canary IPA Canary baseline drink — DO NOT MODIFY. $7.00, Canary Lager Canary baseline drink — DO NOT MODIFY. $6.00, Canary Lemonade Canary baseline drink — DO NOT MODIFY. $3.50, Canary Margarita Canary baseline drink — DO NOT MODIFY. $11., Canary Negroni Canary baseline drink — DO NOT MODIFY. $12.00, Canary Red Wine Canary baseline drink — DO NOT MODIFY. $11.0, Canary White Wine Canary baseline drink — DO NOT MODIFY. $10 · Appetizers(2): Canary Caesar Salad Canary baseline appetizer — DO NOT MODIF, UAT-clone-453377 Canary baseline appetizer — DO NOT MODIFY. · Entrees(3): Canary Fries Canary baseline side — DO NOT MODIFY. $4.99, Canary Grilled Chicken Canary baseline entree (chicken) — DO, Canary Margherita Canary baseline entree (veg) — DO NOT MODI · Desserts(1): Canary Tiramisu Canary baseline dessert — DO NOT MODIFY. $7.
02PATRON
I expected
I walk all four courses and write down every dish on the menu
I saw
Beverages(9): Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3, Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50, Canary IPA Canary baseline drink — DO NOT MODIFY. $7.00, Canary Lager Canary baseline drink — DO NOT MODIFY. $6.00, Canary Lemonade Canary baseline drink — DO NOT MODIFY. $3.50, Canary Margarita Canary baseline drink — DO NOT MODIFY. $11., Canary Negroni Canary base > **Add-ons that leaked onto the diner's menu as their own tile:** **none**
03PATRON
I expected
None of my add-ons is sitting on the menu as a dish
I saw
None of the 6 add-ons appears as a dish tile in any of the four courses. > **Sub-category pills on this course:** none
04PATRON
I expected
I can tell which sub-category pill each dish is filed under
I saw
STOPPED — no sub-category pills on this course to check a dish against
W-052 mosaic_v2-menu-selector Partial green OWNER, PATRON, WAITER · 10 steps 2 runs

see this row in the honesty ledger →

Evidenced by the menu-recon2 walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC WALKED 17 steps · 1 video(s) · no trace

Why it ended here: Recon only.

notes spec

owner screen
0:00
01OWNER
I expected
I sign in
I saw
Skip to main content QRate Canary Kitchen — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner GOOD EVENING, CANARY What would you like t
02OWNER
I expected
Menu page — canary-mosaic
I saw
loaded, 125 testids: Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Canary Default Menu ACTIVE All day · Daily M2LF Menu 88479154 INACTIVE All day · Daily M2GD Menu 88479587 INACTIVE All day · Daily M2SPM Menu 7
03OWNER
I expected
Food Items — canary-mosaic
I saw
16 dish rows. Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Warnings 22 CSV Add Dish Food Categories All Items 16 Appetizers 2 Beverages 9 Dess
04OWNER
I expected
Menu page — owner-menu
I saw
FAILED TO LOAD (even after Retry)
05OWNER
I expected
Food Items — owner-menu
I saw
FAILED: Skip to main content QRate Canary Owner Menu — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner ⌘K Failed to fetch menu-item summaries for cdaf8ce3-68ef-57ab-889e-592a5e685fc9
06OWNER
I expected
Menu page — food-subcategories
I saw
FAILED TO LOAD (even after Retry)
07OWNER
I expected
Food Items — food-subcategories
I saw
FAILED: Skip to main content QRate Canary Food Subcategories — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner ⌘K Failed to fetch menu-item summaries for 1953946f-3a27-5415-8249-a64a
08OWNER
I expected
Menu page — drink-subcategories
I saw
FAILED TO LOAD (even after Retry)
09OWNER
I expected
Food Items — drink-subcategories
I saw
FAILED: Skip to main content QRate Canary Drink Subcategories — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner ⌘K Failed to fetch menu-item summaries for d4d9a4b3-3c76-5cac-b070-52e
10OWNER
I expected
Menu page — canary-kitchen
I saw
loaded, 86 testids: Skip to main content QRate Canary Kitchen — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Canary Default Menu ACTIVE All day · Daily Canary Lunch 19672660 ACTIVE All day · Daily Canary Dinner 19672660 ACTIVE All day · Daily Canary L
11OWNER
I expected
Food Items — canary-kitchen
I saw
24 dish rows. Skip to main content QRate Canary Kitchen — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Warnings 45 CSV Add Dish Food Categories All Items 40 Appetizers 2 Beverages 11 De
12OWNER
I expected
Menu page — includes
I saw
FAILED TO LOAD (even after Retry)
13OWNER
I expected
Food Items — includes
I saw
FAILED: Skip to main content QRate Canary Includes — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner ⌘K Failed to fetch menu-item summaries for e8e9a568-066e-5bee-8d48-0b54e90eb5f7
14OWNER
I expected
Menu page — groupings
I saw
FAILED TO LOAD (even after Retry)
15OWNER
I expected
Food Items — groupings
I saw
FAILED: Skip to main content QRate Canary Groupings — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner ⌘K Failed to fetch menu-item summaries for c2cb26f6-73ca-5306-ac22-07f4131b2753
16OWNER
I expected
Menu page — mosaic_v2-dining
I saw
loaded, 68 testids: Skip to main content QRate Canary Mosaic V2 Dining — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Canary Default Menu ACTIVE All day · Daily Clone Schedule Add Menu SCHEDULE Canary Default Menu live now ends in 1h 45m MON TUE WED T
17OWNER
I expected
Food Items — mosaic_v2-dining
I saw
14 dish rows. Skip to main content QRate Canary Mosaic V2 Dining — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner Warnings 14 CSV Add Dish Food Categories All Items 14 Appetizers 1 Bevera
2026-09-04 06:30 UTC WALKED 3 steps · 2 video(s) · trace

Canary Mosaic — dev, table 9952 — the restaurant whose owner Menu page carries the journey's own `M2MS MenuA` and `M2MS MenuB`. —

Why it ended here: Looked for the diner's menu chooser and counted the live menus.

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I sit down and look for a way to choose a menu
I saw
controls: m2-menu-slide-host · 9 tiles · subcat rail "BEVERAGES 1 MORE 8" > **Sub-category rail before:** `BEVERAGES 1 MORE 8` · **after swiping the slide host:** `BEVERAGES 1 MORE 8`
02PATRON
I expected
I switch to a different menu and the sub-categories change
I saw
rail "BEVERAGES 1 MORE 8" -> "BEVERAGES 1 MORE 8"; controls now: m2-menu-slide-host > **Menus this owner has:** 55, of which **50 are ACTIVE** at the same time. Two of them are this journey's own: Canary Default Menu ACTIVE All day · Daily M2LF Menu 88479154 INACTIVE All day · Daily M2GD Menu 88479587 INACTIVE All day · Daily M2SPM Menu 76896360 ACTIVE All day · Daily M2GR Menu 94500453 ACTIVE All day · Daily M2LF Menu 36344691 ACTIVE All day · Daily M2MP Course 63271654 ACTIVE All day · Daily M2DS Menu 18039822 ACTIVE All day · Daily M2DC Menu 32131977 ACTIVE All day · Daily M2BYO Menu 69698453 ACTIVE All day · Daily M2DC Menu 72339174 ACTIVE All day · Daily M2DS Menu 20704797 ACTIVE All day · Daily M2BS Menu 31388193 ACTIVE All day · Daily M2DS Menu 51212921 ACTIVE All day · Daily M2SO MenuP 77476152 ACTIVE All day · Daily M2SO MenuQ 77476152 ACTIVE All day · Daily M2SPM Menu 04502753 ACTIVE All day · Daily M2SCD Menu 33335720 ACTIVE All day · Daily M2BDA Menu 51898630 ACTIVE All day · Daily M2DS Menu 47299830 ACTIVE All day · Daily M2LF Menu 26537957 ACTIVE All day · Daily M2OV Lunch 06297997 ACTIVE All day · Daily M2OV Dinner 06297997 ACTIVE All day · Daily M2RC Menu 56693193 ACTIVE All day · Daily M2MS MenuA 54021474 ACTIVE All day · Daily M2MS MenuB 54021474 ACTIVE All day · Daily M2BDA Menu 51699987 ACTIVE All day · Daily · M2MS MenuA 54021474 ACTIVE All day · Daily · M2MS MenuB 54021474 ACTIVE All day · Daily
03OWNER
I expected
How many menus is this restaurant actually running at once?
I saw
55 menus, 50 ACTIVE. M2MS: Canary Default Menu ACTIVE All day · Daily M2LF Menu 88479154 INACTIVE All day · Daily M2GD Menu 88479587 INACTIVE All day · Daily M2SPM Menu 76896360 ACTIVE All day · Daily M2GR Menu 94500453 ACTIVE All day · Daily M2LF Menu 36344691 ACTIVE All day · Daily M2MP Course 63271654 ACTIVE All day · Daily M2DS Menu 18039822 ACTIVE All day · Daily M2DC Menu 32131977 ACTIVE All day · Daily M2BYO Menu 69698453 ACTIVE All day · Daily M2DC Menu 72339174 ACTIVE All day · Daily M2DS Menu 20704797 ACTIVE All day · Daily M2BS Menu 31388193 ACTIVE All day · Daily M2DS Menu 51212921 ACTIVE All day · Daily M2SO MenuP 77476152 ACTIVE All day · Daily M2SO MenuQ 77476152 ACTIVE All day · Daily M2SPM Menu 04502753 ACTIVE All day · Daily M2SCD Menu 33335720 ACTIVE All day · Daily M2BDA Menu 51898630 ACTIVE All day · Daily M2DS Menu 47299830 ACTIVE All day · Daily M2LF Menu 26537957 ACTIVE All day · Daily M2OV Lunch 06297997 ACTIVE All day · Daily M2OV Dinner 06297997 ACTIVE All day · Daily M2RC Menu 56693193 ACTIVE All day · Daily M2MS MenuA 54021474 ACTIVE All day · Daily M2MS MenuB 54021474 ACTIVE All day · Daily M2BDA Menu 51699987 ACTIVE All day · Daily | M2MS MenuA 54021474 ACTIVE All day · Daily | M2MS MenuB 54021474 ACTIVE All day · Daily
W-054 mosaic_v2-multi Partial green Ad-hoc request PATRON, WAITER · 17 steps 2 runs

see this row in the honesty ledger →

Ad-hoc request. Operator named this row for a comprehensive re-walk. Two walks driven 2026-09-06 with two guests taking DIFFERENT dishes at DIFFERENT prices. It was asked for and it is a finding - verdict Partial green - so it stays in the main grid, where findings are read.

Evidenced by the w054b-coorder-cancel-latejoin walk — one walk can answer more than one canary.

2026-09-06 01:03 UTC PARTIAL_GREEN 0 steps · 3 video(s) · trace

Why it ended here: Co-ordered from the whole-table scope, cancelled from the other diner's ledger, and joined late. — BUT 4 step(s) did not succeed, so this walk did not go end to end: 02 (my basket lets me switch to the whole table, and the price changes to match); 04 (their dish went in too — they are not left holding an unsent order); 05 (they can cancel their own dish now it has gone in); 06 (someone joins late and still sees what the table ordered before they arrived). Verdict downgraded from WALKED by the journal, because the spec claimed more than its steps support.

open trace viewer trace.zip notes spec

diner-1 screen · iPhone 14 Pro — web content area
0:00
diner-2 screen · iPhone 14 Pro — web content area
0:00
diner-3 screen · iPhone 14 Pro — web content area
0:00
2026-09-04 03:53 UTC WALKED 11 steps · 4 video(s) · trace

Anant, table 10. — three of us at one table — me (P1), my friend (P2), and someone who joins late (P3) — plus Daniel the waiter.

Why it ended here: reached the end of everything a person can see without changing the menu

open trace viewer trace.zip notes

patron-1 screen · phone, full screen
0:00
patron-2 screen · phone, full screen
0:00
patron-3 screen · phone, full screen
0:00
waiter screen · phone, full screen
0:00
01WAITER
I expected
Daniel signs in and I note his board before we arrive
I saw
Anant Server: daniel Active Orders 5 Tables Wine 5 orders 5 new T10 Guest 1m ago New Lassi - Mango Lunch Lassi - Salty Lunch Enter in POS T10 Eret 19m ago New L
02PATRON
I expected
I sit down at table 10 and the menu opens
I saw
passed through: dietary question. Bud Light Michelob Ultra Drinks Starters Mains Desserts LASSI 4 BEER (BOTTLE) 11 ANANT MOCKTAILS 7 BEER (DRAFT
03PATRON
I expected
My friend sits down at the same table and their menu opens too
I saw
passed through: dietary question. Bud Light Michelob Ultra Drinks Starters Mains Desserts LASSI 4 BEER (BOTTLE) 11 ANANT MOCKTAILS 7 BEER (DRAFT
04PATRON
I expected
I add a dish, and my own cart says one item
I saw
my bar reads: 1 ITEM · TAP TO REVIEW 1 1
05PATRON
I expected
My friend's screen shows a badge telling them I'm at the table
I saw
STOPPED — I could not find anything on my friend's screen telling them someone else is at this table
06PATRON
I expected
My friend adds a dish too
I saw
their bar reads: 1 ITEM · TAP TO REVIEW 1 1 > **Cart inflation check:** two people each added one dish. My cart reads **1**. Two is right; four would mean the app is counting each of us twice.
07PATRON
I expected
My screen now shows the table's shared cart — and does NOT double-count me
I saw
Bud Light Michelob Ultra Drinks Starters Mains Desserts LASSI 4 BEER (BOTTLE) 11 ANANT MOCKTAILS 7 BEER (DRAFT) 4 SODA 6 Lassi 4 dishes Lassi - Mango Yogurt smoothie blended with sweet mango pulp — chilled and creamy. $5.00 1 Lassi - Salty
08PATRON
I expected
We send the order together
I saw
Bud Light Michelob Ultra Drinks Starters Mains Desserts LASSI 4 BEER (BOTTLE) 11 ANANT MOCKTAILS 7 BEER (DRAFT) 4 SODA 6 Lassi 4 dishes Lassi - Mango Yogurt smoothie blended with sweet mango pulp — ch > **No-collapse check:** his board names a diner 3 time(s) for table 10.
09WAITER
I expected
Daniel sees TWO diners at table 10, not one merged blob
I saw
Anant Server: daniel Active Orders 6 Tables Wine 6 orders 6 new T10 Harry Kane just now New Lassi - Mango Lunch Enter in POS T10 Guest 2m ago New Lassi - Mango Lunch Lassi - Salty Lunch Enter in POS T10 Eret 20m ago New Lassi - Mango Lunch Enter in POS T10 Psy
10PATRON
I expected
My friend cancels one of the shared items
I saw
STOPPED — I opened my friend's order and found no way to cancel an item — what I can see is: Bud Light Michelob Ultra Drinks Starters Mains Desserts LASSI 4 BEER (BOTTLE) 11 ANANT MOCKTAILS 7 BEER (DRAFT) 4 SODA 6 Lassi 4 dishes L > **Late-joiner check:** they arrived after the order went in. If their screen is empty, the table's history did not reach them.
11PATRON
I expected
Someone joins us late — and can see what we already ordered
I saw
passed through: dietary question. Their order screen shows: Bud Light Michelob Ultra Drinks Starters Mains Desserts LASSI 4 BEER (BOTTLE) 11 ANANT MOCKTAILS 7 BEER (DRAFT) 4 SODA 6 Lassi 4 dishes Lassi - Mango Yogurt smoothie blended with sweet mango pulp — chilled and creamy. $5
W-057 mosaic_v2-payments-config Partial green OWNER, PATRON · 5 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC STOPPED 4 steps · 1 video(s) · trace

Why it ended here: There is no control on this page for turning payments on, and none for choosing which methods are accepted. The page is a single sentence and the sidebar. So the owner round-trip this journey asserts is not something an owner can perform.

open trace viewer trace.zip notes

owner screen
0:00
01OWNER
I expected
I sign in and look at what this restaurant's own menu offers me
I saw
The sidebar offers 6 places to go: Home, Food Items, Menu, Tables/Staff, Personalize, Insights. A Payments entry is NOT there — as this restaurant's owner I am never shown a way to reach payment settings. Dashboard reads: Skip to main content QRate Canary Mosaic V2 Electronic Pay — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner GOOD > **The page, word for word:** "Skip to main content QRate Canary Mosaic V2 Electronic Pay — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner In-app card payments aren’t enabled for this restaurant yet." > **Every control on it that is not the sidebar:** `submit` ""
02OWNER
I expected
I read the payments settings page — the baseline this journey starts from
I saw
HTTP 200, header confirms "Canary Mosaic V2 Electronic Pay — dev". It says: "Skip to main content QRate Canary Mosaic V2 Electronic Pay — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner In-app card payments aren’t enabled for this restaurant yet.". Controls beyond the sidebar: 1.
03OWNER
I expected
I look for the accepted-methods control this journey round-trips
I saw
STOPPED — There is no control on this page for turning payments on, and none for choosing which methods are accepted. The page is a single sentence and the sidebar. So the owner round-trip this journey asserts is not something an > **The same page on four restaurants:** > > - **mosaic_v2-electronic-pay** (header "Canary Mosaic V2 Electronic Pay — dev") → "In-app card payments aren’t enabled for this restaurant yet." · controls: submit: > - **mosaic_v2-split** (header "Canary Mosaic V2 Split — dev") → "In-app card payments aren’t enabled for this restaurant yet." · controls: submit: > - **canary-mosaic** (header "Canary Mosaic — dev") → "In-app card payments aren’t enabled for this restaurant yet." · controls: submit: > - **micro-kitchen** (header "Canary Micro Kitchen — dev") → "UPI payment UPI is available for kitchens priced in ₹ INR. This kitchen is set to USD. Change the currency fir" · controls: submit:
04OWNER
I expected
Before I blame the page, I check it is not the same page for every restaurant
I saw
The page reads differently across them (2 distinct readings), and the header does follow the restaurant I chose.
W-060 mosaic_v2-place-order-chaos Partial green CANARY, OWNER, PATRON · 10 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC WALKED 5 steps · 2 video(s) · trace

Why it ended here: walked what has a screen

open trace viewer trace.zip notes

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I sit down at this restaurant and find something to order
I saw
9 dishes once I open the fullest course. Per course: {"(as it opened)":9,"Drinks":9,"Starters":1,"Mains":3,"Desserts":1}. Screen: Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baselin
02PATRON
I expected
I add a dish
I saw
Cart pill reads 1. > **What the server answered when I pressed order:** 201 /diner/orders · 200 /diner/orders/3052cd0f-e49f-463b-82a7-363542af5f5c · 200 /diner/orders/3052cd0f-e49f-463b-82a7-363542af5f5c · 200 /diner/orders/3052cd0f-e49f-463b-82a7-363542af5f5c · 200 /diner/orders/3052cd0f-e49f-463b-82a7-363542af5f5c · 200 /diner/orders/3052cd0f-e49f-463b-82a7-363542af5f5c
03PATRON
I expected
I press Place order — and it either goes to the kitchen or it does not
I saw
I pressed "Place order $3.50 ›" and it worked: the Ordered tab reads "The Cart Ordered C Canary Cola ORDERED $3.50 Re-order TOTAL $3.50 Back to Menu", badge "ORDERED". So this restaurant is NOT sitting in a failing state right now. > **This restaurant's sidebar:** Home · Food Items · Menu · Tables/Staff · Personalize · Insights > **Every owner screen searched for fault injection:** > > - `/owner/dashboard/` → Chaos > - `/owner/food-items/` → Chaos > - `/owner/menu/` → fault, Chaos > - `/owner/experience/` → Chaos > - `/owner/personalize/` → Chaos > - `/owner/insights/order-history/` → Chaos > - `/owner/settings/pos/` → Chaos > - `/owner/settings/payments/` → Chaos
04OWNER
I expected
I go looking for the switch that makes ordering fail
I saw
Found: /owner/dashboard/ → Chaos ; /owner/food-items/ → Chaos ; /owner/menu/ → fault,Chaos ; /owner/experience/ → Chaos ; /owner/personalize/ → Chaos ; /owner/insights/order-history/ → Chaos ; /owner/settings/pos/ → Chaos ; /owner/settings/payments/ → Chaos
05PATRON
I expected
CLEANUP — I cancel my own dish
I saw
Cancel controls 1 → 0; sheet now "The Cart Ordered C Canary Cola CANCELLED $3.50 Back to Menu".
W-063 mosaic_v2-session-close Partial green Ad-hoc request PATRON, WAITER · 4 steps 1 run

see this row in the honesty ledger →

Ad-hoc request. Operator named this row for a comprehensive re-walk. Four walks driven 2026-09-06 on the canary's OWN fixture with a waiter scoped to it. It was asked for and it is a finding - verdict Partial green - so it stays in the main grid, where findings are read.

Evidenced by the uat-1202-closeout walk — one walk can answer more than one canary.

2026-09-08 00:20 UTC WALKED 5 steps · 3 video(s) · no trace

Why it ended here: Finished the session-close journey on a clean table and attempted to hand every table I dirtied back.

notes

diner-a screen · iPhone 14 Pro — web content area
0:00
diner-b screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
01DINERS
I expected
Two guests sit at a clean table 10093 and both order
I saw
A pressed "Place order $10.50 ›", B pressed "Place order $3.49 ›"
02WAITER
I expected
Sign in, put every order in the till, serve every dish
I saw
entered 2 (left 0) · 3 rows, 3 servable, served 3, left 0
03WAITER
I expected
Swipe the control - the step this journey is named after
I saw
before {"x":16,"y":565,"w":1248,"h":56,"opacity":"1","text":"Swipe after bill is settled","banner":false} · swiped=true · after null · card now "Table 10093 Canary Table 10093 No guests"
04DINER
I expected
Does the guest's phone learn the meal is over?
I saw
phone reads: "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.49 C C Canary IPA Canary baseline drink — DO NOT MODIFY. $7.00 Canary"
05WAITER
I expected
Hand back the tables I left open today
I saw
reclaim attempted on 10095, 10098, 10099 - {"10095":true,"10098":true,"10099":true}
W-069 mosaic_v2-split Partial green PATRON, WAITER · 12 steps 2 runs

see this row in the honesty ledger →

2026-09-04 06:30 UTC WALKED 0 steps · 2 video(s) · trace

the split canary fixture, table 9943 — a table the canary itself does not drive. — exactly two of us, A and B, on two separate phones. Not one person in two tabs.

Why it ended here: drove two real diners from sitting down through ordering to opening the split panel, and backed out without paying

open trace viewer trace.zip notes

patron-a screen · iPhone 14 Pro — web content area
0:00
patron-b screen · iPhone 14 Pro — web content area
0:00
2026-09-04 06:30 UTC HONEST_GREEN 4 steps · 2 video(s) · trace

Why it ended here: On the All scope the second diner DOES see the table's placed order. The lane's claim was an artefact of reading the per-person scope, and must not be filed.

open trace viewer trace.zip notes spec

patron-a screen · iPhone 14 Pro — web content area
0:00
patron-b screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
Two of us sit down at the same table
I saw
both arrived. B sees: Drinks Starters Mains Desserts C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary Iced Tea Canary baseline beverage > **A's Ordered tab (sheet only):** 1 Waluigi (You) 2 All David 1 Smith Spider-Punk The Cart Ordered C Canary Cola ORDERED $3.50 Re-order TOTAL $3.50 Back to Menu
02PATRON
I expected
I (diner A) order a drink for the table
I saw
A's Ordered tab reads: 1 Waluigi (You) 2 All David 1 Smith Spider-Punk The Cart Ordered C Canary Cola ORDERED $3.50 Re-order TOTAL $3.50 Back to Menu > **B, own scope (sheet only):** 1 Spider-Punk (You) 3 All David 1 Waluigi 1 Smith The Cart Ordered Nothing sent yet TOTAL $3.50 Back to Menu
03PATRON
I expected
My friend opens Ordered on HER OWN scope
I saw
1 Spider-Punk (You) 3 All David 1 Waluigi 1 Smith The Cart Ordered Nothing sent yet TOTAL $3.50 Back to Menu > **B, ALL scope:** 1 Spider-Punk (You) 3 All David 1 Waluigi 1 Smith The Cart Ordered C Canary Cola $3.50 Waluigi C Canary Cola $3.50 Agent Smith TOTAL $10.50 Back to Menu
04PATRON
I expected
She taps ALL — and this is the view that decides it
I saw
ALL scope shows: 1 Spider-Punk (You) 3 All David 1 Waluigi 1 Smith The Cart Ordered C Canary Cola $3.50 Waluigi C Canary Cola $3.50 Agent Smith TOTAL $10.50 Back to Menu > **Left behind:** a session and one placed order on table 9958.

Other evidence · lane-pay — Driven by a subagent lane, not a human-paced witness walk — screenshots and checkpoints, no role video and no trace. Stated so this is not read as the same grade of evidence.

W-070 mosaic_v2-split-combos Partial green PATRON, WAITER · 20 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC PARTIAL_GREEN 3 steps · 2 video(s) · trace

Why it ended here: Both diners ordered for real, the bill was asked for, and split options were offered. I stop short of paying: these fixtures are live Stripe merchants.

open trace viewer trace.zip notes

diner-1 screen · iPhone 14 Pro — web content area
0:00
diner-2 screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
Both diners sit down and each orders their own food
I saw
Two real orders on this table. Diner one: "ORDERED". Diner two: "ORDERED". > **Order sheet open?** yes · `m2-dock-scrim`, `m2-dock`, `m2-dock-search`, `m2-dock-cart`, `m2-dock-filter`, `m2-dock-trigger`, `layout-cart-shell`, `m2-cart-scrim`, `cart-sheet`, `cart-back-btn`, `cart-sheet-header`, `cart-scope-chip-2e36d4b0-97e7-554d-bb9d-d48d0f32aaee`, `cart-scope-name-2e36d4b0-97e7-554d-bb9d-d48d0f32aaee`, `cart-scope-chip-all`, `cart-scope-chip-f9ef7a51-8bf5-4ea9-bd20-0f8263f02642`, `cart-scope-name-f9ef7a51-8bf5-4ea9-bd20-0f8263f02642`, `m2-cart-tab-way`, `m2-cart-tab-table`, `cart-group-2e36d4b0-97e7-554d-bb9d-d48d0f32aaee`, `order-status-badge`, `reorder-item-f36ad753-bc92-47b7-81e2-6add6935b6e1`, `cart-footer-total`, `cart-back-to-menu-btn`, `cart-service-btn` > **What she is offered once the bill is asked for:** `settlement-cover`, `settlement-split`
02PATRON
I expected
One of them asks for the bill
I saw
Offered: settlement-cover, settlement-split. > **Ways to split she is offered:** How many ways? Split 2 waysCancel · split-decrement · split-count-input · split-increment · Split 2 ways · Cancel
03PATRON
I expected
She looks for a way to divide it between the two of them
I saw
6 ways to split: How many ways? Split 2 waysCancel, split-decrement, split-count-input, split-increment, Split 2 ways, Cancel. I stop here - pressing a payment control on a live Stripe fixture is not mine to do. > **Cleanup:** each diner cancelled their own dish where the control was still offered.
W-071 mosaic_v2-split-epay False green PATRON, WAITER · 7 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC WALKED 0 steps · 2 video(s) · trace

Why it ended here: Drove a real two-person split from ordering to an accepted invitation and stopped at the payment boundary by choice, not because the product stopped me.

open trace viewer trace.zip notes

diner-1 screen · iPhone 14 Pro — web content area
0:00
diner-2 screen · iPhone 14 Pro — web content area
0:00
W-072 mosaic_v2-subcat-order Partial green OWNER, PATRON · 11 steps 1 run

see this row in the honesty ledger →

Evidenced by the menu-subcat-order walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC WALKED 4 steps · 2 video(s) · trace

Why it ended here: Looked for the drag handle and wrote down the diner's rail order.

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01OWNER
I expected
I open my menu builder and look for my sub-categories
I saw
subcat controls: subcategory-count-Appetizers-Appetizers, subcategory-count-Appetizers-__ungrouped__, subcategory-count-Beverages-Beverages, subcategory-count-Beverages-__ungrouped__, subcategory-count-Desserts-Desserts, subcategory-count-Entrees-Sides, subcategory-count-Entrees-__ungrouped__, subcategory-create-add-Appetizers, subcategory-create-add-Beverages, subcategory-create-add-Desserts, subcategory-create-add-Entrees, subcategory-delete-Appetizers-Appetizers, subcategory-delete-Beverages-Beverages, subcategory-delete-Desserts-Desserts, subcategory-delete-Entrees-Sides, subcategory-drop-Appetizers-Appetizers, subcategory-drop-Appetizers-__ungrouped__, subcategory-drop-Beverages-Beverages, subcategory-drop-Beverages-__ungrouped__, subcategory-drop-Desserts-Desserts, subcategory-drop-Entrees-Sides, subcategory-drop-Entrees-__ungrouped__, subcategory-group-Appetizers-Appetizers, subcategory-group-Appetizers-__ungrouped__, subcategory-group-Beverages-Beverages, subcategory-group-Beverages-__ungrouped__, subcategory-group-Desserts-Desserts, subcategory-group-Entrees-Sides, subcategory-group-Entrees-__ungrouped__, subcategory-rename-Appetizers-Appetizers, subcategory-rename-Beverages-Beverages, subcategory-rename-Desserts-Desserts, subcategory-rename-Entrees-Sides, subcategory-toggle-Appetizers-Appetizers, subcategory-toggle-Appetizers-__ungrouped__, subcategory-toggle-Beverages-Beverages, subcategory-toggle-Beverages-__ungrouped__, subcategory-toggle-Desserts-Desserts, subcategory-toggle-Entrees-Sides, subcategory-toggle-Entrees-__ungrouped__ · draggable elements: 5
02OWNER
I expected
There is a sub-category ROW I could drag to reorder
I saw
sub-category rows present: subcategory-count-Appetizers-Appetizers, subcategory-count-Appetizers-__ungrouped__, subcategory-count-Beverages-Beverages, subcategory-count-Beverages-__ungrouped__, subcategory-count-Desserts-Desserts, subcategory-count-Entrees-Sides, subcategory-count-Entrees-__ungrouped__, subcategory-delete-Appetizers-Appetizers, subcategory-delete-Beverages-Beverages, subcategory-delete-Desserts-Desserts, subcategory-delete-Entrees-Sides, subcategory-drop-Appetizers-Appetizers, subcategory-drop-Appetizers-__ungrouped__, subcategory-drop-Beverages-Beverages, subcategory-drop-Beverages-__ungrouped__, subcategory-drop-Desserts-Desserts, subcategory-drop-Entrees-Sides, subcategory-drop-Entrees-__ungrouped__, subcategory-group-Appetizers-Appetizers, subcategory-group-Appetizers-__ungrouped__, subcategory-group-Beverages-Beverages, subcategory-group-Beverages-__ungrouped__, subcategory-group-Desserts-Desserts, subcategory-group-Entrees-Sides, subcategory-group-Entrees-__ungrouped__, subcategory-rename-Appetizers-Appetizers, subcategory-rename-Beverages-Beverages, subcategory-rename-Desserts-Desserts, subcategory-rename-Entrees-Sides, subcategory-toggle-Appetizers-Appetizers, subcategory-toggle-Appetizers-__ungrouped__, subcategory-toggle-Beverages-Beverages, subcategory-toggle-Beverages-__ungrouped__, subcategory-toggle-Desserts-Desserts, subcategory-toggle-Entrees-Sides, subcategory-toggle-Entrees-__ungrouped__ > **Rail on Drinks:** `BEVERAGES 1 MORE 8` — m2-subcat-jump-Beverages="BEVERAGES 1" · m2-subcat-jump-more="MORE 8" > **Rail on Mains:** `SIDES 1 MORE 2` — m2-subcat-jump-Sides="SIDES 1" · m2-subcat-jump-more="MORE 2"
03PATRON
I expected
As a diner, what order is the sub-category rail in?
I saw
Drinks "BEVERAGES 1 MORE 8" · Mains "SIDES 1 MORE 2" > **Named rail entries:** m2-subcat-jump-Beverages="BEVERAGES 1" · m2-subcat-jump-Sides="SIDES 1" — these are the course's own raw categories (Beverages, Sides), not sub-categories an owner filed.
04PATRON
I expected
The rail is showing me real sub-categories, not just raw courses
I saw
m2-subcat-jump-Beverages="BEVERAGES 1", m2-subcat-jump-Sides="SIDES 1"
W-078 owner-menu-bulk-actions Partial green OWNER · 11 steps 1 run

see this row in the honesty ledger →

Evidenced by the owner-bulk-actions walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC WALKED 6 steps · 1 video(s) · trace

Why it ended here: Read the bulk panel and checked the manual against it.

open trace viewer trace.zip notes spec

owner screen
0:00
01OWNER
I expected
I open my food library
I saw
22 dish(es) listed. > **One click selects:** `22 selected`
02OWNER
I expected
I select everything with one click
I saw
The bar reads "22 selected". > **13 things I can do to every dish at once:** > > - bulk-tab-assign="Assign" > - bulk-tab-remove="Remove" > - bulk-tab-boost="Boost" > - bulk-tab-special="Special" > - bulk-tab-availability="Availability" > - bulk-tab-spice="Spice" > - bulk-tab-spiceModifier="Spice modifier" > - bulk-tab-spiceRequired="Spice requirement" > - bulk-tab-dietary="Dietary" > - bulk-tab-rawCategory="Raw Category" > - bulk-tab-grouping="Grouping" > - bulk-tab-removeGrouping="Remove grouping" > - bulk-tab-delete="Delete" > **The button that commits it reads:** `Apply to 22 items`
03OWNER
I expected
I open the bulk actions panel and read what it offers
I saw
13 modes, committed by a button reading "Apply to 22 items". > **In Delete mode the commit button reads:** `Delete 22 items…` · **the panel warns this is irreversible:** true
04OWNER
I expected
One of them is Delete — I look at it without pressing anything
I saw
Delete is one click plus a commit button reading "Delete 22 items…". I did not press it. The panel does warn that this cannot be undone.
05OWNER
I expected
I put everything back the way I found it
I saw
Selection cleared, panel closed, nothing applied. Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner War > **Mentions in the whole rendered manual:** bulk: 0 · select all: 0 · at once: 3 · delete: 1 (manual is 31812 chars, all tabs clicked, all collapsibles forced open)
06OWNER
I expected
Does the manual tell an owner any of this?
I saw
The manual never uses the word "bulk" — not once in 31812 characters, with every tab opened and every collapsible expanded. So the panel that can delete every dish in one action is not in the owner's own Book of Truth.
W-079 owner-modifiers-pairings False red OWNER · 8 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:08 UTC WALKED 7 steps · 1 video(s) · trace

Why it ended here: Every owner-facing thing this journey promises in steps 2-5 is on screen and readable: the Modifiers tab, the Pairings tab, both scope explanations, and the pricing switch in the one place it belongs. Steps 6-8 are about the switch PERSISTING, which I did not exercise - flipping it would mutate a canary fixture mid-run and could hand the builder a false red. So this walk covers 5 of 8 steps, and says nothing about the other 3.

open trace viewer trace.zip notes spec

owner screen
0:00
01OWNER
I expected
I can sign in and reach my restaurant
I saw
I am in the owner app. The page reads: Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner GOOD MORNING, CANARY What would you like to
02OWNER
I expected
I can open one of my dishes and edit it
I saw
The dish editor is open. Along the top I can see 5 tabs: "Dish Properties", "Menus (1)", "Modifiers", "Pairings", "Performance"
03OWNER
I expected
one of those tabs is called Modifiers, and a Pairings tab exists
I saw
Yes — I can read "Modifiers" and "Pairings" on screen. (The Modifiers tab's testid is tab-groupings, which does not match its label — a trap for anyone selecting by name, though a diner or owner never sees it.)
04OWNER
I expected
the Modifiers tab tells me what modifiers are for
I saw
It explains itself: "Configure the buckets and rules diners pick from. The Add-ons default is always present and can be renamed but not deleted."
05OWNER
I expected
the Pairings tab tells me what pairings are for
I saw
It explains itself: "Dishes recommended alongside this one. Pairings are suggestions, not choices — they never change the price of this dish."
06OWNER
I expected
a pricing switch is visible where pricing applies, and absent where it does not
I saw
On Modifiers I can see a pricing switch reading "Pricing on". On Pairings there is none (0 found) — which matches what Pairings told me: they are suggestions, and never change the price.
07OWNER
I expected
the dish the canary refers to still exists
I saw
STOPPED — It does not. Deep-linking to 69f06e43-710d-493b-a553-77d5ccd93bf3 leaves me on the food library with no editor open - the dish the canary names is gone.
W-084 pos-non-regression Partial green CANARY, PATRON · 4 steps 2 runs

see this row in the honesty ledger →

Evidenced by the menu-stability walk — one walk can answer more than one canary.

2026-09-04 05:53 UTC WALKED 3 steps · 1 video(s) · trace

Anant, table 12 — a quiet table, so I disturb nobody's meal. — just me, a diner reading the menu twice.

Why it ended here: read the menu twice and found the drinks — that is the whole promise

open trace viewer trace.zip notes spec

patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I open the menu and it actually has dishes on it
I saw
I can count 32 dishes I could add. The page reads: Bud Light Michelob Ultra Drinks Starters Mains Desserts LASSI 4 BEER (BOTTLE) 11 ANANT MOCKTAILS 7 BEER (DRAFT) 4 SODA 6 Lassi 4 dishes Lass > **Does the menu hold still:** 32 dishes the first time, 32 the second.
02PATRON
I expected
I look away and look again — the same dishes are still there
I saw
32 dishes — exactly the same as before > **Drinks band:** I can see drinks, beer, cocktail, mocktail, wine, lassi, soda. The bar-tender canary skips its own cocktail steps because its fixture has no cocktails — on a real restaurant menu the drinks are plainly there.
03PATRON
I expected
I can find the drinks on the menu, the way a thirsty person would
I saw
drinks I can see: drinks, beer, cocktail, mocktail, wine, lassi, soda
2026-09-04 05:53 UTC WALKED 3 steps · 1 video(s) · trace

Anant, table 12 — a quiet table, so I disturb nobody's meal. — just me, a diner reading the menu twice.

Why it ended here: read the menu twice and found the drinks — that is the whole promise

open trace viewer trace.zip notes spec

patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I open the menu and it actually has dishes on it
I saw
I can count 32 dishes I could add. The page reads: Bud Light Michelob Ultra Drinks Starters Mains Desserts LASSI 4 BEER (BOTTLE) 11 ANANT MOCKTAILS 7 BEER (DRAFT) 4 SODA 6 Lassi 4 dishes Lass > **Does the menu hold still:** 32 dishes the first time, 32 the second.
02PATRON
I expected
I look away and look again — the same dishes are still there
I saw
32 dishes — exactly the same as before > **Drinks band:** I can see drinks, beer, cocktail, mocktail, wine, lassi, soda. The bar-tender canary skips its own cocktail steps because its fixture has no cocktails — on a real restaurant menu the drinks are plainly there.
03PATRON
I expected
I can find the drinks on the menu, the way a thirsty person would
I saw
drinks I can see: drinks, beer, cocktail, mocktail, wine, lassi, soda
W-085 pos-order-push Partial green CANARY, PATRON · 4 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC PARTIAL_GREEN 4 steps · 1 video(s) · trace

Why it ended here: The one step with a screen works: a guest can order here and is told it went through. The three till-side steps have no customer-facing surface and cannot be seen from here.

open trace viewer trace.zip notes spec

patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I sit down at this restaurant and see what is on the menu
I saw
9 dishes in the fullest course. Per course: {"(as it opened)":9,"Drinks":9,"Starters":1,"Mains":3,"Desserts":1}.
02PATRON
I expected
I add a dish to my order
I saw
Cart pill reads 1. > **What the server answered:** 201 /diner/orders · 200 /diner/orders/c3f89b26-0bff-400d-91c9-ce221a5ab217 · 200 /diner/orders/c3f89b26-0bff-400d-91c9-ce221a5ab217 · 200 /diner/orders/c3f89b26-0bff-400d-91c9-ce221a5ab217 · 200 /diner/orders/c3f89b26-0bff-400d-91c9-ce221a5ab217 · 200 /diner/orders/c3f89b26-0bff-400d-91c9-ce221a5ab217
03PATRON
I expected
I press Place order and watch whether it reaches the kitchen
I saw
Pressed "Place order $3.50 ›". The Ordered tab reads "The Cart Ordered C Canary Cola ORDERED $3.50 Re-order TOTAL $3.50 Back to Menu", badge "ORDERED".
04PATRON
I expected
I look for any sign the restaurant's till took the order
I saw
All a customer sees is "ORDERED" on their own order. Nothing on this screen says whether the restaurant's till received it, acknowledged it, or reconciled it - which is what the other three steps of this journey assert. > **Cleanup:** I cancelled the dish I ordered, so this walk leaves nothing standing.
W-090 wine-order-integrity Partial green CANARY, PATRON, WAITER · 10 steps 1 run

see this row in the honesty ledger →

Evidenced by the recs-wine-order walk — one walk can answer more than one canary.

2026-09-04 06:30 UTC WALKED 8 steps · 2 video(s) · trace

Why it ended here: Walked the whole diner half: cellar band -> quiz -> pick -> by the glass (1000c) -> switched the same wine to by the bottle (4000c) -> exactly one cart line -> ordered -> the Ordered ledger shows the bottle price. The staff view of the pour is the one thing I could not reach.

open trace viewer trace.zip notes spec

patron screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
01PATRON
I expected
I sit down and the restaurant offers to help me pick a wine
I saw
passed dietary question. The band reads: "THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair the wine →" > **I answered:** white · dry · light > **The pick panel reads:** YOUR POUR TONIGHT Canary White Wine OFF-DRY Serving REQUIRED BY GLASS $10.00 BY BOTTLE $40.00 ↺ Start over Other pours ADDS TO CART Canary Red Wine DRY BY GLASS $11.00 +
02PATRON
I expected
I answer its three questions and it names a wine, with prices
I saw
placeholder 1->0. It recommends: YOUR POUR TONIGHT Canary White Wine OFF-DRY Serving REQUIRED BY GLASS $10.00 BY BOTTLE $40.00 ↺ Start over Other pours ADDS TO CART Canary Red Wine DRY BY GLASS $11.00 + > **BY GLASS reads** "BY GLASS $10.00" (1000c) · **the add button reads** "Add to order ($10.00)"
03PATRON
I expected
It quotes me a BY GLASS price and I add that glass
I saw
panel BY GLASS "BY GLASS $10.00" = 1000c; the add button said "Add to order ($10.00)" > **Cart (read only inside the cart sheet):** The Cart Ordered C Canary White Wine By Glass $10.00 − 1 + TOTAL $10.00 A 20% gratuity will be added to parties of 5 or more Place order $10.00 ›
04PATRON
I expected
My cart shows that glass at exactly the price I was quoted
I saw
1 cart line(s); the line reads 1000c and the panel quoted 1000c > **I answered again:** white · dry · light > **BY BOTTLE reads** "BY BOTTLE $40.00" (4000c) · **the add button reads** "Add to order ($40.00)"
05PATRON
I expected
I change my mind: same wine, BY BOTTLE instead
I saw
panel BY BOTTLE "BY BOTTLE $40.00" = 4000c; the add button said "Add to order ($40.00)" > **Cart after the switch:** The Cart Ordered C Canary White Wine By Bottle $40.00 − 1 + TOTAL $40.00 A 20% gratuity will be added to parties of 5 or more Place order $40.00 ›
06PATRON
I expected
My cart holds ONE line — the bottle replaced the glass, it did not add a second
I saw
settled line count = 1; it reads the bottle price 4000c. Cart: The Cart Ordered C Canary White Wine By Bottle $40.00 − 1 + TOTAL $40.00 A 20% gratuity will be added to parties of 5 or more Place order $40.00 › > **POST /diner/orders answered:** 201 diner/orders > **The Ordered ledger reads:** The Cart Ordered C Canary White Wine ORDERED $40.00 Re-order TOTAL $40.00 Back to Menu
07PATRON
I expected
I order it, and I am charged the price I was shown
I saw
order button said "Place order $40.00 ›"; server answered 201 diner/orders; the Ordered ledger shows 4000c. The Cart Ordered C Canary White Wine ORDERED $40.00 Re-order TOTAL $40.00 Back to Menu
08WAITER
I expected
Staff can see my order and which pour I chose
I saw
STOPPED — the only staff login this container holds is the restaurant OWNER, and the waiter app tells them "<no table list>" — so table 9946's order, and the pour on it, are not visible to me. Screen: QRate Owner Portal Welcome ba **Cleanup:** I placed one real order on table 9946 of Canary Mosaic V2 Sommelier — dev (server answered 201 diner/orders). I cannot settle or close it — no staff account in this container is assigned to that table. 99xx is a test table number, not one a real diner uses. Nothing was paid.
W-093 owner-cocktail-bartender No canary at all OWNER · 0 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC STOPPED 4 steps · 1 video(s) · trace

Why it ended here: There is not one button, link or field on this page. A bartender opening it can do nothing at all. Page reads: Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner l is not a function

open trace viewer trace.zip notes spec

owner screen
0:00
01OWNER
I expected
I sign in as the owner of this restaurant
I saw
I am in. Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner GOOD MORNING, CANARY What would you like to
02OWNER
I expected
I open the bartender screen
I saw
HTTP 200 and the app shell painted — 6 nav item(s) down the side. So the app believes this is a real page. > **The page's own words, verbatim:** `l is not a function` > **Everything the page offers:** `cocktail-queue-error`
03OWNER
I expected
I read what is actually on the page
I saw
The whole page is the words "l is not a function" — that is a JavaScript failure shown to the owner as page content. There is no queue, no drink, no control of any kind.
04OWNER
I expected
I look for anything a bartender could actually use
I saw
STOPPED — There is not one button, link or field on this page. A bartender opening it can do nothing at all. Page reads: Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canar
W-095 owner-unreachable-settings No canary at all OWNER · 0 steps 1 run

see this row in the honesty ledger →

2026-09-04 06:30 UTC WALKED 4 steps · 1 video(s) · trace

Why it ended here: Enumerated every link on six owner screens against three routes.

open trace viewer trace.zip notes spec

owner screen
0:00
01OWNER
I expected
I sign in as the owner
I saw
Skip to main content QRate Canary Mosaic — dev Home Food Items Menu Tables/Staff Personalize Insights C Canary Owner GOOD MORNING, CANARY What would you like to > **Typing the address:** > > - `/owner/settings/payments` -> **200**, reads _"In-app card payments aren’t enabled for this restaurant yet."_ > - `/owner/settings/pos` -> **200**, reads _"POS Integration Connect your point-of-sale system to receive orders directly Restaurant Ca"_ > - `/owner/settings/dietary` -> **200**, reads _"Dietary & Allergen Settings Choose whether each dietary restriction and allergen applies t"_
02OWNER
I expected
The pages themselves work if I type the address
I saw
All three answer and render: 3 page(s). > **I enumerated every link on 6 screens** — sidebar, user menu and mobile nav opened on each — and collected **77** distinct hrefs.
03OWNER
I expected
Now I go looking for them the way an owner would
I saw
Not one of the 77 links points at any of them. The only settings-ish href anywhere is: none at all.
04OWNER
I expected
And the settings index an owner would guess at
I saw
`/owner/settings/` answers **404**. Screen: This XML file does not appear to have any style information associated with it. The document tree is shown below. <Error> <Code>NoSuchKey</C
W-096 cross-engine-coverage No canary at all PATRON · 0 steps 1 run

see this row in the honesty ledger →

Evidenced by the guest-session-webkit walk — one walk can answer more than one canary.

2026-09-05 16:11 UTC STOPPED 4 steps · 1 video(s) · trace

the Canary Mosaic fixture, table 9994 — a test table, so nobody's real meal is touched. — one diner, alone, on an **iPhone 14 Pro** descriptor driven on the **webkit** engine.

Why it ended here: the restaurant never learned who I am — 401 POST /auth/guest/attach-session; 401 POST /diner/session/snapshot (cookies held: none)

open trace viewer trace.zip notes

patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I scan the code at my table and a menu appears
I saw
the app asked me welcome card and dietary question, then showed me 11 dishes I could add. It reads: M M2BS Chef 24194822 M M2BS Boost 24194822 Drinks Starters Mains Desserts Beverages 1 dish C Canary Iced Tea Canary base
02PATRON
I expected
I add something to my order
I saw
the dish went into my order
03PATRON
I expected
I open my order and send it to the kitchen
I saw
I placed the order. The screen reads: M M2BS Chef 24194822 M M2BS Boost 24194822 Drinks Starters Mains Desserts Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO N > **Cookies the app is holding:** **none at all** > **Session calls the server refused:** 401 POST /auth/guest/attach-session · 401 POST /diner/session/snapshot
04PATRON
I expected
the app has actually identified me to the restaurant
I saw
STOPPED — the restaurant never learned who I am — 401 POST /auth/guest/attach-session; 401 POST /diner/session/snapshot (cookies held: none)
W-097 guest-session-webkit No canary at all PATRON · 4 steps 1 run

see this row in the honesty ledger →

2026-09-05 16:11 UTC STOPPED 4 steps · 1 video(s) · trace

the Canary Mosaic fixture, table 9994 — a test table, so nobody's real meal is touched. — one diner, alone, on an **iPhone 14 Pro** descriptor driven on the **webkit** engine.

Why it ended here: the restaurant never learned who I am — 401 POST /auth/guest/attach-session; 401 POST /diner/session/snapshot (cookies held: none)

open trace viewer trace.zip notes

patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I scan the code at my table and a menu appears
I saw
the app asked me welcome card and dietary question, then showed me 11 dishes I could add. It reads: M M2BS Chef 24194822 M M2BS Boost 24194822 Drinks Starters Mains Desserts Beverages 1 dish C Canary Iced Tea Canary base
02PATRON
I expected
I add something to my order
I saw
the dish went into my order
03PATRON
I expected
I open my order and send it to the kitchen
I saw
I placed the order. The screen reads: M M2BS Chef 24194822 M M2BS Boost 24194822 Drinks Starters Mains Desserts Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO N > **Cookies the app is holding:** **none at all** > **Session calls the server refused:** 401 POST /auth/guest/attach-session · 401 POST /diner/session/snapshot
04PATRON
I expected
the app has actually identified me to the restaurant
I saw
STOPPED — the restaurant never learned who I am — 401 POST /auth/guest/attach-session; 401 POST /diner/session/snapshot (cookies held: none)
W-098 wiz-final Partial green OWNER · 0 steps 1 run

see this row in the honesty ledger →

2026-09-05 19:27 UTC INCOMPLETE 3 steps · 1 video(s) · no trace

Why it ended here: Stopped: no pin was handed to me within 30 minutes — I will not invent one

notes

owner screen
0:00
01OWNER
I expected
Start my pilot, give my name, email and password
I saw
→ "What kind of establishment is this?"
02OWNER
I expected
Say I run a restaurant and fill the details in
I saw
owner line ["Owner name: Atish Saha","Owner email: atish+uat202609052002@qrate-ai.com"] · submit disabled=false
03OWNER
I expected
Submit, and type in the pin the app emails me
I saw
STOPPED — no pin was handed to me within 30 minutes — I will not invent one > **Where I stopped:** Stopped: no pin was handed to me within 30 minutes — I will not invent one
W-099 wiz-human No canary at all OWNER · 0 steps 1 run

see this row in the honesty ledger →

2026-09-05 19:27 UTC RECON 3 steps · 1 video(s) · no trace

Why it ended here: Control run: does the wizard's submit enable when a human types instead of a robot?

notes

owner screen
0:00
01OWNER
I expected
Type every field by hand, tabbing out of each, watching the button
I saw
ladder so far [{"after":"arrived","disabled":true},{"after":"phone typed+blurred","disabled":true},{"after":"name typed+blurred","disabled":true},{"after":"location typed+blurred","disabled":true},{"after":"cuisine chosen","disabled":true},{"after":"tables adjusted","disabled":true}] · cuisine=Italian · size row "Set up your restaurant — QRateQRate✓Establishment type2Resta"
02OWNER
I expected
Add the three documents and watch the button after each
I saw
[{"after":"uploaded menu.jpg","disabled":true},{"after":"uploaded utility-bill.jpg","disabled":true},{"after":"uploaded gov-id.png","disabled":true},{"after":"settled 8s after the last upload","disabled":true}]
03OWNER
I expected
Press it anyway — a disabled button still tells me something
I saw
disabled=true; forcing a click did nothing visible; still on "Tell us about your restaurant"
W-100 wiz-claim No canary at all OWNER, PORTAL · 0 steps 1 run

see this row in the honesty ledger →

2026-09-05 19:27 UTC PARTIAL_GREEN 4 steps · 2 video(s) · no trace

Why it ended here: Wizard driven to the end of what it would show me; the claim was not visible in the portal from where I could look.

notes

owner screen
0:00
portal screen
0:00
01OWNER
I expected
Create the account and fill in my restaurant
I saw
restaurant "UAT Copper Fig 202609052102", three documents attached, submit enabled=true
02OWNER
I expected
Submit, and deal with the email verification
I saw
skipped via I'll verify later → "Tell us about your restaurant" · alerts [] · QRate ✓ Establishment type 2 Restaurant details 3 Verification Your pilot setup saves automatically — come back anytime. STEP 2 OF 3 Tell us about your restaurant We'll use this to verify your business and load your menu into Mosaic. Owner name: Atish Saha Owner email: atish+uat202609052102@qrate-ai
03OWNER
I expected
Walk to the end of the wizard
I saw
"Tell us about your restaurant" → "Tell us about your restaurant" → "Tell us about your restaurant" → "Tell us about your restaurant" → "Tell us about your restaurant" → "Tell us about your restaurant" → "Tell us about your restaurant" → "Tell us about your restaurant"
04PORTAL
I expected
Open the admin portal and find my claim
I saw
portal at https://portal.internal.qrate-ai.com/login/ · "QRate Admin" · my restaurant "UAT Copper Fig 202609052102" is NOT on this page · QRate Admin Admin Access Sign In
W-101 wiz-login No canary at all OWNER · 0 steps 1 run

see this row in the honesty ledger →

2026-09-05 19:27 UTC RECON 3 steps · 1 video(s) · no trace

Why it ended here: Does the account exist, and where is the real verification gate?

notes

owner screen
0:00
01OWNER
I expected
Come back and log in with the account I just made
I saw
pressed "Log in" → "Welcome back." · alerts [] · fields ["login-email","login-password"] · text: Skip to main content QRate OWNER PORTAL OWNER SIGN IN Welcome back. Sign in to manage your menu, tables, and orders. Continue with Google OR Email Password Forgot? Sign in New to QRate? Request access Privacy Terms v1.0
02OWNER
I expected
If it wants the emailed code, wait for a real one
I saw
It did NOT ask for a code. Screen is "Welcome back.".
03OWNER
I expected
Now try the details form again, signed in
I saw
owner line reads "Owner name: —" · submit {"t":"Create account & continue","tid":"wizard-continue","dis":true}
W-102 wiz-microkitchen No canary at all OWNER · 0 steps 1 run

see this row in the honesty ledger →

2026-09-05 19:27 UTC RECON 1 steps · 1 video(s) · no trace

Why it ended here: Triage: is the dead submit specific to the Restaurant branch?

notes

owner screen
0:00
01OWNER
I expected
Say I run a micro kitchen instead, and fill in what it asks
I saw
heading "Tell us about your restaurant" · fields ["phone-country","phone-input","Restaurant name *","Location *","Cuisine type Select cuisine Italian American ","upload-input-menu","upload-input-utilityBill","upload-input-id"] · submit disabled=true
W-103 wiz-blocker2 No canary at all OWNER · 0 steps 1 run

see this row in the honesty ledger →

2026-09-05 19:27 UTC RECON 4 steps · 1 video(s) · no trace

Why it ended here: Testing whether the fixed city list is the hidden gate on the wizard's submit.

notes

owner screen
0:00
01OWNER
I expected
Read the whole city list the wizard actually offers
I saw
<DATALIST> with 16 fixed entries: New York, NY | Los Angeles, CA | Chicago, IL | Houston, TX | Phoenix, AZ | Philadelphia, PA | San Antonio, TX | San Diego, CA | Dallas, TX | Austin, TX | San Francisco, CA | Seattle, WA | Denver, CO | Boston, MA | Miami, FL | Atlanta, GA
02OWNER
I expected
Fill everything, but this time use a city straight off their list
I saw
location="New York, NY" · uploads registered ["upload-filled-menu","upload-filled-utilityBill","upload-filled-id"] · seats row [] · Continue disabled=true
03OWNER
I expected
Try the seat counter properly, then look again
I saw
pressed + 0x · seats row now [] · Continue disabled=true
04OWNER
I expected
If it is still dead, show me everything on this screen a person could press
I saw
still disabled. Everything pressable: [{"tag":"BUTTON","role":null,"type":"button","tid":null,"t":"✓ Establishment type","dis":false,"checked":null},{"tag":"BUTTON","role":null,"type":"button","tid":null,"t":"2 Restaurant details","dis":false,"checked":null},{"tag":"BUTTON","role":null,"type":"button","tid":null,"t":"3 Verification","dis":false,"checked":null},{"tag":"SELECT","role":null,"type":"select-one","tid":"phone-country","t":"AC 🇦🇨 AD 🇦🇩 AE 🇦🇪 AF 🇦🇫 AG 🇦🇬 AI 🇦🇮 AL 🇦🇱 AM \ud83c","dis":false,"checked":null},{"tag":"INPUT","role":null,"type":"tel","tid":"phone-input","t":"(202) 456-0142","dis":false,"checked":false},{"tag":"INPUT","role":null,"type":"text","tid":null,"t":"UAT Copper Fig blocker2","dis":false,"checked":false},{"tag":"INPUT","role":null,"type":"text","tid":null,"t":"New York, NY","dis":false,"checked":false},{"tag":"BUTTON","role":null,"type":"button","tid":null,"t":"–","dis":false,"checked":null},{"tag":"BUTTON","role":null,"type":"button","tid":null,"t":"+","dis":false,"checked":null},{"tag":"SELECT","role":null,"type":"select-one","tid":null,"t":"Select cuisine Italian American Mexican Chinese Japanese Ind","dis":false,"checked":null},{"tag":"INPUT","role":null,"type":"file","tid":"upload-input-menu","t":"","dis":false,"checked":false},{"tag":"BUTTON","role":null,"type":"button","tid":null,"t":"Replace","dis":false,"checked":null},{"tag":"BUTTON","role":null,"type":"button","tid":"upload-clear-menu","t":"Remove","dis":false,"checked":null},{"tag":"INPUT","role":null,"type":"file","tid":"upload-input-utilityBill","t":"","dis":false,"checked":false},{"tag":"BUTTON","role":null,"type":"button","tid":null,"t":"Replace","dis":false,"checked":null},{"tag":"BUTTON","role":null,"type":"button","tid":"upload-clear-utilityBill","t":"Remove","dis":false,"checked":null},{"tag":"INPUT","role":null,"type":"file","tid":"upload-input-id","t":"","dis":false,"checked":false},{"tag":"BUTTON","role":null,"type":"button","tid":null,"t":"Replace","dis":false,"checked":null},{"tag":"BUTTON","role":null,"type":"button","tid":"upload-clear-id","t":"Remove","dis":false,"checked":null},{"tag":"BUTTON","role":null,"type":"button","tid":null,"t":"Back","dis":false,"checked":null},{"tag":"BUTTON","role":null,"type":"button","tid":"wizard-continue","t":"Create account & continue","dis":true,"checked":null}] Screen text tail: 🇸 RU 🇷🇺 RW 🇷🇼 SA 🇸🇦 SB 🇸🇧 SC 🇸🇨 SD 🇸🇩 SE 🇸🇪 SG 🇸🇬 SH 🇸🇭 SI 🇸🇮 SJ 🇸🇯 SK 🇸🇰 SL 🇸🇱 SM 🇸🇲 SN 🇸🇳 SO 🇸🇴 SR 🇸🇷 SS 🇸🇸 ST 🇸🇹 SV 🇸🇻 SX 🇸🇽 SY 🇸🇾 SZ 🇸🇿 TA 🇹🇦 TC 🇹🇨 TD 🇹🇩 TG 🇹🇬 TH 🇹🇭 TJ 🇹🇯 TK 🇹🇰 TL 🇹🇱 TM 🇹🇲 TN 🇹🇳 TO 🇹🇴 TR 🇹🇷 TT 🇹🇹 TV 🇹🇻 TW 🇹🇼 TZ 🇹🇿 UA 🇺🇦 UG 🇺🇬 US 🇺🇸 UY 🇺🇾 UZ 🇺🇿 VA 🇻🇦 VC 🇻🇨 VE 🇻🇪 VG 🇻🇬 VI 🇻🇮 VN 🇻🇳 VU 🇻🇺 WF 🇼🇫 WS 🇼🇸 XK 🇽🇰 YE 🇾🇪 YT 🇾🇹 ZA 🇿🇦 ZM 🇿🇲 ZW 🇿🇼 Restaurant name * Location * Size (number of tables) – 10 + Cuisine type Select cuisine Italian American Mexican Chinese Japanese Indian Mediterranean French Thai Korean Other Menu upload menu.jpg 36 KB · ready Replace Remove Verification documents Needed to verify your business before your pilot goes live. utility-bill.jpg 32 KB · ready Replace Remove gov-id.png 14 KB · ready Replace Remove Back Create account & continue
W-105 wiz-account-exists-deadend No canary at all OWNER · 0 steps 1 run

see this row in the honesty ledger →

2026-09-06 16:20 UTC WALKED 4 steps · 1 video(s) · no trace

Why it ended here: Followed the app's own instruction after it refused the address.

notes

owner screen
0:00
01OWNER
I expected
Come back to the wizard with the same address
I saw
The modal accepted the address silently ("What kind of establishment is this?"), I re-entered every field and all three documents, and only THEN: alerts ["This account already exists. Please log in to continue. Go to login"]
02OWNER
I expected
Do what it tells me: Go to login
I saw
landed on https://owner.dev.qrate-ai.com/owner/auth/login · "Welcome back." · Skip to main content QRate OWNER PORTAL OWNER SIGN IN Welcome back. Sign in to manage your menu, tables, and orders. Continue with Google OR Email Password Forgot? Sign in New to QRate? Request access Privacy Terms v1.0 · 2026 New Need help? Talk to
03OWNER
I expected
Try actually logging in with the account I made
I saw
url https://owner.dev.qrate-ai.com/owner/auth/login · alerts ["Incorrect username or password."] · does anything offer to verify/confirm? false · Skip to main content QRate OWNER PORTAL OWNER SIGN IN Welcome back. Sign in to manage your menu, tables, and orders. Incorrect username or password. Continue with Google OR Email Password Forgot? Sign in New to QRate? Request access Privacy Terms v1.0 · 2026 New Need help? Talk to us FOR RESTAURANT
04OWNER
I expected
Is there ANY route back into the wizard for this address?
I saw
"Tell us about your restaurant" · QRate ✓ Establishment type 2 Restaurant details 3 Verification Your pilot setup saves automatically — come back anytime. This account already exists. Please log in to continue. Go to login STEP 2 OF 3 Tell us about your restaurant We'll use this to v

Asked for — every row you named

Every journey explicitly requested, in ledger order. A row with a finding stays in the main grid, where findings are read — this is an index, not a second home, and each entry jumps to the card itself. Rows marked clean sit in Ad-hoc requests instead, because a clean verdict would otherwise never have earned a page.

W-032mosaic_v2-closed-resumeHonest greenclean — in Ad-hoc requests below
W-043mosaic_v2-electronic-payFalse greenfinding — in the main grid
W-044mosaic_v2-enter-posPartial greenfinding — in the main grid
W-054mosaic_v2-multiPartial greenfinding — in the main grid
W-058mosaic_v2-per-item-serveHonest greenclean — in Ad-hoc requests below
W-062mosaic_v2-resume-recoveryHonest greenclean — in Ad-hoc requests below
W-063mosaic_v2-session-closePartial greenfinding — in the main grid
W-106cellar-ask-sommelierHonest greenclean — in Ad-hoc requests below

Ad-hoc requests — asked for, not flagged

These 4 row(s) have a clean verdict and would normally sit out of the room — nothing here says a finding is waiting. They are open because the operator asked to see that specific run’s detail (video, trace, what I actually saw) directly, rather than the one-line ledger summary.

W-032 mosaic_v2-closed-resume Honest green Ad-hoc request PATRON, WAITER · 5 steps 3 runs

see this row in the honesty ledger →

Ad-hoc request. Operator explicitly asked for this journey's full re-drive and wanted to see the run detail (video/trace) directly, not just the ledger row. Verdict is HONEST_GREEN so it would normally sit out of the room. Verdict is Honest green - this row is here because it was explicitly asked for, not because anything is wrong.

2026-09-05 19:32 UTC HONEST_GREEN 6 steps · 2 video(s) · no trace

Why it ended here: Walked all six steps on this journey. Table 10097 was closed for real via the waiter's own swipe-to-close control (canary-mosaic-waiter-dev@), and resuming the patron tab - foregrounded + network restored, no fresh navigation - showed the farewell/closed screen rather than the stale live menu. The stale menu's dishes remain mounted in the DOM behind the farewell overlay, but a real tap at the "Add" button's location does not reach them - the overlay genuinely blocks interaction. The 2026-09-04 blocker (no owner/waiter control could close a table) is resolved by the 2026-09-05 credential pack; the Anant-table-20-class regression this journey guards against was NOT reproduced.

notes spec

patron screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
01PATRON
I expected
I scan in at table 10097 and the menu loads (real WS join)
I saw
gates: dietary question; 9 dishes visible; one added to cart. Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 1 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair
02PATRON
I expected
My phone goes in my pocket: screen off, signal gone
I saw
tab hidden and network severed for 15s - what a phone in a pocket looks like to the app > **The track:** x 16, y 453, 1248×48. The knob sits at its left edge.
03WAITER
I expected
Staff sign in and close table 10097 for real, via the swipe control
I saw
table 10097 closed for real: was "Table 10097 Canary Table 10097 Bishop Settling — 0/1 covered", now reads "Table 10097 Canary Table 10097 No guests" after reload.
04PATRON
I expected
I take my phone back out - signal restored, tab foregrounded, NO fresh navigation
I saw
Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair the wine → More 8 dishes C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary IPA Canary
05PATRON
I expected
My phone tells me the meal is over - it does NOT silently keep showing the menu
I saw
dishes still addable: 9; screen reads a blocked/closed surface: true. Text: Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair the wine → More 8 dishes C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary IPA Canary
06PATRON
I expected
I try to tap 'Add' on a dish through the farewell screen, the way a person might fumble
I saw
blocked as expected - the tap did not reach the stale button (locator.click: Timeout 6000ms exceeded.). Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair t > **What I left behind:** an open session at table 10097 with one item in the cart.
2026-09-05 19:27 UTC HONEST_GREEN 5 steps · 2 video(s) · trace

Why it ended here: Walked all five named steps for the first time on this journey. Table 10096 was closed for real via the waiter's own swipe-to-close control (canary-mosaic-waiter-dev@), and resuming the patron tab - foregrounded + network restored, no fresh navigation - showed a blocked/closed surface rather than the stale live menu. The 2026-09-04 blocker (no owner/waiter control could close a table) is resolved by the 2026-09-05 credential pack; the Anant-table-20-class regression this journey guards against was NOT reproduced.

open trace viewer trace.zip notes spec

patron screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
01PATRON
I expected
I scan in at table 10096 and the menu loads (real WS join)
I saw
gates: dietary question; 9 dishes visible; one added to cart. Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 1 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair
02PATRON
I expected
My phone goes in my pocket: screen off, signal gone
I saw
tab hidden and network severed for 15s - what a phone in a pocket looks like to the app > **The track:** x 16, y 453, 1248×48. The knob sits at its left edge.
03WAITER
I expected
Staff sign in and close table 10096 for real, via the swipe control
I saw
table 10096 closed for real: was "Table 10096 Canary Table 10096 Shazam Settling — 0/1 covered", now reads "Table 10096 Canary Table 10096 No guests" after reload.
04PATRON
I expected
I take my phone back out - signal restored, tab foregrounded, NO fresh navigation
I saw
Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair the wine → More 8 dishes C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary IPA Canary
05PATRON
I expected
My phone tells me the meal is over - it does NOT silently keep showing the menu
I saw
dishes still addable: 9; screen reads a blocked/closed surface: true. Text: Drinks Starters Mains Desserts BEVERAGES 1 MORE 8 Beverages 1 dish C Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49 THE CELLAR Find your perfect pour Answer 3 questions · we’ll pair the wine → More 8 dishes C Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50 Canary IPA Canary > **What I left behind:** an open session at table 10096 with one item in the cart.
2026-09-04 06:30 UTC STOPPED 4 steps · 2 video(s) · trace

Why it ended here: There is no control anywhere in the owner app that closes a table. Host Station renders a different restaurant entirely and offers only Orders and Service on an occupied table; Tables/Staff reports '0 No tables found'; /owner/tables/ offers only a destructive 'Delete table'. The waiter app, which has the swipe-to-close control, shows 'No tables assigned' for every canary restaurant with the only staff login this container holds. So the hinge of this journey cannot be turned.

open trace viewer trace.zip notes spec

owner screen
0:00
patron screen · iPhone 14 Pro — web content area
0:00
01PATRON
I expected
I scan the code and the menu loads on a live table
I saw
9 dishes, the app shows a live table session, and my cart reads 1.
02PATRON
I expected
My phone goes in my pocket — screen off, no signal
I saw
The tab is hidden and the network is cut, which is what a phone in a pocket looks like to the app. > **Every owner screen searched for a way to close a table:** > > - `/owner/host-station/` → nothing that closes a table > - `/owner/experience/` → nothing that closes a table > - `/owner/tables/` → nothing that closes a table > - `/owner/orders/` → nothing that closes a table > - `/owner/dashboard/` → nothing that closes a table
03OWNER
I expected
Meanwhile staff close my table — I go and find that control
I saw
STOPPED — There is no control anywhere in the owner app that closes a table. Host Station renders a different restaurant entirely and offers only Orders and Service on an occupied table; Tables/Staff reports '0 No tables found'; / > **What changed on screen while my phone was away:** +[m2-dec-2e031bfd-cd80-4f1a-a088-37d4aea8d22a, m2-dock-cart, m2-dock-cart-count, m2-dock-trigger-count, m2-qty-2e031bfd-cd80-4f1a-a088-37d4aea8d22a, m2-view-order, m2-view-order-count] −[nothing]
04PATRON
I expected
I take my phone out again (my table was NEVER closed, so this is only the control case)
I saw
Menu still there (9 dishes), live table session still shown, cart reads "1". This is the un-closed control case only - it says nothing about what happens after a real close.
W-058 mosaic_v2-per-item-serve Honest green Ad-hoc request PATRON, WAITER · 10 steps 1 run

see this row in the honesty ledger →

Ad-hoc request. Operator named this row for a comprehensive walk. Driven 2026-09-06 on the journey's own fixture with a waiter scoped to it. Verdict is Honest green - this row is here because it was explicitly asked for, not because anything is wrong.

Evidenced by the uat-1235-serve2 walk — one walk can answer more than one canary.

2026-09-07 21:29 UTC WALKED 5 steps · 2 video(s) · no trace

Why it ended here: Drove the serve path again on a clean table, reading the diner's ledger from the cart sheet's Ordered tab rather than the menu, and enumerating the table sheet for per-item controls.

notes

diner screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
01DINER
I expected
Walk in, clear the gate, order three differently-priced dishes
I saw
pressed "Place order $13.99 ›" → ledger badges ["Ordered","ORDERED","ORDERED","ORDERED"] · per-dish ["Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50","Canary Cola","Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49"]
02WAITER
I expected
Sign in, Enter in POS, and count the serve controls
I saw
auto-started: true · Mark Served controls ON THE ORDER CARD: 1
03WAITER
I expected
Open the table sheet — is there a control per dish?
I saw
table card found=true · per-item rows ["guests-item-row-3e984360-806b-42d6-a128-15d14c5f40d0","guests-item-row-ac7e8edc-b0d4-4a9f-8e4b-b9ff226e958e","guests-item-row-f7b028d3-92b7-43e8-ad05-e9f7d7fde0cc"] · serve-ish testids ["mark-served-btn-3e984360-806b-42d6-a128-15d14c5f40d0","mark-served-btn-ac7e8edc-b0d4-4a9f-8e4b-b9ff226e958e","mark-served-btn-f7b028d3-92b7-43e8-ad05-e9f7d7fde0cc"] · serve buttons on sheet: 3
04WAITER
I expected
Serve ONE thing, then look at the diner's phone without touching it
I saw
waiter served once → diner ledger badges ["Ordered","SERVED","IN THE KITCHEN","IN THE KITCHEN"] · per-dish ["Canary Cola Canary baseline drink — DO NOT MODIFY. $3.50","Canary Cola","Canary Iced Tea Canary baseline beverage — DO NOT MODIFY. $3.49"]
05WAITER
I expected
Serve whatever is left, then read the diner again
I saw
served 2 more · final diner badges ["Ordered","SERVED","SERVED","SERVED"] · sheet "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.49 C C Canary IPA Canary baseline drink — DO NOT "

Other evidence · lane-pos — Driven by a subagent lane, not a human-paced witness walk — screenshots and checkpoints, no role video and no trace. Stated so this is not read as the same grade of evidence.

W-062 mosaic_v2-resume-recovery Honest green Ad-hoc request PATRON, WAITER · 10 steps 1 run

see this row in the honesty ledger →

Ad-hoc request. Operator named this row for a comprehensive walk. Five runs driven 2026-09-06 on the journey's own fixture; the first four were defeated by my own harness and are linked as other runs. Verdict is Honest green - this row is here because it was explicitly asked for, not because anything is wrong.

Evidenced by the uat-w062-resume-served walk — one walk can answer more than one canary.

2026-09-08 00:20 UTC WALKED 6 steps · 2 video(s) · no trace

Why it ended here: Steps 7 and 10 of this journey were driven for the first time, on the uses_kds=false fixture STR-1235 delivered. Outcome: LIVE CATCH-UP WORKS.

notes

diner screen · iPhone 14 Pro — web content area
0:00
waiter screen
0:00
01DINER
I expected
Walk in and order two dishes
I saw
table 10093 · pressed "Place order $10.50 ›" → ledger badges ["Ordered","ORDERED","ORDERED"]
02WAITER
I expected
Sign in and enter the order in the till
I saw
entered in POS; kitchen auto-started on the card: true
03DINER
I expected
Put the phone away
I saw
document.visibilityState is now "hidden" · last seen ["Ordered","IN THE KITCHEN","IN THE KITCHEN"]
04WAITER
I expected
Carry the food out and mark it served while the phone is away
I saw
pressed Mark Served 2x while the diner's tab was hidden
05DINER
I expected
Take the phone back out — no reload — and watch
I saw
caught up on its own within 45s: true · badges ["Ordered","SERVED","SERVED"] · absence-guard "a Served badge on the diner's own ledger" present 2x
06DINER
I expected
Now reload deliberately — the control that decides whose fault it is
I saw
after reload badges [] → LIVE CATCH-UP WORKS

Other evidence · lane-pos — Driven by a subagent lane, not a human-paced witness walk — screenshots and checkpoints, no role video and no trace. Stated so this is not read as the same grade of evidence.

W-106 cellar-ask-sommelier Honest green Ad-hoc request WAITER · 9 steps 2 runs

see this row in the honesty ledger →

Ad-hoc request. Operator asked directly to walk 'Ask the Sommelier' on The Cellar (a non-canary app) and see the recording. Walk completed end to end; one real product behaviour found (auto-advance + Next double-skip) and recorded in the finding field. Verdict is Honest green - this row is here because it was explicitly asked for, not because anything is wrong.

2026-09-08 04:24 UTC WALKED 9 steps · 1 video(s) · trace

Why it ended here: walked the full six-question Ask the Sommelier flow end to end as a real waiter would - Style, Occasion, Taste (slider), Budget, Country, Vintage (slider) - and read the resulting live-ranked match panel. One real product behaviour was discovered along the way (see the note above) and is reported as a finding, not a spec failure.

open trace viewer trace.zip notes spec

waiter screen
0:00
01waiter
I expected
sign in as the waiter and reach the dinner-service home screen
I saw
signed in - "0 3 DINNER SERVICE Good evening, Marc 185 bottles on the list tonight · no tables open · pick a table before you take an"
02waiter
I expected
tap Begin on the Ask the Sommelier tile
I saw
wizard opened, active tab = Style; "0 3 WINE SOMMELIER Reset Hide question ▾ STYLE OCCASION TASTE BUDGET COUNTRY VINTAGE What are we in the mood for? Red Bold to silky 131 White Crisp to"
03waiter
I expected
STYLE: pick Red as the colour in the glass
I saw
answered Style=Red; tab Style -> Occasion (selecting the card auto-advanced the wizard on its own - did NOT press Next, since Next here would have skipped the next question)
04waiter
I expected
OCCASION: pick Casual Dinner
I saw
answered Occasion=Casual Dinner; tab Occasion -> Taste (auto-advanced on select)
05waiter
I expected
TASTE: drag the body slider toward Rich
I saw
dragged the body slider toward Rich; tab Taste -> Budget (pressed Next to advance)
06waiter
I expected
BUDGET: pick the $100-$180 band
I saw
answered Budget=$100-$180; tab Budget -> Country (auto-advanced on select)
07waiter
I expected
COUNTRY: pick United States
I saw
answered Country=United States; tab Country -> Vintage
08waiter
I expected
VINTAGE (last question): drag toward a newer year
I saw
dragged the vintage slider; tab Vintage -> null (null = wizard finished) (pressed Next)
09waiter
I expected
read the resulting 'Best matches right now' panel
I saw
"Best matches right now" panel present: true; top match score seen: 95%; text="0 3 WINE SOMMELIER Reset Show question ▾ STYLE Red ✕ OCCASION Casual dinner ✕ TASTE Medium, dry ✕ BUDGET $100–180 ✕ COUNTRY United States ✕ VINTAGE Best matches right now Top 4 of 185 bottles · re-ranks with every answer 95% Penner-Ash, Pinot Noir, Willamette Valley Oregon 2022 2022 RED Penner-Ash · Willamette Valley, United States · pinot noir A medium-bodied red, matched to a casual night, withi" > **Finding, not asserted as pass/fail here:** selecting a Style/Budget/Country card auto-advances the wizard by itself; the Next button ALSO advances. A waiter who taps an answer then reflexively taps the still-enabled Next button skips the following question with no warning and no way to tell it happened from this screen alone. Reproduced live 2026-09-08 (Style=Red -> Next landed on Taste, Occasion never shown).
2026-09-08 03:46 UTC WALKED 9 steps · 1 video(s) · no trace

Why it ended here: walked the full six-question Ask the Sommelier flow end to end as a real waiter would - Style, Occasion, Taste (slider), Budget, Country, Vintage (slider) - and read the resulting live-ranked match panel. One real product behaviour was discovered along the way (see the note above) and is reported as a finding, not a spec failure.

notes spec

waiter screen
0:00
01waiter
I expected
sign in as the waiter and reach the dinner-service home screen
I saw
signed in - "0 3 DINNER SERVICE Good evening, Marc 185 bottles on the list tonight · no tables open · pick a table before you take an"
02waiter
I expected
tap Begin on the Ask the Sommelier tile
I saw
wizard opened, active tab = Style; "0 3 WINE SOMMELIER Reset Hide question ▾ STYLE OCCASION TASTE BUDGET COUNTRY VINTAGE What are we in the mood for? Red Bold to silky 131 White Crisp to"
03waiter
I expected
STYLE: pick Red as the colour in the glass
I saw
answered Style=Red; tab Style -> Occasion (selecting the card auto-advanced the wizard on its own - did NOT press Next, since Next here would have skipped the next question)
04waiter
I expected
OCCASION: pick Casual Dinner
I saw
answered Occasion=Casual Dinner; tab Occasion -> Taste (auto-advanced on select)
05waiter
I expected
TASTE: drag the body slider toward Rich
I saw
dragged the body slider toward Rich; tab Taste -> Budget (pressed Next to advance)
06waiter
I expected
BUDGET: pick the $100-$180 band
I saw
answered Budget=$100-$180; tab Budget -> Country (auto-advanced on select)
07waiter
I expected
COUNTRY: pick United States
I saw
answered Country=United States; tab Country -> Vintage
08waiter
I expected
VINTAGE (last question): drag toward a newer year
I saw
dragged the vintage slider; tab Vintage -> null (null = wizard finished) (pressed Next)
09waiter
I expected
read the resulting 'Best matches right now' panel
I saw
"Best matches right now" panel present: true; top match score seen: 95%; text="0 3 WINE SOMMELIER Reset Show question ▾ STYLE Red ✕ OCCASION Casual dinner ✕ TASTE Medium, dry ✕ BUDGET $60–100 ✕ COUNTRY United States ✕ VINTAGE Best matches right now Top 4 of 185 bottles · re-ranks with every answer 95% Bookbinder's Old Man Taxin's Red, Cabernet Franc NV RED Bookbinder's · Virginia, United States · cabernet franc A medium-bodied red, matched to a casual night, within your budg" > **Finding, not asserted as pass/fail here:** selecting a Style/Budget/Country card auto-advances the wizard by itself; the Next button ALSO advances. A waiter who taps an answer then reflexively taps the still-enabled Next button skips the following question with no warning and no way to tell it happened from this screen alone. Reproduced live 2026-09-08 (Style=Red -> Next landed on Taste, Occasion never shown).

Blocked — nothing to show, and waiting will not change that

These 34 journeys are not in the room above because nothing was ever driven on them, so there is no footage to show. The blocker is a missing account or a refusal to write live data — not a run that has yet to happen. Each one says what a person would need to do, why they cannot, and who can unblock it. The board still calls every one of them passed.

W-005 · dedup-orphan board says PASSED · D3
needs
Create or change menu items and watch the diner side react.
can’t
Doing that means writing live data into a restaurant the canary is actively running against. I will not corrupt a running suite to observe it.
unblocks
Operator - point me at a scratch fixture no canary is scheduled on.
W-006 · diner-token board says PASSED · D1
needs
can’t
unblocks
W-007 · drink-recs board says PASSED · D1
needs
can’t
unblocks
W-008 · drink-subcategories board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-009 · food-subcategories board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-011 · guest-bootstrap-dedup board says PASSED · D1
needs
can’t
unblocks
W-015 · micro-kitchen-delivery-distance board says PASSED · D5
needs
can’t
unblocks
W-017 · micro-kitchen-mobile-orders board says PASSED · D1
needs
can’t
unblocks
W-023 · micro-kitchen-windowless board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-025 · modifier-link board says PASSED · D3
needs
Create or change menu items and watch the diner side react.
can’t
Doing that means writing live data into a restaurant the canary is actively running against. I will not corrupt a running suite to observe it.
unblocks
Operator - point me at a scratch fixture no canary is scheduled on.
W-027 · mosaic_v2-boost-special board says PASSED · D3
needs
Create or change menu items and watch the diner side react.
can’t
Doing that means writing live data into a restaurant the canary is actively running against. I will not corrupt a running suite to observe it.
unblocks
Operator - point me at a scratch fixture no canary is scheduled on.
W-028 · mosaic_v2-byo-bypass board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-029 · mosaic_v2-byo-dietary-allergen board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-038 · mosaic_v2-custom-dietary board says PASSED · D3
needs
Create or change menu items and watch the diner side react.
can’t
Doing that means writing live data into a restaurant the canary is actively running against. I will not corrupt a running suite to observe it.
unblocks
Operator - point me at a scratch fixture no canary is scheduled on.
W-039 · mosaic_v2-dietary-carousel board says PASSED · D3
needs
Create or change menu items and watch the diner side react.
can’t
Doing that means writing live data into a restaurant the canary is actively running against. I will not corrupt a running suite to observe it.
unblocks
Operator - point me at a scratch fixture no canary is scheduled on.
W-041 · mosaic_v2-dining board says PASSED · D4
needs
Sign in as waiter or owner and use the staff screen this journey depends on.
can’t
I hold no staff account on this fixture, so the screen cannot be opened at all - not even to look at its current state.
unblocks
Operator - a waiter or owner credential for this fixture.
W-046 · mosaic_v2-grouping-dietary board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-047 · mosaic_v2-groupings board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-048 · mosaic_v2-includes board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-050 · mosaic_v2-lifestyle-filter board says PASSED · D3
needs
Create or change menu items and watch the diner side react.
can’t
Doing that means writing live data into a restaurant the canary is actively running against. I will not corrupt a running suite to observe it.
unblocks
Operator - point me at a scratch fixture no canary is scheduled on.
W-053 · mosaic_v2-modifier-pricing board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-055 · mosaic_v2-overlap-variants board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-061 · mosaic_v2-recommendations board says PASSED · D3
needs
Create or change menu items and watch the diner side react.
can’t
Doing that means writing live data into a restaurant the canary is actively running against. I will not corrupt a running suite to observe it.
unblocks
Operator - point me at a scratch fixture no canary is scheduled on.
W-065 · mosaic_v2-session-idle-timeout board says PASSED · D5
needs
can’t
unblocks
W-066 · mosaic_v2-sides-coexistence board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-067 · mosaic_v2-spice-cart-dedup board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-068 · mosaic_v2-spice-mod board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-075 · namespaced-subcategory board says PASSED · D1
needs
can’t
unblocks
W-077 · owner-menu board says PASSED · D2
needs
Sign in as this restaurant's owner and open its menu screens.
can’t
This fixture serves a diner menu but has no owner account attached to it, so there is no login that reaches its owner side.
unblocks
Operator, or EMP-1 - attach an owner row to the fixture, or hand over an owner login that already owns it.
W-080 · patron-record-integrity board says PASSED · D1
needs
can’t
unblocks
W-083 · pos-modifier-link board says PASSED ·
needs
can’t
unblocks
W-088 · service-call-guard board says PASSED · D1
needs
can’t
unblocks
W-089 · table-session-security board says PASSED · D1
needs
can’t
unblocks
W-104 · wiz-portal board says NO SUCH JOURNEY ·
needs
can’t
unblocks