Files
2026-09-09 07:45:30 +02:00

1.1 KiB

Days off

The Work date selector accepts future dates for day-off planning. Work creation remains disabled for future dates, and the work service retains its own validation. A separate action marks or clears the selected date without changing work entries or hours.

DayOffService scopes all access to the current owner. Removed markers retain an unmarked row and an incrementing version, preventing stale writes even after removal and recreation. Existing markers migrate to marked=true. The UI reports conflicts and offers refresh.

The reminder eligibility predicate checks work tracking is enabled, the date is not marked off, and no work is recorded. The future push dispatcher must call this predicate again before dispatch; actual push delivery is still covered by its separate pending node.

Tests cover future markers, stale versions, owner isolation, disabled tracking, coexistence with work, and unchanged hours. Production build passed. Local browser checks verified future-date marking/removal, disabled work creation, and mobile layout with an empty browser error log.