BalanceStore behind the existing interface so the cart flow never sees the change.Shaped over 3 sessions · 2 contributors · last edit 4m ago
Payment-step drop-off doubled after wallet top-ups shipped. Wallet and card rails run as separate flows with separate failure modes; users see two spinners and no single source of payment state.
One checkout session object owning payment state across rails. Wallet degrades gracefully to card-only; holds and retries become visible, testable behaviours.
Single writer for payment state. Rails are adapters behind one interface; holds live in the session, not the rail — that's what makes fallback testable.
| Gap | Severity | Found by | Status | |
|---|---|---|---|---|
| Double-charge on rapid retry tap | Critical | Sam K + qa-agent | Fixing · Priya | |
| Hold survives past 15-min TTL | Major | qa-agent | Open | |
| Fallback banner copy truncates on small screens | Minor | Sam K | Regression passed |
| Resource | Scope | |
|---|---|---|
| Repos | northwind/checkout · northwind/wallet | |
| Design systems | Northwind DS 2.1 only | |
| Skills | Core set + payments-context | |
| Artifacts | Members + org observers |