mirror of
https://github.com/kuhyx/screen-locker.git
synced 2026-11-10 20:47:14 +01:00
A real 1h57m workout on 2026-08-24 synced to Firebase and the locker still locked the screen. The trigger was auth: screen_locker was the only app with no cached firebase_auth.json, so it fell back to a stale shared password and got HTTP 400 every run. The defect was what it did next — an unreadable primary source was reported as "no workout" rather than "could not check", which is the same conflation that took 2026-06-12. Recover the session by borrowing a live refresh token from a sibling app, track degraded sources as state instead of a log line, and say so on the lock screen: name the backend, the error, and how stale the data is, so a sync fault reads as a sync fault. Also fix two bugs found while finishing the recovery: restore_and_bonus.py banked `existing + bonus` with no idempotence guard while finish_2026_08_24.sh advertised "safe to re-run" — a second run silently granted the compensation hours again. Guard on a durable `shutdown_bonus_granted_for` list; the bonus map alone cannot answer the question, since a week's total mixes earned streak hours with corrections. _extra_benefits._save_state rebuilt state from four hardcoded keys, so the next weekly rollover would have dropped that guard and re-armed the double-grant. Merge onto loaded state instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EJmPLyT8NU4DzDJPV1KEX5
31 lines
647 B
Plaintext
31 lines
647 B
Plaintext
__pycache__/
|
|
*.py[cod]
|
|
.Python
|
|
build/
|
|
dist/
|
|
*.egg-info/
|
|
.env
|
|
.venv/
|
|
.pytest_cache/
|
|
.mypy_cache/
|
|
.ruff_cache/
|
|
.coverage
|
|
coverage.lcov
|
|
htmlcov/
|
|
*.log
|
|
.DS_Store
|
|
|
|
# Runtime state files — personal workout/health data, never public.
|
|
screen_locker/log.json
|
|
# ...including the timestamped backups a correction script leaves behind.
|
|
screen_locker/*.json.bak-*
|
|
screen_locker/sick_history.json
|
|
screen_locker/extra_benefits_state.json
|
|
screen_locker/scheduled_skips.json
|
|
screen_locker/shutdown_base.json
|
|
screen_locker/sick_day_state.json
|
|
screen_locker/early_bird_pending.json
|
|
|
|
# ci_mirror.sh cached requirements.txt venv (rebuilt on demand)
|
|
.ci-mirror-venv/
|