☰
v1.9.57: health means can-it-speak (ready field, --probe, exit 5 when upstream refuses), upstream refusals named and re…
1.9.56: bake the production service URL again (1.9.55 shipped the local fallback and could not speak); build.sh refuses…
Use generic 3rd party fab wording
v1.9.54: one surface open per drain (10s debounce), re-offers logged with their reason, T13 asserts a single hbw open,…
v1.9.53: --rate validated up front (signed percentage, normalised), service error bodies surfaced, an identical repeate…
v1.9.52 (1.9.51 was taken on the registry)
v1.9.51: desktop surface (Hydrogen Desktop's own window via the bridge) with automatic fall-through from webview when n…
v1.9.50: hide the freshness warning icon on fresh clips (svg hidden rule), diag line only on audio errors
v1.9.49: design-system pass (house header, line-drawing icon + favicon, newbie panel, status pills, settings modal, toa…
v1.9.48 — queue management (issue #4 §2): 'queue clear --mine <thread>|--all' drops WAITING clips only (unscoped is ref…
v1.9.47 — scripts + markers for live demos (issue #4): 'load' pre-synthesizes and prefetches every marker onto the play…
v1.9.46 — issue #4 (a): both enqueue paths (say --play and play) warn at SEND time when the player is paused and name '…
v1.9.45 — completes #3: status no longer claims playback is human-only (names 'adom-tts control play'), UNCONFIRMED dis…
v1.9.44 — closes #3: every failure/poll path now surfaces the control commands an AI can drive itself. A started-then-s…
v1.9.43 — FIX: a newly-arrived clip was killed on arrival by the PREVIOUS clip's telemetry. The page moved curClipId sy…
v1.9.42 — prefer the adom-bridge CLI name (ab 2.0.33 Linux rename; adom-bridge-cli stays a linked alias); skills update…
v1.9.41 — 2026-08 naming cutover per adom/definitions: pup surface now shells adom-bridge-cli with pup_* verbs (adom-de…
v1.9.40 — tab flash discipline: alert set with --duration 600 (10-min hard cap survives drainer death) + actively clear…
v1.9.39 — ralph-test harness (tools/ralph-test.sh, 10 field regressions) + adom-tts-test dev skill; restart refuses mid…
v1.9.38 — clip freshness moved from header to a pill by the transcript, with the canonical hover tooltip (adom-ui-desig…
v1.9.37 — clip freshness: every clip shows WHEN ITS AUDIO was synthesized + how long ago (teal fresh, red when days old…
v1.9.36 — player UI shows a live clock + each clip's synthesized date/time and age (red when ancient); drainer refuses…
v1.9.35 — never auto-replay heard audio (retry only reached==0 no-playback + i_own_lock); restart keeps the portfile so…
v1.9.34 — claim-before-play kills the restart double-play; pup self-surfaces (surface-aware reopen); errors + config NA…
v1.9.32 — fix pup wedge: stable player port across drainer respawns; surface-unavailable names hydrogen; check reads Hi…
v1.9.31 — anti-replay: a finished clip polls as idle so a reopened/reloaded page can't replay it (the flapping-surface…
v1.9.30 — fix issue #2: pin pup drainer to ADOM_DESKTOP_TARGET (resolved fresh); fail-and-advance on unopenable surface…
v1.9.29 — request-id dedup: identical audio queued/recently-played is refused (exit 7); --allow-repeat for deliberate r…
v1.9.28 — freshness TTL: stale clips (>2h queued/held) expire into History instead of playing as surprise old news
v1.9.27 — status shows PAUSED BY THE HUMAN (whole-queue hold) instead of a misleading 'now playing'
v1.9.26 — pause is sacred: human pause holds the clip AND the whole queue (no stall-advance/auto-resume); paused state…
v1.9.25 — file input first-class (@file + bare-path detection); never speak a path aloud; input-lint rule in skills
v1.9.24 — binary ships in the per-platform pkg (correct doctrine); releases removed (no out-of-band consumer)
v1.9.23 — lean pkg per publish doctrine: files allowlist (17KB: manifest+scripts+skills), binary via release asset, ins…