Go to file
Krzysztof kuhy Rudnicki e25d806742 Fix silent skip-credit bypass; replace with weekly shutdown-time bonus
The screen locker skipped enforcement on 2026-07-03 without ever showing
a lock: a banked skip credit (earned from a prior 5+/week streak) was
consumed automatically with no confirmation and no visible log. Reworked
the whole reward mechanic instead of just gating it, since banking a
"skip a future workout" credit works against maximizing weekly workouts:

- Removed skip credits entirely (has_skip_credit/consume_skip_credit and
  the confirmation dialog built to gate them). The only same-day skip
  paths left are heat_skip and sick_day, both requiring a genuine reason.
- Extra workouts (5+/week) now bank shutdown-time-later hours for the
  following week instead — comfort, not reduced enforcement. Reuses the
  existing _adjust_shutdown_time_by and reset_to_base_if_new_day's
  previously-discarded return value as the once-per-day gate.
- early_bird and sick_day no longer pollute workout_log.json. early_bird
  is a same-day pending marker now stored in its own self-expiring,
  HMAC-signed file; sick_day is sourced entirely from sick_history.json
  (already the real source of truth). Fixes an accidental-safety gap
  where "already took a sick day today" only halted startup by luck.
- Cleaned up 3 stale non-workout entries already in workout_log.json.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QdTccgbK7624kfoaV6CtXS
2026-07-03 15:27:08 +02:00
.github/workflows chore: set up as standalone repo 2026-05-28 07:43:06 +02:00
screen_locker Fix silent skip-credit bypass; replace with weekly shutdown-time bonus 2026-07-03 15:27:08 +02:00
scripts Add comprehensive test suite, backup service, and linting to workout app 2026-06-28 08:11:43 +02:00
stronglift_replacement Add comprehensive test suite, backup service, and linting to workout app 2026-06-28 08:11:43 +02:00
.gitignore chore: set up as standalone repo 2026-05-28 07:43:06 +02:00
.pre-commit-config.yaml Migrate to the shared gatelock backend 2026-06-21 20:11:16 +02:00
CLAUDE.md Add auto-fill RunnerUp scan, carrot bonuses, and --status interface 2026-06-28 08:08:35 +02:00
early-bird-workout-check.timer Add heat-skip feature and fix early-bird 9:00 re-check gap 2026-06-29 11:23:19 +02:00
install_autostart.sh chore: set up as standalone repo 2026-05-28 07:43:06 +02:00
install_systemd.sh Add auto-fill RunnerUp scan, carrot bonuses, and --status interface 2026-06-28 08:08:35 +02:00
pyproject.toml Add auto-fill RunnerUp scan, carrot bonuses, and --status interface 2026-06-28 08:08:35 +02:00
remove_autostart.sh chore: set up as standalone repo 2026-05-28 07:43:06 +02:00
remove_systemd.sh chore: set up as standalone repo 2026-05-28 07:43:06 +02:00
requirements.txt Add auto-fill RunnerUp scan, carrot bonuses, and --status interface 2026-06-28 08:08:35 +02:00
run.sh chore: set up as standalone repo 2026-05-28 07:43:06 +02:00
workout-locker.service Drop WorkingDirectory/PYTHONPATH from workout-locker.service 2026-06-22 12:43:58 +02:00