Surface timer-scheduling failures instead of hiding or panicking #11
Labels
No labels
wayfinder
grilling
wayfinder
map
wayfinder
prototype
wayfinder
research
wayfinder
task
workflow
needs-info
workflow
needs-triage
workflow
ready-for-agent
workflow
ready-for-human
workflow
wontfix
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rosa/tomate#11
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Blocked by: #8, #7
What to build
Starting a timer should either schedule a working alarm or say it could not. Today a Pomodoro can be started with no alarm behind it and no sign anything went wrong.
The scheduler's exit status is never checked. Its stderr goes to a log line at info level, which #7 shows is invisible at default verbosity — so on a machine without a user systemd session, or with
systemd-runmissing,tomate pom startprints the new Pomodoro and exits 0 while nothing will ever fire. The state file is already written and the start hook has already run by that point, so the failure is silent and the timer is dead. The break paths dump stderr straight to stderr instead, which is louder but still ignores the exit status.The same call also unwraps the path to the running executable as UTF-8 and panics if it is not.
Acceptance criteria
Blocked by