utils/earned_time/earned_time
Krzysztof kuhy Rudnicki 8398ca4823 earned_time 0.19.0: focus project earner
earners_for swaps a focus project's replaced gates for one focus earner
paid per minute from the focus ledger (floor of summed minutes). The gaming
cut equals what the replaced penalised gates cost, so a project day is
neutral; maturity never delays it. An unusable focus_project means no
project (logged once).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WzxdWYcmik6APnHfc9gEVy
2026-11-02 08:23:50 +01:00
..
tests earned_time 0.19.0: focus project earner 2026-11-02 08:23:50 +01:00
__init__.py earned_time 0.19.0: focus project earner 2026-11-02 08:23:50 +01:00
__main__.py earned_time 0.6.0: gate maturity classifier (python -m earned_time maturity), confirmed_on, first_credits-aware penalty start 2026-10-09 21:21:18 +02:00
_cli.py earned_time 0.19.0: focus project earner 2026-11-02 08:23:50 +01:00
_credits.py earned_time 0.18.0: a LeetCode bonus needs the day paid in full; gate_off lets one solve earn on a stood-down day 2026-10-24 13:13:23 +02:00
_evidence.py earned_time 0.6.0: gate maturity classifier (python -m earned_time maturity), confirmed_on, first_credits-aware penalty start 2026-10-09 21:21:18 +02:00
_focus.py earned_time 0.19.0: focus project earner 2026-11-02 08:23:50 +01:00
_ladder.py earned_time 0.19.0: focus project earner 2026-11-02 08:23:50 +01:00
_ledger.py earned_time 0.18.0: a LeetCode bonus needs the day paid in full; gate_off lets one solve earn on a stood-down day 2026-10-24 13:13:23 +02:00
_leisure.py earned_time 0.16.0: leisure=None|True|False, so the gaming day decides (C6) 2026-10-19 16:58:27 +02:00
_match.py earned_time 0.19.0: focus project earner 2026-11-02 08:23:50 +01:00
_maturity.py earned_time 0.19.0: focus project earner 2026-11-02 08:23:50 +01:00
_policy.py earned_time 0.9.0: tutor earner renamed AUTOMATION_TUTOR/automation -> TUTOR/tutor, ledger ~/.local/share/tutor 2026-10-12 16:31:50 +02:00
_quota.py earned_time 0.10.0: tutor quota per weekday (15 min Tue-Thu, 30 Mon/Fri, 50 Sat/Sun for the full 60) 2026-10-12 21:07:03 +02:00
_registry.py earned_time 0.19.0: focus project earner 2026-11-02 08:23:50 +01:00
_resolution.py sickdays 0.1.0 + earned_time 0.11.0: uncapped sick-day pool, 20:00 sick shutdown floor 2026-10-16 08:23:00 +02:00
_resolve.py earned_time 0.19.0: focus project earner 2026-11-02 08:23:50 +01:00
_sick.py earned_time 0.13.0: sick day = 20:00 + gaming pay of what was done (was max(20:00, earned)) 2026-10-17 17:27:34 +02:00