← Commit history

v1.9.14 — replayable History drawer (thread + desc + one-tap replay); say --play now requires --thread + --desc

John Lauer ·e32dcd1d7f ·3mo ago ·parent 70abb3f
2 files changed +16−14
dev-skills/adom-tts-dev/SKILL.md+16−1
@@ -22,7 +22,7 @@ description: >- cargo test --release          # 6 unit tests — MUST pass before any ship ./build.sh                    # cargo build --release + refresh bin/adom-tts (never bare cargo build) ./target/release/adom-tts --version && ./target/release/adom-tts health-adom-tts say "smoke" --out /tmp/s.mp3 --thread dev --play --confirm   # end-to-end proof+adom-tts say "smoke" --out /tmp/s.mp3 --thread dev --desc "smoke test" --play --confirm   # end-to-end proof ```  Install locally + make every copy on the container identical (byte-compare —@@ -88,6 +88,21 @@ say-time when nobody is listening, and non-`ok` verdicts explain recovery command, add its hints; when changing behavior, update the hints in the same commit. `ADOM_TTS_NO_HINTS=1` silences them for stable scripts. +### 6. Replayable history + forced identification+The human misses clips (dead zones, back-to-back updates from parallel+threads) and gets confused about WHO said WHAT. Two mechanisms, keep both:+- **History**: every played clip is persisted (audio bytes ++  `~/.adom/tts/play_history.jsonl`, capped 40) and shown in the player's+  History drawer — thread chip + description + time + verdict (non-`ok` =+  flagged "missed?") + one-tap replay via `/histplay?seq=`. Never surface raw+  mp3 filenames to the human; the filename means nothing to them.+- **Forced identification**: `say --play` HARD-REQUIRES `--thread` (which AI+  thread) and `--desc` (one human sentence about the update) — exit 6 with a+  teaching hint otherwise. This is deliberate API design: hints alone were not+  enough; anonymous clips made the shared history useless. When adding any new+  human-facing surface, carry label + desc through it (queue entry → sidecar →+  CurrentClip → /poll → UI).+ ## Debugging playbook  - Start: `adom-tts logs` (verdict summary + anomaly hints) and `adom-tts status`
page.json−13
@@ -12,7 +12,6 @@     "audio",     "demo",     "accessibility",-    "cli",     "open-source",     "mit"   ],@@ -65,17 +64,5 @@   ],   "install": {     "binary_name": "adom-tts"-  },-  "description": "Adom's shared text-to-speech CLI + Playground. Reads your AI answers back to you while driving, and renders perfectly-timed voiceover tracks for demo videos.",-  "dependencies": {},-  "scripts": {-    "install": "./install.sh",-    "uninstall": "./uninstall.sh"-  },-  "needs_sudo": false,-  "org": "adom",-  "author": {-    "name": "John Lauer",-    "email": "[email protected]"   } }\ No newline at end of file