[ { "id": "T001", "description": "Billing no-mutation regression test: recurring invoice generation with unapproved matching time does not mutate time_entries.start_time, end_time, work_date, or work_timezone.", "implemented": true, "featureIds": ["F001", "F002", "F003"] }, { "id": "T002", "description": "Approval blocker regression test: matching unapproved recurring time still blocks invoice generation with a descriptive approval-blocker error.", "implemented": true, "featureIds": ["F003"] }, { "id": "T003", "description": "Timezone boundary helper test: an entry with work_date 2026-03-31 and start_time 2026-04-01T00:00:00Z resolves to display date 2026-03-31.", "implemented": true, "featureIds": ["F004", "F005", "F006", "F009"] }, { "id": "T004", "description": "Time sheet grid test: a UTC/local boundary entry appears in the grid cell for work_date rather than the UTC start_time date.", "implemented": true, "featureIds": ["F004", "F009"] }, { "id": "T005", "description": "Time sheet list test: list view includes and groups boundary entries by work_date within the selected time period.", "implemented": true, "featureIds": ["F005", "F009"] }, { "id": "T006", "description": "Time approval display test: approval grouping/display uses required work_date.", "implemented": true, "featureIds": ["F006", "F009"] }, { "id": "T007", "description": "Quick-add continuation test: adding time on a selected date finds existing entries whose work_date matches that date even when start_time is a UTC boundary timestamp.", "implemented": true, "featureIds": ["F007", "F009"] }, { "id": "T008", "description": "Invariant test: persisted-style entries without work_date fail fast after migration rather than silently grouping by start_time.", "implemented": true, "featureIds": ["F004", "F005", "F006", "F009", "F011"] }, { "id": "T009", "description": "Migration test: missing work_date/work_timezone rows are backfilled and both columns are enforced as NOT NULL.", "implemented": false, "featureIds": ["F011"] } ]