diff --git a/earned_time/README.md b/earned_time/README.md index 7a4d45d..abc4623 100644 --- a/earned_time/README.md +++ b/earned_time/README.md @@ -40,7 +40,8 @@ never a same-day cut): The two floors are derived separately (`_resolve._shutdown_floor`), so the ladder cannot move a gaming minute. -**Unified ladder (0.12.0; `UNIFIED_FROM` parked at 2027-01-01 in 0.12.1):** each rung pays what +**Unified ladder (0.12.0; `UNIFIED_FROM` = 2026-10-18 since 0.13.2, the day +after screen-locker's late-credit rule shipped):** each rung pays what its earner pays in gaming (workout 120, LeetCode 60, reading 60, tutor 1/unit to 60), so the floor drops 18:50 -> 18:00 under the same 23:00 ceiling: nothing 3 h / 18:00, workout 5 h / 20:00, +LeetCode 21:00, +reading 22:00. diff --git a/earned_time/earned_time/_ladder.py b/earned_time/earned_time/_ladder.py index bddbb97..f3372f5 100644 --- a/earned_time/earned_time/_ladder.py +++ b/earned_time/earned_time/_ladder.py @@ -52,9 +52,9 @@ ANKI_WAIVED_FROM: Final = date(2026, 10, 9) # From this day every rung pays exactly the gaming time its earner pays # (:data:`UNIFIED_LADDER`, 0.12.0). It lowers the floor 18:50 -> 18:00, so it # lands the day after the deploy, never on it. Parked (0.12.1) until -# screen-locker's late-credit rule ships: an 18:00 floor without it locks out -# a credit landing after the shutdown. -UNIFIED_FROM: Final = date(2027, 1, 1) +# screen-locker's late-credit rule shipped (46393fa, 2026-10-17): an 18:00 +# floor without it locked out a credit landing after the shutdown. +UNIFIED_FROM: Final = date(2026, 10, 18) _SLEEP_MINUTES: Final = 8 * 60 _DAY_MINUTES: Final = 24 * 60 diff --git a/earned_time/earned_time/tests/test_unified.py b/earned_time/earned_time/tests/test_unified.py index 0a43118..cbabe52 100644 --- a/earned_time/earned_time/tests/test_unified.py +++ b/earned_time/earned_time/tests/test_unified.py @@ -29,8 +29,8 @@ def _day(day: date, **done: int) -> tuple[int, str]: def test_switch_is_the_day_after_the_deploy() -> None: - assert date(2027, 1, 1) == UNIFIED_FROM # parked until the late-credit rule - assert ladder_for(date(2026, 10, 18)) is TUTOR_LADDER + assert date(2026, 10, 18) == UNIFIED_FROM # the day after the late-credit rule + assert ladder_for(date(2026, 10, 17)) is TUTOR_LADDER assert ladder_for(EVE) is TUTOR_LADDER # deploy day keeps the old rungs assert ladder_for(UNIFIED_FROM) is UNIFIED_LADDER diff --git a/earned_time/pyproject.toml b/earned_time/pyproject.toml index c92ad8e..2b4558d 100644 --- a/earned_time/pyproject.toml +++ b/earned_time/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "earned-time" -version = "0.13.1" +version = "0.13.2" description = "Penalty-then-reward registry: what every gate app earns in gaming time and shutdown time" requires-python = ">=3.14" dependencies = []