—
Design notes
- TS-03 TS-04 One
DailyEntryper date: regular work and the optional Overtime Record are two sides of one row, which is why the day editor is one drawer and the table shows one indented row per pair. - TS-06 QF-01 QF-06 The D button and the D key are the same call, so they cannot drift.
- WS-08 DEC-16 Weekday headers and row-major focus follow
firstDayOfWeek; filler cells are never targets and focus stops on the last date. - I1 I2 The two snapshots are shown as stored, never re-derived; the diff and Refresh snapshots are Draft-only.
- TOT-03 TOT-04 TOT-08 Totals divide the summed month once, and the strip shows that arithmetic instead of asking for trust.
- RDT-02 RDT-05 DEC-19 The confirmation lives in a separate table keyed by (timesheet, date) with no reason column, so the dialog has no field for one.
- GAP-02 GAP-03 GAP-04 Exported and Locked render no inputs at all;
409 state_lockedcarriesnextAction: unlockand the screen shows that one action. - DEC-09 I10 GAP-06 A stale version token is refused with the winner’s value reloaded — never silently overwritten.