mirror of
https://github.com/kuhyx/wake-alarm.git
synced 2026-11-11 14:07:32 +01:00
_sinks.py 341 -> 249: the pactl *parsing* moves to _sink_parsing.py. That half is pure text handling with no subprocess and no side effects, so it is testable without touching the host's audio; _sinks.py keeps command execution and the activate/restore orchestration. The parsers are re-imported into _sinks under their original names, guarded by __all__. The suite patches `wake_alarm._sinks._parse_cards` and friends, and a moved symbol makes patch() stop intercepting *silently* — the test then asserts nothing and still passes. Ruff proved the point mid-split: shortening __all__ let it delete two of the re-exports and broke an import outright. _parse_profile_line is only imported (never patched), so its test now imports from the new module instead. home_screen.dart 270 -> 249. This one was mine — the automatic-alarm change pushed it over and I claimed in TODO-push-and-gate.md that nothing this session touched was over the limit; that was wrong. Publishing moves to AlarmPublisher, which returns a status line instead of calling setState, so it is testable without a widget. _loadSavedTime became _loadSyncState: it no longer loads a *time*, because the schedule is baked in and owned by AlarmPolicy, so a stored value could only disagree with it. 465 Python at 100% coverage, 79 Dart, APK builds, and both documented CLIs still print real output. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EckWmyfetYq3Mi8MAnUudh |
||
|---|---|---|
| .. | ||
| screens | ||
| services | ||
| ui | ||
| main_arm_probe.dart | ||
| main_ring_probe.dart | ||
| main_tag_probe.dart | ||
| main.dart | ||