wake-alarm/phone_app/lib/screens
Krzysztof kuhy Rudnicki 34037e55c1 phone: sick days — picker, silent ring, stick stand-down, pre-alarm sync
- Sick days screen (own name, sick icon, cat-2 fill): tap today or a later
  day to mark it sick, tap again to clear; past days inert. Writes the
  sickdays wire format (state sick/cleared + actor, one HLC per write) to
  sickdays-sync/devices via crdt_sync syncLog.
- Mutual exclusion in both pickers: each syncs the other pool on open and
  refuses a date it holds, naming the pool; an unreadable pool refuses all.
- Native SickDays cache (fail closed via DayCache); AlarmReceiver skips the
  ring with reason "sick_day" (no markFired, no ring_started); StickCheck
  verdict sick_day, streak skips sick days; stakes card says so.
- Pre-alarm pool sync: allow-while-idle alarm at 21:00 and A-30 (request
  code 1006) runs a headless engine (poolSyncMain) that pulls both pools
  from RTDB and rewrites both native caches, so a PC mark arrives with the
  app closed. The ring decision stays a cache read.
- JVM unit tests (JUnit 4.13.2) for DayCache, RingDecision,
  PoolSyncSchedule, StickCheck; Dart tests; Dart->Python interop check.

pylint hook skipped: verify.py imports sickdays, not in the hook env until
the sickdays-v0.1.0 tag exists; run by hand in a sickdays venv (10.00/10).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xfj1sxKH9VBPqpcAni8Jry
2026-10-16 13:22:40 +02:00
..
day_calendar.dart phone: sick days — picker, silent ring, stick stand-down, pre-alarm sync 2026-10-16 13:22:40 +02:00
energy_picker.dart Make the morning session the carrot: earn 11:00 by finishing it in time 2026-09-19 16:40:51 +02:00
escape_dialog.dart Wake enforcement v2: PC fallback ring + RTC self-wake, stacking Tue-Thu phone lockdown, escape hatch until 2026-10-15, stakes in the app, daily incident audit 2026-10-01 12:17:06 +02:00
free_days_body.dart phone: sick days — picker, silent ring, stick stand-down, pre-alarm sync 2026-10-16 13:22:40 +02:00
free_days_screen.dart phone: sick days — picker, silent ring, stick stand-down, pre-alarm sync 2026-10-16 13:22:40 +02:00
github_mirror_screen.dart phone_app: use the shared github_device_auth package 2026-08-15 16:16:17 +02:00
home_body.dart Wake enforcement v2: PC fallback ring + RTC self-wake, stacking Tue-Thu phone lockdown, escape hatch until 2026-10-15, stakes in the app, daily incident audit 2026-10-01 12:17:06 +02:00
home_history_card.dart Make the morning session the carrot: earn 11:00 by finishing it in time 2026-09-19 16:40:51 +02:00
home_location_screen.dart Ring the away profile when the phone is not at home 2026-08-31 11:45:11 +02:00
home_presence_line.dart Ring the away profile when the phone is not at home 2026-08-31 11:45:11 +02:00
home_screen.dart phone: sick days — picker, silent ring, stick stand-down, pre-alarm sync 2026-10-16 13:22:40 +02:00
ring_body.dart Wake enforcement v2: PC fallback ring + RTC self-wake, stacking Tue-Thu phone lockdown, escape hatch until 2026-10-15, stakes in the app, daily incident audit 2026-10-01 12:17:06 +02:00
ring_challenge.dart Wake enforcement v2: PC fallback ring + RTC self-wake, stacking Tue-Thu phone lockdown, escape hatch until 2026-10-15, stakes in the app, daily incident audit 2026-10-01 12:17:06 +02:00
ring_checklist.dart Ring the away profile when the phone is not at home 2026-08-31 11:45:11 +02:00
ring_screen.dart Wake enforcement v2: PC fallback ring + RTC self-wake, stacking Tue-Thu phone lockdown, escape hatch until 2026-10-15, stakes in the app, daily incident audit 2026-10-01 12:17:06 +02:00
ring_stakes_line.dart Wake enforcement v2: PC fallback ring + RTC self-wake, stacking Tue-Thu phone lockdown, escape hatch until 2026-10-15, stakes in the app, daily incident audit 2026-10-01 12:17:06 +02:00
room_proof_screen.dart Require two tags, the walk, and three answers to dismiss 2026-08-30 15:09:00 +02:00
session_body.dart Make the morning session the carrot: earn 11:00 by finishing it in time 2026-09-19 16:40:51 +02:00
session_checkin.dart Make the morning session the carrot: earn 11:00 by finishing it in time 2026-09-19 16:40:51 +02:00
session_checklist.dart Make the morning session the carrot: earn 11:00 by finishing it in time 2026-09-19 16:40:51 +02:00
session_screen.dart Make the morning session the carrot: earn 11:00 by finishing it in time 2026-09-19 16:40:51 +02:00
session_tags_screen.dart Keep the morning going after the ring: weigh-in, shower, dress, desk, or it rings again 2026-09-16 22:35:40 +02:00
settings_screen.dart Keep the morning going after the ring: weigh-in, shower, dress, desk, or it rings again 2026-09-16 22:35:40 +02:00
sick_days_body.dart phone: sick days — picker, silent ring, stick stand-down, pre-alarm sync 2026-10-16 13:22:40 +02:00
sick_days_screen.dart phone: sick days — picker, silent ring, stick stand-down, pre-alarm sync 2026-10-16 13:22:40 +02:00
stakes_card.dart Wake enforcement v2: PC fallback ring + RTC self-wake, stacking Tue-Thu phone lockdown, escape hatch until 2026-10-15, stakes in the app, daily incident audit 2026-10-01 12:17:06 +02:00