earned_time 0.13.2: UNIFIED_FROM = 2026-10-18, the day after screen-locker's late-credit rule (46393fa)
Some checks failed
dependency freshness / dependencies on newest stable (push) Waiting to run
file length / file-length (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
palette drift / palette (push) Waiting to run
repo-contract / repo contract (push) Waiting to run
shared gate tests / gate unit tests (push) Waiting to run
earned_time pre-commit / pre-commit (push) Has been cancelled
earned_time tests / test (push) Has been cancelled

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Krzysztof Rudnicki 2026-10-17 18:18:02 +02:00
parent 09a3a15d64
commit 49a401debd
4 changed files with 8 additions and 7 deletions

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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 = []