{
  "slug": "mosaic_v2-coverage",
  "restaurant_id": "547c72a4-acab-57f3-a969-7fe62fbb0be6",
  "tables_driven": [
    9982
  ],
  "viewport": "390x844 hasTouch isMobile chromium",
  "canary_steps": [
    "1 P1 Join",
    "2 P2 Join",
    "3 P1 Add",
    "4 P2 Add",
    "5 Co-Order (WS)",
    "6 WAITER POS + Serve",
    "7 P1 Cover Just-Me",
    "8 WAITER Settling",
    "9 P2 Pay for the Table (override)",
    "10 WAITER Ready to Close",
    "11 WAITER Closes"
  ],
  "step_reached": "7 of 11 (P1 Cover Just-Me). Step 9 (P2 Pay for the Table) NOT reached \u2014 see below.",
  "two_diners_joined": {
    "answer": "YES",
    "p1_screen": "P1 cart header: \"1 Pinkman (You)\", \"2 All\", \"1 Catwoman\". Settle sheet offered \"Split the check (2)\", i.e. the app counted 2 people.",
    "p2_screen": "P2 loaded the same table and its own cart showed its own item; after P1 covered, P2's home showed only \"View order / 1 ITEM \u00b7 TAP TO REVIEW\"."
  },
  "payment_controls_after_co_order": {
    "how_reached": "same route as split: [layout-service-button] -> [service-bubble-ready_for_bill]",
    "settle_fork": [
      {
        "testid": "settlement-cover",
        "text": "Cover"
      },
      {
        "testid": "settlement-split",
        "text": "Split the check (2)"
      }
    ],
    "after_tapping_cover": {
      "header": "Who are you covering?",
      "controls": [
        {
          "testid": "cover-scope-just-me",
          "text": "Just me"
        },
        {
          "testid": "cover-scope-someone",
          "text": "Someone on the table"
        },
        {
          "testid": "cover-scope-table",
          "text": "The whole table"
        },
        {
          "testid": null,
          "text": "\u2190 Back"
        }
      ]
    },
    "after_tapping_just_me": "The settle sheet CLOSED immediately and P1 was returned to the cart/ledger (cart-sheet, order-status-badge, TOTAL $3.50, cart-back-to-menu-btn, cart-service-btn). No confirmation screen, no amount, no pay control, no receipt. I looked for a confirm control and there was none: \"NO CONTROL for cover-confirm (neither cover-confirm nor /confirm|continue|done/i)\".",
    "what_p2_saw": "NOTHING about the coverage. P2's visible testids after reload were only the ordinary menu + dock set (m2-view-order, m2-dock, m2-qty-..., patron-badge). No coverage banner, no 'you have been covered' notice, and no 'Pay for the table' control. Compare with the split journey, where P2 DID get a [split-invitation] banner."
  },
  "controls_asked_about": {
    "split": "PRESENT \u2014 [settlement-split] \"Split the check (2)\".",
    "cover_the_whole_table": "PRESENT \u2014 [cover-scope-table] literal text \"The whole table\". I took the Just-me branch on this restaurant, per the canary's step 7; I drove the whole-table branch on the electronic-pay restaurant instead.",
    "cover_just_me": "PRESENT \u2014 [cover-scope-just-me] literal text \"Just me\".",
    "extra_found_not_asked_about": "[cover-scope-someone] \"Someone on the table\" -> leads to a picklist [cover-picklist] with a per-guest button [cover-pick-<patron-id>], [cover-cancel] \"Cancel\", [cover-confirm] \"Confirm (0)\"."
  },
  "stripe": {
    "mounted": false,
    "detail": "NO Stripe iframe, no card field, 0 iframes on every surface dumped. The Just-me branch offers no payment step at all \u2014 it closes the sheet."
  },
  "could_not_find": "I could not find any way for P2 to 'Pay for the table' after P1 covered just-me (canary step 9). What was on P2's screen was the plain menu with a 'View order' pill and its own 1-item cart \u2014 no coverage notice and no pay control.",
  "stopped_at": "P1 back in the cart after choosing 'Just me'.",
  "stopped_why": "The Cover -> Just me branch ended there; no card surface was ever offered, so there was nothing to stop short of.",
  "note": "Canary steps 6/8/10/11/12 are WAITER steps. This container has no waiter credentials, so no waiter step was driven. Everything below is the PATRON surface only.",
  "screenshots": [
    "/workspace/uat/lane-pay/mosaic_v2-coverage-01-p1-arrived.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-02-p2-arrived.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-03-p1-after-p2-joined.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-04-p1-added.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-05-p2-added.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-06-p1-order-dock.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-07-p1-after-co-order.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-08-p1-post-order-home.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-09-p1-service-sheet.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-10-p1-settle-fork.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-12-p1-cover.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-13-p1-cover-just-me.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-14-p1-pay-surface.png",
    "/workspace/uat/lane-pay/mosaic_v2-coverage-20-p2-after-p1-settled.png"
  ],
  "surface_dumps": [
    "mosaic_v2-coverage-01-p1-arrived.surface.txt",
    "mosaic_v2-coverage-02-p2-arrived.surface.txt",
    "mosaic_v2-coverage-03-p1-after-p2-joined.surface.txt",
    "mosaic_v2-coverage-06-p1-order-dock.surface.txt",
    "mosaic_v2-coverage-07-p1-after-co-order.surface.txt",
    "mosaic_v2-coverage-08-p1-post-order-home.surface.txt",
    "mosaic_v2-coverage-09-p1-service-sheet.surface.txt",
    "mosaic_v2-coverage-10-p1-settle-fork.surface.txt",
    "mosaic_v2-coverage-12-p1-cover.surface.txt",
    "mosaic_v2-coverage-13-p1-cover-just-me.surface.txt",
    "mosaic_v2-coverage-14-p1-pay-surface.surface.txt",
    "mosaic_v2-coverage-20-p2-after-p1-settled.surface.txt"
  ],
  "logs": [
    "/workspace/uat/lane-pay/mosaic_v2-coverage.log.txt"
  ]
}