mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-07-04 15:23:03 +02:00
Adds a sick-day exemption flow with debt tracking so workout enforcement can be skipped on declared sick days while preserving phone-verification and shutdown invariants. - New _sick_tracker module persists sick_history.json (days, debt, commitments). - New _sick_dialog integrates declaration into the lock UI flow. - _ui_flows.py and screen_lock.py consult tracker before enforcing workouts. - gitignore sick_history.json (runtime state, like sick_day_state.json). - 304 tests pass; 100% branch coverage on every screen_locker file.
41 lines
2.4 KiB
JSON
41 lines
2.4 KiB
JSON
{
|
|
"intent": "Allow declaring sick days in screen_locker so workout enforcement is exempted while accumulating commitment debt; preserve existing unlock paths and 100% branch coverage.",
|
|
"scope": [
|
|
"python_pkg/screen_locker/_sick_dialog.py (new)",
|
|
"python_pkg/screen_locker/_sick_tracker.py (new)",
|
|
"python_pkg/screen_locker/_constants.py",
|
|
"python_pkg/screen_locker/_ui_flows.py",
|
|
"python_pkg/screen_locker/screen_lock.py",
|
|
"python_pkg/screen_locker/tests/conftest.py",
|
|
"python_pkg/screen_locker/tests/test_phone_check_unlock.py",
|
|
"python_pkg/screen_locker/tests/test_ui_and_timers.py",
|
|
"python_pkg/screen_locker/tests/test_ui_and_timers_part2.py",
|
|
"python_pkg/screen_locker/tests/test_sick_features.py (new)",
|
|
"python_pkg/screen_locker/tests/test_sick_tracker.py (new)",
|
|
".gitignore (ignore sick_history.json)",
|
|
"Non-goal: change workout enforcement policy outside sick exemption"
|
|
],
|
|
"changes": [
|
|
"Added _sick_tracker module with persisted sick_history.json (days, debt, commitments, justifications).",
|
|
"Added _sick_dialog module integrating sick-day declaration into the UI flow.",
|
|
"Updated _ui_flows.py and screen_lock.py to consult the sick tracker before enforcing workout requirements.",
|
|
"Extended existing tests and added test_sick_features.py + test_sick_tracker.py to cover all new branches.",
|
|
"Gitignored python_pkg/screen_locker/sick_history.json (runtime state, like sick_day_state.json)."
|
|
],
|
|
"verification": [
|
|
{
|
|
"command": "python -m pytest python_pkg/screen_locker/tests/ --cov=python_pkg.screen_locker --cov-branch --cov-report=term-missing",
|
|
"result": "pass",
|
|
"evidence": "304 passed, 0 failed; per-file coverage 100% on every screen_locker source (_sick_dialog 116/20, _sick_tracker 134/34, _ui_flows 156/36, screen_lock 264/68, etc.)."
|
|
}
|
|
],
|
|
"risks": [
|
|
"Sick history file lives under the package directory; if package is reinstalled state is lost — mitigated by gitignore + manual backup if needed.",
|
|
"Adding the sick flow expands the screen-lock state machine; misconfigured callers could skip workout enforcement unintentionally — mitigated by tests covering all new branches."
|
|
],
|
|
"rollback": [
|
|
"Revert this commit; sick_history.json remains on disk but is gitignored and unused.",
|
|
"Re-run pytest python_pkg/screen_locker/tests to confirm pre-feature coverage holds."
|
|
]
|
|
}
|