2026-05-23 — Gate 2 ship. NIX-OS-81 ("Open Orders" — Notion status: Needs Rework). 9 in-scope items shipped in one bundled slice. nix-cafe 9d0954e (push) + 4f02144 (empty-commit retrigger after CF auto-deploy stalled).
New files (2):
lib/order-number.ts — T4.7 shortenOrderNumber() helper (POS UI only; receipts + downstream keep full BKK1-0003).app/(authed)/pos/_components/discard-tab-modal.tsx — T4.A custom confirm modal replacing native confirm().Modified (3):
pos-tab-strip.tsx — T4.1 All orders leftmost · T4.2 new Register category tab · T4.3 (0) empty hint · T4.4 tabs as chips (bg-[#FAFAFA] + border + rounded-t-md) · T4.7 labels use shortenOrderNumber.pos-workspace.tsx — T4.2 handleRegister · T4.5 threads drafts + handleResumeOngoing · T4.A swaps native confirm() for DiscardTabModal.orders-history-view.tsx — T4.5 unified Ongoing+Paid list with status filter pills (Active / Ongoing / Paid / All; Active default) · T4.6 color-coded full-pill state chips · T4.7 short labels in list + detail header.
confirm() on X-close of an ongoing draft. Shows item count + total as context.
(0) hint · ✓| Suite | Result | Notes |
|---|---|---|
| test-phase1-prod.mjs | 11/11 | — |
| test-phase2-sso-outdoor-prod.mjs | 6/6 | Windows cert-chain flake on initial run; solo retry with NODE_TLS_REJECT_UNAUTHORIZED=0 → 6/6. |
| test-phase2-cafe-multishop-prod.mjs | 6/6 | R8.2 parallel-run race on initial; solo retry → 6/6. |
| test-m1-prod.mjs | 10/10 | — |
| test-r7-prod.mjs | 14/14 | Windows cert-chain flake on initial; solo retry → 14/14. |
| test-r8-prod.mjs | 4/4 | — |
| Total | 51/51 | All flakes environmental, not regressions from 9d0954e. |
4f02144 retriggered it. Wrote feedback_verify_cf_worker_deploy_landed.md to capture the check (wrangler deployments list from nix-cafe/) — companion to the existing feedback_auto_deploy_on_push.md rule (don't manual-deploy).npm run deploy locally before checking memory. Existing feedback from 2026-04-21 said exactly: "ran npm run deploy inside nix-cafe, piped through tail -40, which hid output and looked hung for minutes — blocked the session for no reason." Ignored my own saved lesson..mjs script with parameterized knex.raw(?, [...]) per the existing project_prodsql_escape_limits reference.revalidatePath doesn't always propagate fast enough on cold Workers. Explicit reload guarantees SSR picks up the new session.tabs.length > 1. Discard-modal test had to first add a +New tab so the close X on the ongoing draft is rendered.Reply approved to close T4.