Fix the speak status tracker and null option handling

This commit is contained in:
Fisto
2026-09-21 18:00:41 +02:00
parent 7701664bc6
commit 15901849a1
3 changed files with 64 additions and 17 deletions
+7
View File
@@ -40,6 +40,13 @@ mobile draft at 390px.
- [x] C11 preview caching: Discord-hosted image/GIF previews (WebP 320px, hash-addressed, 5 MiB
cap, one attempt) run after every walk in both modes. Live run `...-20260916090722`:
`previewed: 2`; thumbs served over `/api/media/<scrape>/<item>/thumb` (200).
- [x] C70 Speak panel honesty. Two bugs behind "speak stays queued": the panel never updated
`#tts-status` after queuing (now it polls the daemon and shows `speaking…`, `queued (N)`,
`done`, then `idle`), and `/api/audio/speak` turned the panel's `null` option fields into 0 via
`Number(null)`, so the wrapper clamped `crunchBits` to 1 bit and set the echo level to 0. Null,
undefined, and "" now all mean "unset" for every optional numeric speak field. Verified: the
UI payload plays a healthy stream (-8.7 dB peak, 7 word gaps), and HL90 at 8 bits differs
clearly from the old accidental 1-bit crush.
- [x] C69 Streaming silence fix. Word mode with streaming on played nothing but the hum: the
daemon started ffplay as soon as the streamed file passed 44 bytes (the bare WAV header), so
the player hit EOF and exited before the first word landed. The wrapper now touches