A spoken volume command left the face stuck in the thinking spinner. The gateway sends state:thinking -> command -> state:idle, but the device's state:idle handler is gated on !audio_is_playing(), and the feedback gong had been setting s_playing for its (up to 5 s) duration — so the idle was ignored and nothing re-sent it. The gong is a UI cue, not reply playback, so it no longer sets s_playing. This also drops the 5 s wake-gate the gong was imposing. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LKPbR6DY2JygHbyLjxm7Uu
1.6 KiB
1.6 KiB
Changelog
All notable, user-facing changes to DeskLock are documented in this file.
The format is based on Keep a Changelog. DeskLock is pre-release and unversioned; entries accumulate under Unreleased until the first tagged release.
[Unreleased]
Fixed
- A spoken volume command no longer leaves the face stuck in the thinking spinner — the feedback gong is a UI cue and no longer holds the busy state, so the return-to-idle isn't swallowed.
[0.2.0] — 2026-07-15
Added
- After a request, the butler immediately says "Let me check on that for you, sir" and keeps a spinner up while it works, so the long wait isn't dead air.
- Spoken volume commands ("volume up/down", "mute/unmute", "set volume to N", "this one goes to eleven") are handled instantly on the gateway, bypassing the assistant — no waiting on a reply just to change the volume.
- Tap the screen to reveal on-screen controls — a microphone button plus volume down/up and a live level bar, using Phosphor icon glyphs. Tapping the dimmed backdrop dismisses them.
Fixed
- Fixed the blue-screen flicker during voice activity — the matrix rain now renders as cheap pre-rendered sprites, and the DSI clocks/FIFO are tuned, so the display's memory reads are no longer starved by Wi-Fi and audio DMA.
Changed
- Volume is now an 0–11 scale (it goes to eleven) with a gong cue on each change and a little "11" that floats off the bar at maximum.
- Matrix rain is drawn from a reused pool of pre-rendered streak sprites instead of live text labels, and eases off while the device is listening or speaking.