Commit Graph
1 Commits
Author SHA1 Message Date
Mark J. Cox b49fd8dc65 Tell peripherals when a timer is cancelled (#431)
Cancel was the only timer event to drop `timer_data` and emit a bare
`idle`. Since `idle` also ends an ordinary conversation, a peripheral
could not tell a cancel from "finished speaking", nor which timer had
gone.

Emit `timer_updated` with the timer's identity and `seconds_left` zeroed,
then go idle as before. Shipped peripherals already read `seconds_left`
from `timer_updated` and none treats zero as ringing, so the countdown
clears with no peripheral changes. The zeroed update has to land before
`idle`, or a peripheral that re-checks on `idle` stays in the timer
state.

Fixes #367
2026-09-29 17:13:40 +03:00