mirror of
https://github.com/kuhyx/screen-locker.git
synced 2026-11-10 18:47:18 +01:00
The counting fix made the numbers right; the history still read as though 2026-08-24 held two gym sessions. This annotates the pairs instead of deleting one of each, for two independent reasons. Deleting is self-undoing: every re-ingest path dedups against log.json's own contents rather than a remote ledger, so _session_sync re-pulls a removed pc_workout_verified from the CRDT store on the next 15-minute tick and re-applies its shutdown credit on the way in. And mutating signed history is against the position revoke_sick_day.py already states -- the correction belongs beside the record, not on top of it. Scanning the real log found six shared credits, not the three spotted by hand: 2026-07-17, 07-27, 08-10, 08-21, 08-24, 08-28. This has been happening since July. check_ledger_agrees refuses to write a ledger whose arithmetic disagrees with count_day_credits, so the ledger cannot come to describe a rule the locker does not use. The file is gitignored with the other state JSONs -- it names workout dates. The guard's test needs a fixture restoring sys.exit. conftest's autouse _block_real_tk_and_exit patches "screen_locker.screen_lock.sys.exit", and that attribute path resolves to the global sys module, so sys.exit is stubbed process-wide for every test in the suite. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fcwu78wk17FWMHbbfbyicc |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| _popup_form_check.py | ||
| _xvfb_reexec.py | ||
| add_scheduled_skip.py | ||
| annotate_duplicate_credits.py | ||
| check_dependency_freshness.sh | ||
| check_enforcement_armed.py | ||
| check_file_length.py | ||
| check_flutter_coverage.sh | ||
| check_md_naming.sh | ||
| check_no_crdt_sync_override.sh | ||
| check_requirements_sync.py | ||
| check_silent_failures_dart.py | ||
| check_silent_failures.py | ||
| ci_mirror.sh | ||
| demo_workout_handoff.py | ||
| disarm_guard.sh | ||
| finish_2026_08_24.sh | ||
| fix_2026_07_26_sport.py | ||
| refresh_refactor_todo.py | ||
| restore_and_bonus.py | ||
| revoke_sick_day.py | ||
| setup_mcp.sh | ||
| split_dart_test.py | ||
| verify_lock_popup_safety.py | ||
| verify_screen_fits.py | ||
| verify_workout_credited.py | ||