← Back to gallery

T3 — Close-Shift Dialog Polish + Session History Total Sales LOCAL

2026-05-22 — Gate 1. Third slice of Narong's 5/22 test-run findings. Bundles the 5 close-shift-dialog UI polish items + Session History "Total Sales" column + Cash In/Out success overlay upgrade into one slice. ❌ in Narong's doc = "not yet tested" — T3.7 / T3.8 (Cash-with-Difference scenarios) folded into Gate 2 as QA probes, not bug fixes.

Summary

Status
21/21 local · awaiting Gate 1 approval
Repos
nix-cafe (no migration)
Files
6 modified (2 close-shift surfaces · 1 cash dialog · 1 sessions DAO · 1 sessions page · 1 sessions client) + 1 regression-test testid update
Approx LOC
~150 LOC net
Sources
Narong's Notion doc 5.22.2026 (Test Run) + screen-recording 2026-05-22 11-20-41.mp4
Scope memo
project_t3_close_shift_dialog_polish_scoping.md

What changed

Close-Shift dialog (both shells — starter-close-shift-dialog.tsx + inline JSX in lockable-shell.tsx):

Session History (/cafe/pos/sessions):

Cash In / Cash Out dialog (cash-movement-dialog.tsx):

Narong's annotated target

From the Notion doc — Narong drew strikethroughs to indicate which rows need indenting and a thick red horizontal line to mark where the single divider belongs (between calculations and Cash count input).

Narong's target close-shift dialog layout with annotations

Reference screenshot Narong attached under the "Indent the lines and keep them inside the same container" bullet (16:50).

Out of T3 scope (deferred)

Test results — 21/21 local

Source assertions + DAO probe
  1. T3.1 Starter — Cash in row not gated on cashIn > 0 ·
  2. T3.1 Starter — Cash out row not gated on cashOut > 0 ·
  3. T3.1 Pro lockable — Cash in row not gated on cashIn > 0 ·
  4. T3.1 Pro lockable — Cash out row not gated on cashOut > 0 ·
  5. T3.2 Starter — Expected row removed ·
  6. T3.2 Pro lockable — Expected row removed (incl. close-shift-expected testid) ·
  7. T3.2 Starter — Difference row inside Cash section ·
  8. T3.2 Pro lockable — Difference row inside Cash section ·
  9. T3.3 Starter + Pro — same sub-row class shape (text-[12px] pl-4) ·
  10. T3.4 Starter — non-cash sections render Counted + Difference $0.00 ·
  11. T3.4 Pro lockable — non-cash sections render Counted + Difference $0.00 ·
  12. T3.5 Starter — close-calculations container present, no per-section borders ·
  13. T3.5 Pro lockable — close-calculations container present, no per-section borders ·
  14. T3.5 Starter — inline Diff feedback below input dropped ·
  15. T3.5 Pro lockable — big tinted Difference callout below input dropped ·
  16. T3.6 DAO — SessionListRow exposes totalSales ·
  17. T3.6 Page — totalSales threaded into SessionsClient props ·
  18. T3.6 Client — "Total Sales" column header + session-row-…-total-sales testid ·
  19. T3.9 Cash dialog — full-overlay success state on top of form pane ·
  20. T3.9 Cash dialog — old inline banner copy removed ·
  21. DAO probe — listSessions returns numeric totalSales ≥ 0 against local DB ·

Gate 2 plan

Reply push to proceed to Gate 2, or flag corrections.