Adom's shared voice service. Reads your AI's answers back to you while you drive, and renders perfectly-timed voiceover tracks for your demo videos, so you never record your own voice.
v1.9.51: desktop surface (Hydrogen Desktop's own window via the bridge) with automatic fall-through from webview when no editor session is connected, surface recorded per clip (issue #5); pronunciation contributions target this repo, gallia path retired (PR #1)
v1.9.48 — queue management (issue #4 §2): 'queue clear --mine <thread>|--all' drops WAITING clips only (unscoped is refused), 'queue drop <clip|req>' drops one, 'control skip' ends the playing clip with verdict skipped and no retry; dropped/skipped clips go to History; ACCEPTED hint carries a queue-ahead ETA. ralph-test T12 (24/24).
v1.9.47 — scripts + markers for live demos (issue #4): 'load' pre-synthesizes and prefetches every marker onto the player, 'cue <script> <n>' plays exactly one marker instantly (no synthesis, no download, nothing auto-advances), 'cue-status' gives honest per-marker state. ralph-test T11 (17/17).
v1.9.43 — FIX: a newly-arrived clip was killed on arrival by the PREVIOUS clip's telemetry. The page moved curClipId synchronously while <audio> still held the old clip during blob download, so done/position from clip A were attributed to clip B (cut off ~3s in, falsely reported ok). Page now tracks loadedClipId + sends loaded=0 with zeroed telemetry while downloading and resets the element synchronously; drainer ignores telemetry unless loaded=1. ralph-test T10 reproduces the race (11/11).
v1.9.38 — clip freshness moved from header to a pill by the transcript, with the canonical hover tooltip (adom-ui-design/tooltips: body-appended fixed div, cursor-anchored, edge-clamped). Replay-button fix: a watched player no longer idle-closes, so History replay always has a live server.
v1.9.37 — clip freshness: every clip shows WHEN ITS AUDIO was synthesized + how long ago (teal fresh, red when days old); removed the wall clock (the age of the CLIP is what matters, not the current time)
v1.9.36 — player UI shows a live clock + each clip's synthesized date/time and age (red when ancient); drainer refuses to speak audio older than the freshness TTL (stale-audio guard). Root of the June-16-clip-in-August surprise.