Next-Phase n6 (Narong review fix). Full flow verified on demo.staging 7/7 + staging smoke 5/5.
Cash - {Shop} - {Register}), matching how n13 links a
KHQR/Bank method. Self-healing (Path B): when a shop still has a legacy shop-wide Cash, it's pinned to the shop's
existing registers so it stops blanket-covering new ones — no register ever shows two Cash tenders, and no data migration is needed.


Cash - Demo Cafe - n6 …A lands on Payment Methods, linked to that register. The pre-existing shop-wide Cash was self-pinned to the existing registers (Till 1, n13 304043) — so no register has a duplicate Cash.
Cash - Demo Cafe - n6 …B — the case the old idempotent-per-shop code silently skipped.| Add register #1 → "Cash created" confirmation banner shows | pass |
Register #1 has its OWN linked Cash (Cash - Demo Cafe - …) | pass |
| Self-heal: legacy shop-wide Cash pinned to pre-existing registers only (no doubles) | pass |
| Payment Methods page shows the new register-linked Cash | pass |
| Add register #2 → also gets its own Cash; isolated from #1 | pass |
| Full staging E2E | 7/7 |
| Staging smoke | 5/5 |
Also proven locally (Gate 1) with a DAO integration probe 12/12 covering fresh-shop, 2nd-register isolation, re-add idempotency, self-heal, and all-shops-Cash pass-through.
nix-cafe dev d15e6fe → staging e6483fc
(Worker nix-cafe-staging cd1b4cf6). 4 files, no migration. Parked on staging for the scheduled prod promote.