mirror of
https://github.com/kuhyx/utils.git
synced 2026-11-10 20:07:18 +01:00
sickdays: per-date pool, no cap or reason, add/remove today or later only, import_legacy for the migration. LWW state flip per date (no tombstones), Firebase RTDB sickdays-sync/devices/<uuid>/sick_days.json, HMAC audit trail. Readers fail closed (unreadable pool = not sick, logged); writers refuse a corrupt pool. Free-day cross-check via a lazily imported freedays predicate. earned_time: resolve(..., sick=True) floors the final shutdown at 20:00 (capped at the ceiling); gaming, terms and base unchanged. Result dataclasses moved to _resolution.py for the line cap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xfj1sxKH9VBPqpcAni8Jry
1020 B
1020 B
utils
Monorepo of shared gates and libraries (dep_freshness, file_length, md_naming,
repo_contract, coverage_gaps, crdt-sync, gatelock, freedays, sickdays, earned_time, music_theory, ...).
Python packages with a root-level <pkg>/tests run with PYTHONPATH=.;
subprojects with their own pyproject.toml run via scripts/run_subproject_tests.sh <dir>.
scripts/check_repo_contract.sh is the REAL shared gate (not a shim): never
overwrite it with repo_contract/templates/check_repo_contract.shim.sh.
Commands
- run: n/a: collection of gates and libraries, no single entry point
- test:
PYTHONPATH=. python -m pytest -q coverage_gaps/tests dep_freshness/tests file_length/tests home_paths/tests md_naming/tests repo_contract/tests - test-changed:
scripts/test_changed.sh - lint:
ruff check coverage_gaps repo_contract - coverage:
PYTHONPATH=. python -m pytest -q repo_contract/tests --cov=repo_contract --cov-branch --cov-report=xml --cov-fail-under=100 - coverage-gaps:
coverage-gaps coverage.xml