agentvibes 5.2.1 โ†’ 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/.agentvibes/LITE-MODE.md +236 -0
  2. package/.agentvibes/README.md +136 -0
  3. package/.agentvibes/backup/session-start-tts.sh.20251210_212814 +141 -0
  4. package/.agentvibes/backups/agents/analyst_20260204_144958.md +78 -0
  5. package/.agentvibes/backups/agents/architect_20260204_144958.md +72 -0
  6. package/.agentvibes/backups/agents/dev_20260204_144958.md +74 -0
  7. package/.agentvibes/backups/agents/pm_20260204_144958.md +72 -0
  8. package/.agentvibes/backups/agents/quick-flow-solo-dev_20260204_144958.md +64 -0
  9. package/.agentvibes/backups/agents/sm_20260204_144958.md +87 -0
  10. package/.agentvibes/backups/agents/tea_20260204_144958.md +79 -0
  11. package/.agentvibes/backups/agents/tech-writer_20260204_144958.md +82 -0
  12. package/.agentvibes/backups/agents/ux-designer_20260204_144958.md +80 -0
  13. package/.agentvibes/bmad/bmad-voices.md +69 -69
  14. package/.agentvibes/config/README-personality-defaults.md +162 -0
  15. package/.agentvibes/config/mode.txt +1 -0
  16. package/.agentvibes/config/personality-voice-defaults.default.json +21 -0
  17. package/.agentvibes/config/save-audio.txt +1 -0
  18. package/.agentvibes/config/voice-metadata.json +160 -0
  19. package/.agentvibes/config.json +24 -15
  20. package/.agentvibes/hooks/help.sh +191 -0
  21. package/.agentvibes/hooks/post-tool-use-lite.sh +111 -0
  22. package/.agentvibes/hooks/save-audio-manager.sh +162 -0
  23. package/.agentvibes/hooks/session-start-full-optimized.sh +102 -0
  24. package/.agentvibes/hooks/session-start-full.sh +142 -0
  25. package/.agentvibes/hooks/session-start-lite-v2.sh +34 -0
  26. package/.agentvibes/hooks/session-start-lite.sh +29 -0
  27. package/.agentvibes/hooks/stop-lite.sh +115 -0
  28. package/.agentvibes/hooks/switch-mode.sh +215 -0
  29. package/.agentvibes/output-styles/audio-summary.md +30 -0
  30. package/.claude/activation-instructions +54 -54
  31. package/.claude/audio/voice-samples/piper/alan.wav +0 -0
  32. package/.claude/audio/voice-samples/piper/amy.wav +0 -0
  33. package/.claude/audio/voice-samples/piper/charlotte.wav +0 -0
  34. package/.claude/audio/voice-samples/piper/joe.wav +0 -0
  35. package/.claude/audio/voice-samples/piper/john.wav +0 -0
  36. package/.claude/audio/voice-samples/piper/katherine.wav +0 -0
  37. package/.claude/audio/voice-samples/piper/kristin.wav +0 -0
  38. package/.claude/audio/voice-samples/piper/linda.wav +0 -0
  39. package/.claude/audio/voice-samples/piper/marcus.wav +0 -0
  40. package/.claude/audio/voice-samples/piper/ryan.wav +0 -0
  41. package/.claude/commands/agent-vibes/add.md +21 -21
  42. package/.claude/commands/agent-vibes/agent-vibes.md +101 -101
  43. package/.claude/commands/agent-vibes/agent.md +79 -79
  44. package/.claude/commands/agent-vibes/background-music.md +111 -111
  45. package/.claude/commands/agent-vibes/bmad.md +198 -198
  46. package/.claude/commands/agent-vibes/clean.md +18 -18
  47. package/.claude/commands/agent-vibes/cleanup.md +18 -18
  48. package/.claude/commands/agent-vibes/commands.json +145 -145
  49. package/.claude/commands/agent-vibes/effects.md +97 -97
  50. package/.claude/commands/agent-vibes/get.md +9 -9
  51. package/.claude/commands/agent-vibes/hide.md +91 -91
  52. package/.claude/commands/agent-vibes/language.md +23 -23
  53. package/.claude/commands/agent-vibes/learn.md +67 -67
  54. package/.claude/commands/agent-vibes/list.md +13 -13
  55. package/.claude/commands/agent-vibes/mute.md +37 -37
  56. package/.claude/commands/agent-vibes/preview.md +17 -17
  57. package/.claude/commands/agent-vibes/provider.md +68 -68
  58. package/.claude/commands/agent-vibes/replay-target.md +14 -14
  59. package/.claude/commands/agent-vibes/sample.md +12 -12
  60. package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -84
  61. package/.claude/commands/agent-vibes/set-pretext.md +65 -65
  62. package/.claude/commands/agent-vibes/set-speed.md +41 -41
  63. package/.claude/commands/agent-vibes/show.md +84 -84
  64. package/.claude/commands/agent-vibes/switch.md +87 -87
  65. package/.claude/commands/agent-vibes/target-voice.md +26 -26
  66. package/.claude/commands/agent-vibes/target.md +30 -30
  67. package/.claude/commands/agent-vibes/translate.md +68 -68
  68. package/.claude/commands/agent-vibes/unmute.md +45 -45
  69. package/.claude/commands/agent-vibes/whoami.md +7 -7
  70. package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
  71. package/.claude/commands/agent-vibes-rdp.md +24 -24
  72. package/.claude/config/audio-effects.cfg +4 -11
  73. package/.claude/config/audio-effects.cfg.sample +52 -52
  74. package/.claude/config/background-music-position.txt +27 -0
  75. package/.claude/config/background-music-volume.txt +1 -1
  76. package/.claude/config/background-music.cfg +1 -0
  77. package/.claude/config/background-music.txt +1 -0
  78. package/.claude/config/tts-speech-rate.txt +1 -4
  79. package/.claude/config/tts-verbosity.txt +1 -0
  80. package/.claude/docs/TERMUX_SETUP.md +408 -408
  81. package/.claude/github-star-reminder.txt +1 -1
  82. package/.claude/hooks/README-TTS-QUEUE.md +135 -135
  83. package/.claude/hooks/audio-cache-utils.sh +0 -0
  84. package/.claude/hooks/audio-processor.sh +60 -14
  85. package/.claude/hooks/background-music-manager.sh +0 -0
  86. package/.claude/hooks/bmad-party-manager.sh +225 -0
  87. package/.claude/hooks/bmad-speak-enhanced.sh +0 -0
  88. package/.claude/hooks/bmad-speak.sh +6 -13
  89. package/.claude/hooks/bmad-tts-injector.sh +0 -0
  90. package/.claude/hooks/bmad-voice-manager.sh +0 -0
  91. package/.claude/hooks/clawdbot-receiver-SECURE.sh +25 -23
  92. package/.claude/hooks/clawdbot-receiver.sh +4 -28
  93. package/.claude/hooks/clean-audio-cache.sh +0 -0
  94. package/.claude/hooks/cleanup-cache.sh +0 -0
  95. package/.claude/hooks/configure-rdp-mode.sh +0 -0
  96. package/.claude/hooks/download-extra-voices.sh +0 -0
  97. package/.claude/hooks/effects-manager.sh +0 -0
  98. package/.claude/hooks/github-star-reminder.sh +0 -0
  99. package/.claude/hooks/language-manager.sh +0 -0
  100. package/.claude/hooks/learn-manager.sh +0 -0
  101. package/.claude/hooks/macos-voice-manager.sh +0 -0
  102. package/.claude/hooks/migrate-background-music.sh +0 -0
  103. package/.claude/hooks/migrate-to-agentvibes.sh +0 -0
  104. package/.claude/hooks/optimize-background-music.sh +0 -0
  105. package/.claude/hooks/personality-manager.sh +0 -0
  106. package/.claude/hooks/piper-download-voices.sh +0 -0
  107. package/.claude/hooks/piper-installer.sh +1 -1
  108. package/.claude/hooks/piper-multispeaker-registry.sh +0 -0
  109. package/.claude/hooks/piper-voice-manager.sh +0 -0
  110. package/.claude/hooks/play-tts-enhanced.sh +0 -0
  111. package/.claude/hooks/play-tts-macos.sh +6 -12
  112. package/.claude/hooks/play-tts-piper.sh +50 -79
  113. package/.claude/hooks/play-tts-soprano.sh +9 -43
  114. package/.claude/hooks/play-tts-ssh-remote.sh +42 -120
  115. package/.claude/hooks/play-tts-termux-ssh.sh +0 -0
  116. package/.claude/hooks/play-tts.sh +48 -37
  117. package/.claude/hooks/post-response.sh +41 -0
  118. package/.claude/hooks/prepare-release.sh +0 -0
  119. package/.claude/hooks/provider-commands.sh +0 -0
  120. package/.claude/hooks/provider-manager.sh +0 -0
  121. package/.claude/hooks/replay-target-audio.sh +0 -0
  122. package/.claude/hooks/requirements.txt +6 -6
  123. package/.claude/hooks/sentiment-manager.sh +0 -0
  124. package/.claude/hooks/session-start-tts.sh +56 -39
  125. package/.claude/hooks/soprano-gradio-synth.py +139 -139
  126. package/.claude/hooks/speed-manager.sh +0 -0
  127. package/.claude/hooks/stop.sh +63 -0
  128. package/.claude/hooks/termux-installer.sh +0 -0
  129. package/.claude/hooks/translate-manager.sh +0 -0
  130. package/.claude/hooks/translator.py +237 -237
  131. package/.claude/hooks/tts-queue-worker.sh +0 -0
  132. package/.claude/hooks/tts-queue.sh +0 -0
  133. package/.claude/hooks/verbosity-manager.sh +0 -0
  134. package/.claude/hooks/voice-manager.sh +26 -4
  135. package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
  136. package/.claude/hooks-windows/bmad-party-speak.ps1 +278 -274
  137. package/.claude/hooks-windows/bmad-speak.ps1 +264 -264
  138. package/.claude/hooks-windows/clean-audio-cache.ps1 +53 -53
  139. package/.claude/hooks-windows/effects-manager.ps1 +294 -294
  140. package/.claude/hooks-windows/language-manager.ps1 +193 -193
  141. package/.claude/hooks-windows/learn-manager.ps1 +241 -241
  142. package/.claude/hooks-windows/personality-manager.ps1 +266 -266
  143. package/.claude/hooks-windows/play-tts-soprano.ps1 +5 -5
  144. package/.claude/hooks-windows/play-tts-termux-ssh.ps1 +138 -138
  145. package/.claude/hooks-windows/play-tts-windows-piper.ps1 +164 -0
  146. package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -0
  147. package/.claude/hooks-windows/play-tts.ps1 +104 -481
  148. package/.claude/hooks-windows/provider-manager.ps1 +158 -192
  149. package/.claude/hooks-windows/session-start-tts.ps1 +55 -46
  150. package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
  151. package/.claude/hooks-windows/speed-manager.ps1 +166 -166
  152. package/.claude/hooks-windows/voice-manager-windows.ps1 +176 -260
  153. package/.claude/output-styles/agent-vibes.md +202 -202
  154. package/.claude/personalities/angry.md +14 -14
  155. package/.claude/personalities/annoying.md +14 -14
  156. package/.claude/personalities/crass.md +14 -14
  157. package/.claude/personalities/dramatic.md +14 -14
  158. package/.claude/personalities/dry-humor.md +50 -50
  159. package/.claude/personalities/flirty.md +20 -20
  160. package/.claude/personalities/funny.md +14 -14
  161. package/.claude/personalities/grandpa.md +32 -32
  162. package/.claude/personalities/millennial.md +14 -14
  163. package/.claude/personalities/moody.md +14 -14
  164. package/.claude/personalities/normal.md +16 -16
  165. package/.claude/personalities/pirate.md +14 -14
  166. package/.claude/personalities/poetic.md +14 -14
  167. package/.claude/personalities/professional.md +14 -14
  168. package/.claude/personalities/rapper.md +55 -55
  169. package/.claude/personalities/robot.md +14 -14
  170. package/.claude/personalities/sarcastic.md +38 -38
  171. package/.claude/personalities/sassy.md +14 -14
  172. package/.claude/personalities/surfer-dude.md +14 -14
  173. package/.claude/personalities/zen.md +14 -14
  174. package/.claude/piper-voices-dir.txt +1 -0
  175. package/.claude/settings.json +25 -15
  176. package/.claude/verbosity.txt +1 -1
  177. package/.clawdbot/README.md +105 -105
  178. package/.clawdbot/skill/SKILL.md +149 -145
  179. package/.mcp.json +30 -11
  180. package/CLAUDE.md +170 -215
  181. package/README.md +206 -515
  182. package/RELEASE_NOTES.md +1132 -1884
  183. package/WINDOWS-SETUP.md +208 -208
  184. package/bin/agent-vibes +0 -0
  185. package/bin/agentvibes-voice-browser.js +64 -1289
  186. package/bin/agentvibes.js +0 -0
  187. package/bin/ensure-soprano-running.sh +43 -0
  188. package/bin/mcp-server.js +121 -121
  189. package/bin/mcp-server.sh +0 -0
  190. package/bin/test-bmad-pr +78 -78
  191. package/mcp-server/QUICK_START.md +203 -203
  192. package/mcp-server/README.md +345 -345
  193. package/mcp-server/WINDOWS_SETUP.md +260 -260
  194. package/mcp-server/docs/troubleshooting-audio.md +313 -313
  195. package/mcp-server/examples/claude_desktop_config.json +11 -11
  196. package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
  197. package/mcp-server/examples/custom_instructions.md +169 -169
  198. package/mcp-server/install-deps.js +130 -130
  199. package/mcp-server/pyproject.toml +52 -52
  200. package/mcp-server/requirements.txt +2 -2
  201. package/mcp-server/server.py +1451 -1578
  202. package/mcp-server/test_server.py +395 -395
  203. package/package.json +1 -3
  204. package/setup-windows.ps1 +815 -815
  205. package/src/console/tabs/setup-tab.js +9 -6
  206. package/src/console/tabs/voices-tab.js +9 -3
  207. package/src/installer.js +42 -5
  208. package/src/services/llm-provider-service.js +13 -0
  209. package/templates/agentvibes-receiver.sh +158 -483
  210. package/templates/audio/welcome-music.mp3 +0 -0
  211. package/.agentvibes/bmad-voice-map.json +0 -104
  212. package/.agentvibes/copilot-sessions.log +0 -4
  213. package/.claude/config/audio-effects-bmad.cfg +0 -50
  214. package/.claude/config/background-music-enabled.txt +0 -1
  215. package/.claude/config/intro-text.txt +0 -1
  216. package/.claude/config/personality.txt +0 -1
  217. package/.claude/config/piper-speech-rate.txt +0 -4
  218. package/.claude/config/piper-target-speech-rate.txt +0 -1
  219. package/.claude/config/reverb-level.txt +0 -1
  220. package/.claude/config/tts-target-speech-rate.txt +0 -1
  221. package/voice-assignments.json +0 -8245
  222. /package/{.claude โ†’ .agentvibes}/config/agentvibes.json +0 -0
package/RELEASE_NOTES.md CHANGED
@@ -1,1884 +1,1132 @@
1
- # AgentVibes Release Notes
2
-
3
- ## ๐ŸŽฏ v5.2.1 โ€” Multi-LLM Identity & Install Polish
4
-
5
- **Release Date:** April 2026
6
-
7
- Polished LLM routing for Copilot/Codex and refined the setup experience.
8
-
9
- ### โœจ What's New
10
-
11
- #### Multi-LLM Identity Routing
12
-
13
- - **GitHub Copilot now gets its own voice, pretext, and background music** โ€” fully distinct from Claude Code and Codex. Say hello to "Copilot here" with bossa nova on the way in.
14
-
15
- - **Per-tool MCP configs with explicit identity** โ€” each AI tool (`.vscode/mcp.json`, `.codex/config.toml`, `~/.copilot/mcp-config.json`) sets its own `AGENTVIBES_LLM` so routing is deterministic.
16
-
17
- - **`get_config` MCP tool now returns the detected LLM** โ€” so the calling assistant can confirm its routing and respond with the right voice out of the gate.
18
-
19
- - **Linux compatibility refinements** โ€” CRLF line endings, permissions, and transport provider override handling.
20
-
21
- #### Setup Flow Improvements
22
-
23
- - **Keyboard navigation flow** โ€” pressing Enter through the Install buttons (Claude โ†’ Copilot โ†’ Codex) now jumps to **Claude Configure** next, letting you walk all three Configures in order before landing on Default.
24
-
25
- - **Down-arrow skips the Default row** from Install/Remove columns (consistent with info-box dismiss nav).
26
-
27
- - **Partial install success messaging** โ€” if file copies succeed but MCP config needs a nudge, you'll see a clear warning instead of a generic failure.
28
-
29
- #### Defaults
30
-
31
- - **Claude Code default background music** set to Chillwave (`agent_vibes_chillwave_v2_loop.mp3`).
32
-
33
- #### Under the Hood
34
-
35
- - LLM key validation tightened for safer env var handling.
36
- - Improved error logging for edge cases in Copilot CLI config writes.
37
- - Known limitation documented: if you launch VS Code from a Claude-Code-started terminal, `CLAUDECODE=1` can leak โ€” workaround is to `unset CLAUDECODE` first.
38
-
39
- ---
40
-
41
- ## ๐ŸŽฏ v5.2.0 โ€” Remote Voice Preview + Caveman Mode + Voice Ratings
42
-
43
- **Release Date:** April 2026
44
-
45
- This release adds remote TTS preview support, a new ultra-terse verbosity mode, and thumbs up/down voice ratings across the TUI.
46
-
47
- ### New Features
48
-
49
- - **Caveman verbosity mode** โ€” New `caveman` verbosity level for ultra-terse TTS output. Fragments instead of sentences. Set via `/agent-vibes:verbosity caveman` or the MCP `set_verbosity` tool. Auto-downloads a voice on fresh install if none are present.
50
-
51
- - **Thumbs up/down voice ratings** โ€” Replace the old star favorites with ๐Ÿ‘/๐Ÿ‘Ž ratings. Press `+` to thumbs up, `-` to thumbs down in both the Voices tab and the voice picker (Setup tab). Ratings persist across sessions and are shared between all voice selection UIs.
52
-
53
- - **Remote voice preview** โ€” Voice preview in the TUI Voices tab, voice picker, and voice browser now works on headless servers. When the active provider is `ssh-remote` or `agentvibes-receiver`, preview routes through `play-tts.sh` to play audio on the remote receiver instead of requiring local Piper + audio player. Platform-aware: uses PowerShell on Windows, bash on Linux.
54
-
55
- - **SSH receiver provider routing** โ€” `ssh-remote` and `agentvibes-receiver` are now first-class providers in `play-tts.sh`. Both the `speak_text()` function and the main routing case statement support them, eliminating "Unknown provider" errors.
56
-
57
- ### Fixes
58
-
59
- - **Auto-patch LibriTTS speaker names** โ€” Voice download now auto-patches LibriTTS speaker names so multi-speaker voices work correctly out of the box.
60
-
61
- - **Voice validation regex hardened** โ€” The VOICE parameter regex in `play-tts-ssh-remote.sh` and `play-tts-agentvibes-receiver.sh` now allows `::` (multi-speaker), `.` (locale), and spaces (speaker names) without accepting backslash (injection risk). Linux and Windows receiver templates updated to match.
62
-
63
- - **`base64` cross-platform compatibility** โ€” `play-tts-agentvibes-receiver.sh` now probes for GNU `base64 -w 0`, falls back to BSD `-b 0`, then `tr -d '\n'`. Fixes script abort on macOS/BSD systems.
64
-
65
- - **Audio effects double-processing fix** โ€” `play-tts-piper.ps1` skips its own audio-processor call when `AGENTVIBES_NO_PLAY` is set, preventing reverb/music from being applied twice.
66
-
67
- - **Exit code leak fix** โ€” `play-tts.ps1` now exits with code 0 explicitly, preventing native command exit codes (piper, ffmpeg, sox) from leaking through and causing false TTS failure reports.
68
-
69
- - **Windows receiver-tab platform support** โ€” Tailscale IP detection, local IP via PowerShell, sshd_config reading, and clipboard copy all work natively on Windows now.
70
-
71
- - **`llm:default` audio effects row** โ€” New default row in `audio-effects.cfg` ensures remote receivers get reverb, music, and pretext even without a per-LLM config entry.
72
-
73
- - **Preview sample text** โ€” Changed from "Here is a preview of your audio settings" to avoid Piper pronunciation glitch on the word "preview".
74
-
75
- ---
76
-
77
- ## ๐Ÿ›ก๏ธ v5.1.4 โ€” TTS Resilience Overhaul + Default LLM Provider + Per-Client Routing
78
-
79
- **Release Date:** April 2026
80
-
81
- This release closes a long-running cluster of bugs around per-LLM TTS routing, parallel audio playback, stuck-process deadlocks, and stale-audio replay. It also adds a new "Default" provider slot in the Setup tab for fallback audio configuration, and switches to a per-client config scheme that correctly routes Claude Code, GitHub Copilot (Chat + CLI), and OpenAI Codex to their own voices and pretexts.
82
-
83
- ### New Features
84
-
85
- - **Default LLM provider** โ€” New entry at the bottom of Setup โ†’ Providers. Config-only (no install/remove buttons) with a Configure button that opens the standard per-LLM audio modal. When any tool calls TTS without identifying its LLM, the `llm:default` row in `audio-effects.cfg` provides the fallback voice, pretext, music, reverb, and engine. Empty pretext by default โ€” users opt in.
86
-
87
- - **Per-LLM background music now auto-enables** โ€” Setting a `bg_track` on any per-LLM Configure modal now actually plays that track. Previously you also had to toggle the global `backgroundMusic.enabled` flag, which made the per-LLM bg track field silently dead.
88
-
89
- - **Copilot CLI support** โ€” `installCopilotMcp` now writes BOTH `.vscode/mcp.json` (for VS Code Copilot Chat) AND `~/.copilot/mcp-config.json` (for the standalone `copilot` CLI, which is a different product). Fresh installs support both tools automatically.
90
-
91
- ### Per-Client Routing Architecture
92
-
93
- Previously `AGENTVIBES_LLM=claude-code` was set in `.mcp.json`, which broke Copilot CLI because Copilot CLI also reads `.mcp.json` with precedence over its own `~/.copilot/mcp-config.json` โ€” so it adopted Claude Code's env and mis-routed.
94
-
95
- The new architecture splits per-LLM identification per-client:
96
-
97
- - `.mcp.json` (project) has **no `AGENTVIBES_LLM` env block**
98
- - `~/.copilot/mcp-config.json` sets `AGENTVIBES_LLM=copilot` for GitHub Copilot CLI
99
- - `~/.codex/config.toml` sets `AGENTVIBES_LLM=codex` for OpenAI Codex
100
- - The MCP server (`mcp-server/server.py`) **auto-detects Claude Code** via the `CLAUDECODE=1` env var that Claude Code sets on every subprocess it spawns. Copilot CLI and Codex don't set this var, so each client reliably routes to its own config.
101
-
102
- Upgrade path: re-run the AgentVibes installer in any existing project. The new `installClaudeMcp` auto-strips any stale `AGENTVIBES_LLM` env block from existing `.mcp.json` files so Copilot CLI stops mis-routing.
103
-
104
- ### TTS Resilience Overhaul (`play-tts.ps1`)
105
-
106
- - **Cross-process playback mutex** โ€” `AgentVibesPlaybackLock` (named mutex) serializes playback across all callers: Claude Code hooks, MCP `text_to_speech`, direct CLI, party mode. No more overlapping or parallel audio when multiple LLMs run in the same project.
107
-
108
- - **Self-healing on mutex timeout** โ€” When the 15-second mutex acquisition fails, the new code queries `Win32_Process` for any stuck `play-tts.ps1` process older than 20 seconds, calls `Stop-Process -Force` on each, and logs the kill to stderr. The next TTS call succeeds immediately โ€” no manual `taskkill` needed.
109
-
110
- - **25-second script watchdog** โ€” A sibling PowerShell job force-kills `play-tts.ps1` after 25 seconds regardless of where it's stuck (SoundPlayer deadlock, locked audio device, zombie ffmpeg). Guarantees forward progress.
111
-
112
- - **Hard error on mutex timeout** โ€” Replaces the old "play anyway" fallback which just stacked more stuck processes behind the first. Now exits cleanly with code 2 and a diagnostic message.
113
-
114
- - **Exact filename capture from provider stdout** โ€” `play-tts.ps1` parses the `[OK] Saved to: <path>` line from `play-tts-piper.ps1` and uses that exact file. Replaces the old "pick most recent `tts-*.wav` in the audio dir" heuristic which silently replayed stale audio from earlier sessions whenever synthesis failed. Root cause of the "Codex speaks Claude Code's audio" bug.
115
-
116
- - **Synthesis-failure hard error** โ€” When the provider doesn't produce an output file, `play-tts.ps1` exits with code 3 and a loud error instead of falling back to any older file in the cache.
117
-
118
- - **Scratch file rename** โ€” Reverb post-processing now writes to `av-reverbed-scratch.wav` and mix post-processing writes to `av-mixed-scratch.wav`. Fixed names outside the `tts-XXXXXXXX` random namespace so the file lookup can never pick them up as a synth input. Eliminates the compound `tts-xxx.wav.effected-mixed-mixed-mixed-mixed.wav` chain that accumulated on every run.
119
-
120
- - **Per-LLM voice overrides explicit `VoiceOverride`** โ€” LLMs call `get_config` at session start and echo the returned voice back on every `text_to_speech` call as an explicit MCP parameter. With the old "explicit wins" priority, that global voice overrode per-LLM routing. Now the `llm:<key>` voice row always wins when `-llm` is set.
121
-
122
- - **`$LlmBgTrack` and `$LlmBgVolume` parsed from cfg row** โ€” Previously fields 2 and 3 of the `llm:<key>` line were ignored in the PowerShell version (the bash version already parsed them).
123
-
124
- - **Per-LLM `bg_track` force-enables `$BgEnabled`** โ€” When a per-LLM row specifies a background track, it's auto-enabled regardless of the global `backgroundMusic.enabled` flag.
125
-
126
- - **ASCII-only encoding** โ€” Removed em-dash `โ€”` and right-arrow `โ†’` from `play-tts.ps1`. PowerShell on some Windows locales loads scripts in CP1252 and choked on the UTF-8 bytes with a misleading "Missing closing `}`" parse error.
127
-
128
- - **`lessac-medium` โ†’ `lessac-high` default for codex** โ€” `en_US-lessac-medium` silently fails to synthesize on some Windows Piper installs (loads the model, exits with empty output). `lessac-high` works reliably and is the new default in `DEFAULT_LLM_CONFIGS.codex` and the packaged `audio-effects.cfg`.
129
-
130
- ### UX Improvements
131
-
132
- - **Setup โ†’ Providers Install confirmation** โ€” Pressing Enter to dismiss the post-install confirmation page now advances focus to the NEXT provider row's same-column button (Install โ†’ Install, Configure โ†’ Configure), instead of snapping back to Claude Code's Install. Installing all three providers is now a natural Enter-Enter-Enter flow.
133
-
134
- ### Testing & Hardening
135
-
136
- - **30 new/updated regression tests** in `test/unit/llm-provider-mcp-routing.test.js` and `test/unit/windows-tts.test.js` covering:
137
- - Default LLM provider config shape + setup-tab wiring
138
- - `CLAUDECODE` auto-detection in `server.py`
139
- - `.mcp.json` template MUST NOT contain `AGENTVIBES_LLM`
140
- - `~/.copilot/mcp-config.json` writer in `installCopilotMcp`
141
- - `play-tts.ps1` PowerShell-parseable (catches em-dash / encoding regressions via `[System.Management.Automation.Language.Parser]`)
142
-
143
- ### How to Update
144
-
145
- ```
146
- npm cache clean --force
147
- npx --yes agentvibes@5.1.4
148
- ```
149
-
150
- If you have any existing project with AgentVibes installed, re-run the installer there once so the per-client config migration takes effect. The `.mcp.json` in each project will be auto-upgraded to strip the stale `AGENTVIBES_LLM` env block, and `~/.copilot/mcp-config.json` will be created if you have the Copilot provider enabled.
151
-
152
- ---
153
-
154
- ## ๐Ÿ›ก๏ธ v5.1.3 โ€” Hardening Pass (Adversarial Review Followup)
155
-
156
- **Release Date:** April 2026
157
-
158
- This release addresses HIGH/MEDIUM findings from a parallel adversarial review (Blind Hunter + Edge Case Hunter) of the v5.1.2 hotfix.
159
-
160
- ### Bug Fixes
161
-
162
- - **Existing `.mcp.json` is now auto-migrated** โ€” v5.1.2's installer detected an existing `.mcp.json` and printed instructions to fix it manually. Result: anyone upgrading from v5.1.0/v5.1.1 was still broken after `npm i -g agentvibes@5.1.2`. v5.1.3 detects an existing config, merges the `AGENTVIBES_LLM` env var (and the rest of the agentvibes server entry) in-place, and shows a green "โœ… MCP Configuration Updated" message. Existing user `env` keys are preserved.
163
-
164
- - **`AGENTVIBES_LLM` is now validated** before being forwarded to the child shell. The bash version of `play-tts.sh` already validated `^[a-zA-Z0-9_-]+$` and rejected weird values; the Python `mcp-server/server.py` and the Windows `play-tts.ps1` did not. Now all three do, with the same regex. Invalid values are logged to stderr and treated as "unset" so TTS still works (falls back to default config).
165
-
166
- ### Testing & Hardening
167
-
168
- - **`npm pack` content guard now hard-fails on `packError`** instead of silently returning early. The previous v5.1.2 implementation had `if (packError) return;` in 6 of 8 tests, which meant a real `npm pack` failure surfaced as one failed test and SIX false-greens โ€” defeating the entire purpose of the publish guard.
169
-
170
- - **Dirty-tree check now uses `git status --porcelain`** instead of `git diff HEAD`. The previous implementation only caught modified-but-uncommitted tracked files; it missed brand-new untracked files in publishable directories (e.g. a `play-tts.ps1.new` someone forgot to delete). The v5.1.0 disaster could just as easily have shipped via an untracked stray file.
171
-
172
- - **`npm pack` exec timeout** โ€” added explicit 60-second timeout with `SIGKILL` so the publish guard can't hang CI on a stuck registry call.
173
-
174
- - **`git status` failures hard-fail** instead of silently skipping. A missing git binary in CI was previously treated as "no findings" โ€” that's exactly the opposite of what a security guard should do. Now it fails loudly with a message explaining the guard requires git.
175
-
176
- - **3 new regression tests** for the new validations and migration logic.
177
-
178
- ### How to Update
179
-
180
- ```
181
- npm cache clean --force
182
- npx --yes agentvibes@5.1.3
183
- ```
184
-
185
- If you upgraded from v5.1.0 or v5.1.1, **re-run the AgentVibes installer once** so the new in-place migration touches your existing `.mcp.json` / `.codex/config.toml` / `.vscode/mcp.json`.
186
-
187
- ---
188
-
189
- ## ๐Ÿ”€ v5.1.2 โ€” MCP Per-LLM Routing Hotfix
190
-
191
- **Release Date:** April 2026
192
-
193
- ### Bug Fixes
194
-
195
- - **MCP server no longer hardcodes `-llm copilot`** โ€” `mcp-server/server.py` was passing `-llm copilot` for every caller, regardless of whether the actual client was Codex, Copilot, or Claude Code. This meant per-LLM voice/pretext/music routing in `audio-effects.cfg` was effectively broken: all three providers fell through to the same `llm:copilot` lookup (or worse, the global default config). The server now reads `AGENTVIBES_LLM` from the environment and forwards that as the `-llm` value, falling back to no `-llm` flag if unset.
196
-
197
- - **MCP launcher templates set `AGENTVIBES_LLM`** โ€” Each provider's MCP config now sets the env var so the server knows which LLM is calling:
198
- - Codex: `.codex/config.toml` โ†’ `env = { AGENTVIBES_LLM = "codex" }`
199
- - Copilot: `.vscode/mcp.json` โ†’ `"env": { "AGENTVIBES_LLM": "copilot" }`
200
- - Claude Code: `.mcp.json` โ†’ `"env": { "AGENTVIBES_LLM": "claude-code" }`
201
-
202
- Both freshly-installed configs and the manual-instruction snippets shown by the installer include the env var.
203
-
204
- ### Testing & Hardening
205
-
206
- - **24 new regression tests** in `test/unit/llm-provider-mcp-routing.test.js` and `test/unit/npm-pack-contents.test.js` enforce the contract end-to-end:
207
- - Each MCP launcher template MUST set `AGENTVIBES_LLM` to the correct value
208
- - `mcp-server/server.py` MUST read `AGENTVIBES_LLM` from env and MUST NOT hardcode `-llm copilot`
209
- - `play-tts.ps1` MUST declare its `$llm` parameter, contain per-LLM lookup logic, export `AGENTVIBES_LLM_KEY`, and be at least 400 lines (catches the v5.1.0 mass-deletion regression)
210
- - `play-tts.sh` MUST parse `--llm` and do per-LLM lookup against `audio-effects.cfg`
211
- - **Working tree must be clean** before publishing (the v5.1.0 disaster guard โ€” `npm publish` packs the working tree, not the git tag, so any uncommitted local edits get shipped)
212
-
213
- - The contract tests are **mutation-tested**: temporarily replacing `play-tts.ps1` with a broken stub fires 4 assertions with clear messages, proving the exact v5.1.0 regression would now block publish.
214
-
215
- ### How to Update
216
-
217
- ```
218
- npm cache clean --force
219
- npx --yes agentvibes@5.1.2
220
- ```
221
-
222
- If you already have AgentVibes installed for one or more providers, re-run the installer's per-provider configure step (or manually add `"env": { "AGENTVIBES_LLM": "<your-llm>" }` to your `.mcp.json` / `.vscode/mcp.json` / `.codex/config.toml`).
223
-
224
- ---
225
-
226
- ## ๐Ÿฉน v5.1.1 โ€” Windows TTS Hook Hotfix
227
-
228
- **Release Date:** April 2026
229
-
230
- ### Bug Fixes
231
-
232
- - **Windows `play-tts.ps1` `-llm` parameter restored** โ€” A regression caused the npm-published v5.1.0 package to ship a `play-tts.ps1` that lacked the `-llm` parameter and the per-LLM config lookup. Per-LLM TTS routing on Windows failed with `A parameter cannot be found that matches parameter name 'llm'`. This affected:
233
- - **Setup tab Preview button** for any provider configured with per-LLM voice/effects
234
- - **agentvibes MCP `text_to_speech` tool** when called from Codex / Copilot / Claude Code
235
- - Any code path that invokes `play-tts.ps1 ... -llm <provider>`
236
-
237
- The git tag `v5.1.0` had the correct file all along โ€” only the npm tarball was affected, because `npm publish` packs the working tree (which contained an uncommitted local regression) instead of the git tag.
238
-
239
- ### How to Update
240
-
241
- If you installed v5.1.0 from npm and hit the `-llm` error, clear your npx cache and reinstall:
242
-
243
- ```
244
- npm cache clean --force
245
- npx --yes agentvibes@5.1.1
246
- ```
247
-
248
- ### Note for Maintainers
249
-
250
- To prevent this kind of working-tree-vs-tag drift in future releases, the release workflow should run `npm publish` from a freshly checked-out clone of the tag, not from the development working directory.
251
-
252
- ---
253
-
254
- ## ๐ŸŽ™๏ธ v5.1.0 โ€” Voice Picker Overhaul + Auto-Save Agent Modal
255
-
256
- **Release Date:** April 2026
257
-
258
- ### New Features
259
-
260
- - **Auto-save in agent edit modal** โ€” Per-agent voice/personality/music/reverb/pretext changes now save automatically as you edit them. The explicit Save button is gone; a brief "โœ“ Saved!" toast confirms each change. Cancel and Reset to Defaults still behave as before.
261
-
262
- - **Unique LibriTTS speaker names** โ€” The 904 LibriTTS speakers no longer show as "Anna", "Anna-2", "Anna-3", โ€ฆ "Anna-16". Each gets a deterministic surname from a 16-name pool: **Anna Bell**, **Anna Carter**, **Anna Davis**, โ€ฆ, **Anna Quinn**. Underlying voice IDs are unchanged so existing user configs still resolve.
263
-
264
- - **Pink/blue gender symbols** โ€” Female voices show **โ™€** in pink (magenta), male voices show **โ™‚** in light blue (bright-cyan), unknown shows `โ€”`. Header `Gender` column replaced with colored `โ™€/โ™‚` (10 โ†’ 4 chars wide), freeing room for longer names. Applied to the main Voices tab AND all 3 voice picker modals (Setup, Agents, Settings).
265
-
266
- - **First-letter quick jump in voice pickers** โ€” Press any letter `a`โ€“`z` to jump to the first voice starting with that letter. Reserved keys (`q`, `j`, `k`, `g`, `h`, `l`) are blocked so they keep their cancel / vi-nav meanings.
267
-
268
- - **Page navigation in voice pickers** โ€” `PgUp`, `PgDn`, `Home`, `End` now work in all voice picker modals.
269
-
270
- - **3 new background music tracks** โ€” `Late Night Hip Hop Groove`, `Drifting Down the Hall` (90s vibes), and `Midnight Charleston Stomp` (swing). Track count goes from 15 โ†’ 18.
271
-
272
- ### Improvements
273
-
274
- - **Voice picker search bar removed** โ€” Replaced with first-letter quick jump. The old search textbox had focus issues that swallowed nav keys. The jump is faster for typical "find voice X" use.
275
-
276
- - **Track list sorting fixed** โ€” Tracks with emoji prefixes (e.g. `๐ŸŽค Late Night Hip Hop Groove`) now sort by the alphabetic part of the name, not the emoji codepoint. Order is consistent across Node/ICU versions.
277
-
278
- - **Favorite hotkey is now `*` only** โ€” Removed the duplicate `f` binding for marking favorites in voice pickers and the main Voices tab. `f` is now free for first-letter jump (e.g. jumping to Frank or Felix). The `*` marker remains the canonical way to toggle favorites.
279
-
280
- ### Bug Fixes
281
-
282
- - **Voices tab uninstalled rows no longer corrupt** โ€” Selecting an uninstalled voice was visually deleting its Provider column due to a regex strip that over-matched the row's `bright-black-fg` wrapper. Replaced with a precise hint anchor that only strips the exact hint text.
283
-
284
- - **Music tab + Voices tab blink artifacts gone** โ€” `โ–ˆ` cursors no longer leave stray blocks behind when scrolling rapidly through the list. Both tabs now use a precise blink-strip helper instead of the fragile position-based slicer.
285
-
286
- - **Setup tab no longer silently fails** โ€” `_renderScreen3` was wrapping the entire `setupCompleted` write block in a single empty `try/catch {}`. Corrupt local config files are now backed up to `config.json.bak` and rewritten fresh, with errors logged to stderr โ€” no more "stuck repeating setup" with no explanation.
287
-
288
- - **Voice picker `q` cancel now works** โ€” The new first-letter jump was swallowing `q` (and other vi nav keys). Reserved key blocklist added.
289
-
290
- - **Track picker case-insensitive sort** โ€” New tracks with Title Case names (`Late Night Hip Hop Groove.mp3`) no longer jump to the top of the list above the lowercase `agent_vibes_*` tracks.
291
-
292
- ### User Impact
293
-
294
- - Editing an agent's voice or settings is now faster โ€” no need to remember to click Save
295
- - The voice picker is dramatically less cluttered with 904 LibriTTS speakers all having unique, friendly names
296
- - Gender at a glance via colored symbols
297
- - Three new music tracks for variety
298
- - Blink/scroll artifacts gone in both Voices and Music tabs
299
-
300
- ---
301
-
302
- ## ๐Ÿš€ v5.0.0 โ€” Multi-Provider Support: Claude Code + Copilot + Codex
303
-
304
- **Release Date:** April 2026
305
-
306
- ### New Features
307
-
308
- - **GitHub Copilot Support in VS Code** โ€” Install and configure AgentVibes for GitHub Copilot directly from the TUI. Creates `.vscode/mcp.json` and `.github/copilot-instructions.md`.
309
-
310
- - **OpenAI Codex Support in VS Code** โ€” Full Codex integration with `.codex/config.toml`, `AGENTS.md` TTS protocol, and init hooks.
311
-
312
- - **Unified Setup Tab** โ€” The old 5-screen Install wizard and separate LLM Providers tab are merged into a single Setup tab. First-run shows a 4-step wizard (Language โ†’ Dependencies โ†’ TTS Engine โ†’ Providers); returning users skip straight to the Providers screen.
313
-
314
- - **Per-Provider Audio Config** โ€” Each LLM provider (Claude Code, Copilot, Codex) gets its own TTS Engine, Voice, Reverb, Background Music, and Pretext via a Configure modal.
315
-
316
- - **TTS Engine Selection Screen** โ€” New wizard step shows OS-aware engine list (Piper, Soprano, Windows SAPI, macOS Say) with Install buttons for missing engines.
317
-
318
- - **Settings Tab Redesigned** โ€” Replaced the 5-sub-tab layout with a clean flat list: Interface Language, Default TTS Engine, Default Voice, Verbosity, Audio Destination, Config Storage, and Re-run Setup Wizard.
319
-
320
- ### Improvements
321
-
322
- - **Voice picker upgraded everywhere** โ€” 3-column display (Name, Gender, Provider), Space bar preview with synthesis + playback, scroll position preserved during preview.
323
-
324
- - **Hint text artifacts fixed** โ€” Moving between rows in Agents and Music tabs no longer leaves ghost text on previous rows.
325
-
326
- - **Codex voice routing corrected** โ€” `AGENTS.md` now instructs Codex to use `play-tts` for normal speech and `bmad-speak` only during BMAD party mode.
327
-
328
- ### User Impact
329
-
330
- - AgentVibes now works with Claude Code, GitHub Copilot, AND OpenAI Codex
331
- - Streamlined setup experience โ€” one tab for all provider management
332
- - Per-provider voice customization without editing config files
333
- - Settings page is dramatically simpler and faster to navigate
334
-
335
- ---
336
-
337
- ## ๐Ÿ› v4.6.8 โ€” Fresh Install Crash Fix
338
-
339
- **Release Date:** April 2026
340
-
341
- ### Bug Fixes
342
-
343
- - **Settings tab no longer crashes on fresh install** โ€” `parseMultiSpeaker()` called `.includes()` on a null voice ID when no voice was configured yet. Added a null guard that returns a safe default object. Reported by a user hitting this immediately after the install wizard completed.
344
-
345
- - **macOS /var symlink in replay test** โ€” Fixed test assertion that failed on macOS where `/var` is a symlink to `/private/var`, causing replay path comparisons to break.
346
-
347
- - **BMAD voices pretext parsing** โ€” `bmad-voices.md` pretext lines are now correctly parsed and markdown is stripped more thoroughly before TTS synthesis.
348
-
349
- ### User Impact
350
-
351
- - New users no longer crash when navigating to Settings after a fresh install
352
- - Test suite passes reliably on macOS
353
-
354
- ---
355
-
356
- ## ๐ŸŽ™๏ธ v4.6.7 โ€” Party Mode TTS Fixes
357
-
358
- **Release Date:** April 2026
359
-
360
- ### Bug Fixes
361
-
362
- - **Party mode pretext now spoken** โ€” Agent pretexts (e.g. "John, Product Manager here") were silently dropped. The pre-synthesis step ran on the response text only; when `bmad-speak.ps1` later prepended the pretext, `play-tts.ps1` skipped synthesis because a pre-synthesized WAV was already set. Pre-synthesis now includes the pretext so it's always spoken.
363
-
364
- - **Markdown stripped in party mode** โ€” Agents were speaking asterisks, hashes, and backticks literally. `bmad-party-speak.ps1` now strips bold, italic, headings, inline code, links, and bullet markers before TTS โ€” consistent with `bmad-speak.ps1`.
365
-
366
- - **Session start hook outputs proper JSON + BMAD routing (Windows)** โ€” `session-start-tts.ps1` was using plain `Write-Output` text which isn't reliably injected as `additionalContext`. Now outputs `hookSpecificOutput` JSON (matching the bash version) and includes BMAD agent voice routing instructions so party mode / single agent mode TTS works correctly on Windows.
367
-
368
- - **PreToolUse hook no longer errors on grep/regex commands** โ€” The git-push guard hook used `-match` (regex) which crashed on commands containing `\*`, `\|`, etc. Switched to `-like` wildcard and wrapped in `try/catch` so it exits silently on any non-matching command.
369
-
370
- ### User Impact
371
-
372
- - Party mode agents speak their configured pretext introductions
373
- - No more spoken asterisks or markdown syntax in party mode
374
- - Windows TTS now reliably activates on session start
375
-
376
- ---
377
-
378
- ## ๐Ÿงญ v4.6.6 โ€” Natural TUI Navigation
379
-
380
- **Release Date:** April 2026
381
-
382
- ### Improvements
383
-
384
- The Settings TUI now navigates the way you'd expect. Arrow keys flow naturally top-to-bottom through the interface โ€” main header โ†’ sub-tab bar โ†’ content โ†’ footer โ€” with no surprising jumps or dead ends.
385
-
386
- - **Down from the main header** lands on the active sub-tab bar item, so you're always oriented before pressing further.
387
- - **Down through content** moves row-by-row within the current tab, reaching Full Preview and the Save buttons at the bottom. It no longer auto-jumps to the next sub-tab.
388
- - **Up from the first content row** returns you to the current sub-tab (not always Voice).
389
- - **Left/Right in the sub-tab bar** is the natural way to switch between Voice, Effects, Personality, Output, and Language tabs.
390
- - **Left/Right in the footer** moves between Full Preview, Save Globally, Save Locally, and Cancel Changes.
391
- - **Language tab** now has a proper scrollable list โ€” arrow down to enter it, Up/Down to select a language, Enter to apply, Down past the last item to reach the footer.
392
- - **Readme tab** falls back to the AgentVibes package README when opened in a project folder that has no README of its own.
393
- - **Escape from the installer** now navigates cleanly to Settings instead of getting stuck.
394
-
395
- ---
396
-
397
- ## ๐Ÿ”ง v4.6.5 โ€” Patch Release
398
-
399
- **Release Date:** April 2026
400
-
401
- ### Improvements
402
-
403
- - **TUI non-interactive hint** โ€” Installer header now shows a two-tone hint on row 2: `Skip this TUI?` (white) + `npx agentvibes install --non-interactive` (yellow), with a sponsor link on the right. Useful for CI/CD pipelines and scripted installs.
404
-
405
- - **`--non-interactive` routing fix** โ€” `npx agentvibes install --non-interactive` (and `--yes`/`-y`) now correctly bypasses the TUI and routes directly to the CLI installer. Previously the TUI would still launch.
406
-
407
- - **Sponsor link in TUI header** โ€” Row 2 of the header now shows a `โ™ก Sponsor this Developer github.com/sponsors/paulpreibisch` link on the right side, alongside the non-interactive hint on the left.
408
-
409
- - **Consistent line endings via `.gitattributes`** โ€” Added `.gitattributes` to enforce `LF` for shell scripts, JS, JSON, and markdown, and `CRLF` for PowerShell scripts. Prevents spurious `bin/` file modifications showing as dirty on Windows due to CRLF noise.
410
-
411
- - **`bin/` execute bits restored** โ€” Re-indexed `bin/agent-vibes`, `bin/agentvibes-voice-browser.js`, `bin/mcp-server.js`, and `bin/test-bmad-pr` to ensure consistent line endings; verified all four retain `chmod +x` (`100755` mode).
412
-
413
-
414
- ### User Impact
415
-
416
- - No functional changes โ€” infrastructure and tooling improvements only
417
-
418
- ---
419
-
420
- ## ๐Ÿ› v4.6.4 โ€” Patch Release
421
-
422
- **Release Date:** April 2026
423
-
424
- ### Bug Fixes
425
-
426
- - **CI green on macOS** โ€” `mktemp` with a file extension suffix (e.g. `tts-XXXXXX.wav`) works on Linux (GNU mktemp) but silently fails on macOS (BSD mktemp), which requires `XXXXXX` to be at the very end of the template. Fixed all 12 occurrences across `play-tts-piper.sh`, `play-tts-soprano.sh`, `play-tts-macos.sh`, and `audio-processor.sh` by creating the temp file without extension then renaming to add `.wav`/`.aiff`.
427
-
428
- - **macOS path symlink in test 213** โ€” macOS transparently resolves `/var/folders/...` to `/private/var/folders/...` via a symlink. The voice-manager replay test was comparing against the unresolved path and failing. Fixed by using `cd && pwd` to get the real path before asserting.
429
-
430
- - **`bmad-party-speak.sh` execute permission** โ€” The bash hook lost its `+x` bit, causing `party mode scripts ship with the package` CI test to fail. Restored `100755` mode via `git update-index`.
431
-
432
- ### User Impact
433
-
434
- - No user-facing changes โ€” CI infrastructure fixes only
435
-
436
- ---
437
-
438
- ## ๐Ÿ› v4.6.3 โ€” Patch Release
439
-
440
- **Release Date:** April 2026
441
-
442
- ### Bug Fixes
443
-
444
- - **Party mode pre-synthesis uses wrong speaker for every agent** โ€” `bmad-party-speak.ps1` extracted the trailing number from the display name suffix (e.g. `14` from `Yara-14`) and passed it directly as the piper `--speaker` index. The display suffix is a human-readable disambiguator, not the model index. `Yara-14` is speaker 860, but the bug caused piper to speak as speaker 14 ("Ivy") instead. Every configured agent was silently playing a completely different voice. The fix looks up the full speaker name in `speaker_id_map` from the `.onnx.json` file, matching what `play-tts-piper.ps1` already does correctly. Fixes [#165](https://github.com/paulpreibisch/AgentVibes/issues/165).
445
-
446
- ### Testing
447
-
448
- - **New cross-platform test: `bmad-party-speak-speaker-id.test.js`** โ€” 15 tests covering correct `speaker_id_map` lookup for all 8 configured agents, plain names without suffixes (e.g. `Evan`), missing model graceful degradation, and a regression suite that verifies the correct index disagrees with the naive suffix extraction for every agent.
449
-
450
- ### User Impact
451
-
452
- - Party mode agents now speak with their correct configured voices (the voices shown in the BMAD Agents tab)
453
- - No configuration changes needed โ€” the fix is automatic
454
-
455
- ---
456
-
457
- ## ๐Ÿ› v4.6.2 โ€” Patch Release
458
-
459
- **Release Date:** April 2026
460
-
461
- ### Bug Fixes
462
-
463
- - **BMAD party mode: agents now speak with their unique voices** โ€” The party mode `SKILL.md` was missing TTS wiring entirely. It now creates `.bmad-agent-context` on activation, calls `bmad-speak.ps1` sequentially per agent after each round, and cleans up on exit. When BMAD and AgentVibes are both installed, AgentVibes' skill now correctly overrides the BMAD version.
464
-
465
- - **LibriTTS speaker IDs resolved correctly on Windows** โ€” `play-tts-piper.ps1` was extracting the speaker index via a regex on the voice name suffix (e.g. `Holly-7` โ†’ `7`). That suffix is a disambiguation counter, not the Piper speaker index. `Holly-7` is actually speaker 322. The script now looks up the real index from `voice-assignments.json`, with a fallback to the patched `.onnx.json`.
466
-
467
- - **LibriTTS `parseMultiSpeaker` fallback for unpatched models** โ€” `voices-tab.js` now falls back to `voice-assignments.json` when the `.onnx.json` speaker map hasn't been patched yet with friendly names, preventing silent fallback to speaker 0 (often male) on fresh installs.
468
-
469
- - **Agent pretext spoken on Windows** โ€” `bmad-speak.ps1` never read or applied the agent's configured pretext. It now reads `pretext` from the voice map profile, and falls back to the default `"DisplayName, Title here."` computed from the agent manifest โ€” matching the behaviour of `bmad-speak.sh` and `AgentVoiceStore.getDefaultPretext()`.
470
-
471
- ### User Impact
472
-
473
- - Party mode agents will introduce themselves by role before speaking and use their individually configured voices throughout the conversation
474
- - LibriTTS multi-speaker voices now reliably map to the correct speaker on first install (no manual patching required)
475
- - No breaking changes โ€” all fixes are silent fallbacks or missing behaviours being added
476
-
477
- ---
478
-
479
- ## โœจ v4.6.0 โ€” Minor Release
480
-
481
- **Release Date:** April 2026
482
-
483
- ### New Features
484
-
485
- - **BMAD party mode TTS auto-installs for all platforms** โ€” The installer now automatically copies `bmad-party-speak.sh` (Linux/macOS/WSL) or `bmad-party-speak.ps1` (Windows) to `~/.claude/hooks/` and registers a `PostToolUse` hook in `~/.claude/settings.json`. Party mode agents now speak out of the box in any BMAD project without manual setup. Both scripts are included in critical hooks so `npx agentvibes update` keeps them fresh.
486
-
487
- ### Bug Fixes
488
-
489
- - **Background music volume default** โ€” All volume defaults lowered from 70% to 20% across the UI (settings tab, agents tab, music tab, track picker) and scripts (`audio-processor.sh`, `bmad-speak.sh`, `bmad-speak.ps1`). New installs and newly configured agents default to a much more reasonable level.
490
- - **bmad-speak volume inheritance** โ€” `bmad-speak.sh` and `bmad-speak.ps1` now read the global `background-music-volume.txt` config file as the fallback volume instead of a hardcoded value.
491
- - **Installer wizard left arrow** โ€” Pressing โ† on the completion screen (screen 5) to move from Done-Quit to Done-Customize More no longer jumps back to the installation step.
492
-
493
- ### Tests
494
-
495
- - 29 new tests: volume default regression guards across all affected files, `configurePartyModeHook` installer coverage (idempotency, settings.json registration, script copying, hook preservation), and a regression test for the screen 5 navigation fix.
496
-
497
- ---
498
-
499
- ## ๐Ÿ› v4.5.7 โ€” Patch Release
500
-
501
- **Release Date:** April 2026
502
-
503
- ### Bug Fixes
504
-
505
- - **Background music volume default** โ€” All volume defaults lowered from 70% to 20% across the UI (settings tab, agents tab, music tab, track picker). New installs and newly configured agents will default to a much more reasonable background music level.
506
- - **bmad-speak volume inheritance** โ€” `bmad-speak.sh` and `bmad-speak.ps1` now read the global `background-music-volume.txt` config file as the fallback volume instead of a hardcoded value. Per-agent background music volume now correctly inherits the global setting when no explicit per-agent override is saved.
507
-
508
- ---
509
-
510
- ## ๐Ÿ› v4.5.1 โ€” Patch Release
511
-
512
- **Release Date:** April 2026
513
-
514
- ### Bug Fix
515
-
516
- - **Music tab preview** โ€” Pressing Space on a track in the Music tab now plays correctly
517
- when running `npx agentvibes` from a fresh directory. Previously, if `.claude/audio/tracks/`
518
- didn't exist in the current working directory, the track list showed built-in tracks but
519
- Space did nothing (the player was spawned against a non-existent path). Now falls back to
520
- the package-bundled tracks directory automatically.
521
-
522
- ---
523
-
524
- ## ๐ŸŒ v4.5.0 โ€” "Speak Every Language" Release
525
-
526
- **Release Date:** April 2026
527
-
528
- Full multilingual TUI support across all 9 languages, complete Windows security hardening, and zero failing tests.
529
-
530
- ### ๐ŸŒ Multilingual TUI โ€” 9 Languages
531
-
532
- Every screen, tab, button, and label in the `npx agentvibes` TUI is now fully translated:
533
-
534
- - **English, Spanish, French, German, Portuguese, Japanese, Korean, Chinese (Simplified), Italian**
535
- - Language selection on first launch (Screen 0 of the installer wizard)
536
- - Language sub-tab in Settings โ€” switch language live without restarting
537
- - All tab bar labels, button text, footer hints, and status messages translated
538
- - BMAD tab and SSH Receiver tab fully localized
539
- - Per-language i18n files (`src/i18n/en.js`, `es.js`, `fr.js`, ...) with English fallback
540
-
541
- ### ๐ŸชŸ Windows Security & Bug Fixes
542
-
543
- - **Temp filenames** โ€” All `Date.now()` temp filenames replaced with `randomUUID()` across JS and PowerShell (unpredictable, prevents temp file hijacking)
544
- - **Shell injection** โ€” `execSync('which ...', { shell: true })` replaced with `spawnSync` (no shell expansion)
545
- - **Music player** โ€” Hardcoded `ffplay` on Windows replaced with `detectMp3Player()` (respects user's installed player)
546
- - **Boolean coercion** โ€” `isWindowsTerminal` now correctly returns `true/false` instead of leaking `WT_SESSION` UUID string
547
- - **Network mount detection** โ€” `.match()` result properly coerced to boolean
548
-
549
- ### ๐ŸŽ™๏ธ Cross-Platform BMAD Speak
550
-
551
- BMAD (Build More Architect Dreams) is an AI multi-agent framework where specialized agents โ€” Architect, PM, Developer, QA, and Analyst โ€” collaborate to build software. With this release, every agent in a BMAD party mode session now speaks aloud with their own unique voice, personality, and music on Windows โ€” making each role instantly recognizable.
552
-
553
- ## ๐Ÿ› v4.5.1 โ€” Patch Release
554
-
555
- **Release Date:** April 2026
556
-
557
- ### Bug Fix
558
-
559
- - **Music tab preview** โ€” Pressing Space on a track in the Music tab now plays correctly
560
- when running `npx agentvibes` from a fresh directory. Previously, if `.claude/audio/tracks/`
561
- didn't exist in the current working directory, the track list showed built-in tracks but
562
- Space did nothing (the player was spawned against a non-existent path). Now falls back to
563
- the package-bundled tracks directory automatically.
564
-
565
- ---
566
-
567
- - `bin/bmad-speak.js` โ€” cross-platform entry point for BMAD agent speech
568
- - `.claude/hooks-windows/bmad-speak.ps1` โ€” native Windows BMAD speak with per-agent personality routing
569
-
570
- ### ๐Ÿงช Test Suite
571
-
572
- - 600 tests, 0 failures
573
- - Full cross-platform coverage (Windows path separators, chmod skip, provider file restore)
574
-
575
- ---
576
-
577
- ## ๐ŸŽ‰ v4.4.0 โ€” "Full Platform Parity" Release
578
-
579
- **Release Date:** March 2026
580
-
581
- The biggest AgentVibes release since the TUI launched in v4.0. Three headline features: **BMAD Party Mode** gives every agent their own voice and music, **Windows Parity** brings full feature support to native Windows, and the **SSH Receiver** lets you hear your headless server speak on your local machine. Plus two rounds of adversarial code review hardening with 17+ security fixes.
582
-
583
- ### ๐ŸชŸ Windows Parity โ€” First-Class Windows Support
584
-
585
- AgentVibes now runs natively on Windows with full feature parity:
586
-
587
- - **Background music on Windows** โ€” New `background-music-manager.ps1`, full port of the Linux bash manager
588
- - **play-tts.ps1** reads `audio-effects.cfg` with per-agent track support, same as Linux
589
- - **ffmpeg auto-install** via `winget` during installer, PATH auto-refresh (no shell restart)
590
- - **Piper TTS native** โ€” `piper.exe` resolved from `LOCALAPPDATA`, no WSL/bash needed
591
- - **Voice selection works** โ€” `play-tts-windows-piper.ps1` reads `tts-voice.txt` set by TUI
592
- - **Multi-speaker models** โ€” voices like libritts-high pass `--speaker` flag to Piper on Windows
593
- - **Windows SSH Receiver** โ€” `setup-ssh-receiver.ps1` + `agentvibes-receiver.ps1` templates with hardened `sshd_config`
594
- - **TUI color contrast** โ€” fixed for Windows Terminal (green focus, layout consistency)
595
- - **Music preview overlap** โ€” switching tracks kills previous player via `taskkill`
596
- - **MCP Server** โ€” strips `\r\n` line endings, accepts `[OK]` markers for PowerShell 5.1 compatibility
597
-
598
- ### ๐ŸŽญ BMAD Party Mode โ€” Every Agent Has Its Own Voice
599
-
600
- When BMAD's party mode runs a multi-agent discussion, every agent speaks with their own individually configured voice, background music, reverb, and personality โ€” making the Architect, PM, Developer, QA, and Analyst immediately recognizable.
601
-
602
- **Per-agent configuration:**
603
- - ๐ŸŽ™๏ธ **Voice** โ€” 914 voices, gender-aware auto-assign
604
- - ๐ŸŽต **Background Music** โ€” Unique ambient track per agent (cinematic, lo-fi, jazz...)
605
- - ๐ŸŽš๏ธ **Music Volume** โ€” Per-agent level, or bulk-set all at once
606
- - ๐ŸŽ›๏ธ **Reverb** โ€” none / room / hall / cathedral / studio
607
- - ๐Ÿ’ฌ **Pretext** โ€” Custom intro phrase ("Winston says:..." before every line)
608
- - ๐ŸŽญ **Personality** โ€” sarcastic, dramatic, pirate, cheerful, and more
609
- - ๐Ÿ”‡ **No overlap** โ€” speech lock serializes agents (mkdir-based, portable across platforms)
610
- - โœจ **Markdown stripped** โ€” asterisks, emojis, and formatting removed before TTS
611
-
612
- ### ๐ŸŽ›๏ธ BMad Tab โ€” Full Visual Agent Configurator
613
-
614
- New **BMad Tab** (`B` key) in `npx agentvibes` for managing every agent visually:
615
-
616
- - Voice, Gender, Provider, Reverb, Music, Vol, and Pretext columns
617
- - Voice names auto-beautified: `16Speakers::Rose_Ibex` โ†’ `Rose Ibex`
618
- - `Space` to preview with full profile (animated braille spinner while playing)
619
- - `Enter` to configure, `A` to auto-assign, `B` for bulk edit, `X` to reset
620
-
621
- ### ๐Ÿ–ฅ๏ธ SSH Receiver Tab โ€” Hear Your Headless Server
622
-
623
- New **Receiver Tab** streams TTS from voiceless remote servers to your local machine over TCP โ€” perfect for cloud dev boxes, WSL2, and SSH sessions. Multi-provider TTS support, color-coded log columns, and platform-aware setup guide.
624
-
625
- ### โšก Performance & UX
626
- - **TTS latency reduced ~1s** โ€” batched 6 Node.js calls into 1, inotifywait queue worker, background cache cleanup
627
- - **ANSI colors restored** to TTS banner via `AGENTVIBES_WAV_OUTPATH` sidecar file
628
- - **Banner toggle** โ€” hide TTS info without muting: `touch ~/.agentvibes/banner-disabled`
629
- - **`bin/agent-vibes` routes to blessed TUI** instead of old CLI installer
630
- - **Global hooks updated on upgrade** โ€” `~/.claude/hooks/` synced automatically (#141)
631
- - **Markdown stripping in stop hook** โ€” no more "asterisk asterisk" spoken aloud
632
-
633
- ### ๐Ÿ”Œ Windows MCP Parity โ€” 27/27 Tools Working (#157)
634
-
635
- All MCP tools now work natively on Windows (previously 12 silently failed):
636
-
637
- - **6 new PowerShell scripts** โ€” personality-manager, speed-manager, language-manager, learn-manager, verbosity-manager, clean-audio-cache
638
- - **Unified provider naming** โ€” `piper` and `sapi` on all platforms (no more `windows-piper`/`windows-sapi`)
639
- - **replay command** added to voice-manager for Windows
640
- - **28 new tests** โ€” script parity, effects round-trip, provider management, naming consistency
641
- - **Feature-platform matrix** โ€” `docs/feature-platform-matrix.md` tracks all 85 features across 4 platforms
642
- - **Adversarial review** found 24 issues, 10 fixed in this release
643
-
644
- **HIGH bug fixes:**
645
- - ffmpeg stderr redirected to temp file instead of literal `"NUL"` file on disk
646
- - `AGENTVIBES_NO_PLAY` env var properly cleaned up on error/kill paths
647
- - `PIPER_SPEAKER` env var no longer leaks between voice switches
648
- - Provider config now uses project-local `.claude` directory
649
- - Text over-sanitization fixed โ€” `$50 (USD)` no longer becomes `50 USD`
650
-
651
- ### ๐Ÿ”ง Code Hardening (Adversarial Review)
652
-
653
- Three rounds of adversarial code review with 27+ fixes across HIGH and MEDIUM severity:
654
-
655
- **Round 3 (v4.4.0 โ€” Windows parity):**
656
- - 6 CRITICAL missing script gaps closed (#157)
657
- - 4 HIGH severity bugs fixed (NUL redirect, env var leaks, config scope, speaker leak)
658
- - 3 MEDIUM fixes (text sanitization, error handling, provider naming)
659
-
660
- **Round 2 (v4.4.0 โ€” agents tab):**
661
- - Temp file leak on piper error โ€” cleanup added to error handler (#151)
662
- - Orphaned player process โ€” generation counter gates player spawn (#152)
663
- - Duplicate piper resolution โ€” extracted `_resolvePiperBin()` shared helper (#153)
664
- - Race condition in process handoff โ€” double generation check (#154)
665
- - Voice reuse modulo bug โ€” per-group round-robin counter (#155)
666
- - Ambiguous gender names removed from hardcoded map (#156)
667
-
668
- **Round 1 (earlier commits):**
669
- - 11 receiver-tab security findings addressed
670
- - All HIGH and MEDIUM issues from agents-tab review fixed
671
- - Portable speech lock (mkdir instead of flock)
672
- - Path traversal prevention, credential masking, resource cleanup throughout
673
-
674
- ### ๐Ÿ›ก๏ธ Quality
675
- - 639 Node unit tests passing, 213 BATS tests passing
676
- - 28 new Windows-specific platform parity tests
677
- - Sonar quality gates validated across all changed files
678
- - JS syntax verified on all modules
679
-
680
- **Previous release:** [v4.0.0](https://github.com/paulpreibisch/AgentVibes/releases/tag/v4.0.0)
681
-
682
- ---
683
-
684
- ## ๐ŸŽ‰ v4.2 โ€” "Party Mode" Release
685
-
686
- **Release Date:** March 2026
687
-
688
- This is the biggest AgentVibes release since the TUI launched in v4.0. Two headline features: **BMAD Party Mode** gives every agent their own voice and music, and the **SSH Receiver** lets you hear your headless server speak on your local machine.
689
-
690
- ### ๐Ÿค– What is BMAD?
691
-
692
- The BMad Method (Build More Architect Dreams) is an AI-driven development framework module within the BMad Method Ecosystem that helps you build software through the whole process from ideation and planning all the way through agentic implementation. It provides specialized AI agents, guided workflows, and intelligent planning that adapts to your project's complexity, whether you're fixing a bug or building an enterprise platform.
693
-
694
- ### ๐ŸŽญ BMAD Party Mode โ€” Every Agent Has Its Own Voice
695
-
696
- When BMAD's party mode runs a multi-agent discussion, every agent now speaks with their own individually configured voice, background music, reverb, and personality โ€” making the Architect, PM, Developer, QA, and Analyst immediately recognizable the moment they speak.
697
-
698
- ```bash
699
- /agent-vibes:bmad-party enable
700
- ```
701
-
702
- **Per-agent configuration:**
703
- - ๐ŸŽ™๏ธ **Voice** โ€” 914 voices to choose from, auto-assigned gender-aware
704
- - ๐ŸŽต **Background Music** โ€” Unique ambient track per agent (cinematic, lo-fi, jazz...)
705
- - ๐ŸŽš๏ธ **Music Volume** โ€” Per-agent level, or bulk-set all at once
706
- - ๐ŸŽ›๏ธ **Reverb** โ€” none / room / hall / cathedral / studio
707
- - ๐Ÿ’ฌ **Pretext** โ€” Custom intro phrase ("Winston says:..." before every line)
708
- - ๐ŸŽญ **Personality** โ€” sarcastic, dramatic, pirate, cheerful, and more
709
- - ๐Ÿ”‡ **No overlap** โ€” speech lock held until audio fully completes
710
- - โœจ **Markdown stripped** โ€” asterisks and formatting removed before TTS
711
-
712
- **Configuration stored in:** `~/.agentvibes/bmad-voice-map.json`
713
-
714
- ### ๐ŸŽ›๏ธ BMad Tab โ€” Full Visual Agent Configurator
715
-
716
- New **BMad Tab** in `npx agentvibes` for managing every agent visually โ€” built with the same polish as the Voices tab:
717
-
718
- ```bash
719
- npx agentvibes # Press B to open BMad Tab
720
- ```
721
-
722
- The agent table shows **Voice, Gender, Provider, Reverb, Music, Vol, and Pretext** columns. Voice names are automatically beautified: `16Speakers::Rose_Ibex` โ†’ `Rose Ibex`, `en_US-kusal-medium` โ†’ `Kusal`.
723
-
724
- | Key | Action |
725
- |-----|--------|
726
- | `โ†‘โ†“` / `jk` | Navigate agents |
727
- | `Space` | Preview agent with full profile (animated spinner while playing) |
728
- | `Enter` | Configure voice, music, volume, reverb, personality, pretext |
729
- | `A` | Auto-assign unique voices to all agents (gender-aware, no repeats) |
730
- | `B` | Bulk Edit โ€” set music / volume / pretext / reverb for all agents |
731
- | `X` | Reset agent to defaults |
732
-
733
- **BMad Tab highlights:**
734
- - Inline row hints โ€” navigate to any agent and see `[Space] Preview [Enter] Configure` on the row
735
- - Animated `โ ‹โ ™โ นโ ธ` braille spinner while audio plays
736
- - Gender & Provider columns โ€” same metadata as the Voices tab
737
-
738
- ### ๐Ÿ–ฅ๏ธ SSH Receiver Tab โ€” Hear Your Headless Server
739
-
740
- New **Receiver Tab** streams TTS from voiceless remote servers to your local machine over TCP โ€” perfect for cloud dev boxes (AWS, GCP, Azure), WSL2, and SSH sessions.
741
-
742
- ```bash
743
- # On local machine: open TUI โ†’ Receiver tab โ†’ Start
744
- npx agentvibes
745
-
746
- # Remote server auto-detects the receiver and streams audio to you
747
- ```
748
-
749
- ### โšก TTS Latency Reduced ~1 Second
750
-
751
- - **Batched Node.js profile reads** โ€” 6 `node -e` calls collapsed into 1 (~900ms saved per speech)
752
- - **inotifywait queue worker** โ€” file-event-driven queue, no polling delay
753
- - **Background cache cleanup** โ€” off the critical path every 10th call
754
-
755
- ### ๐ŸŽจ ANSI Colors Restored to Banner
756
-
757
- Full ANSI color in the TTS banner (gold voice, cyan reverb, traffic-light cache size), fixed via `AGENTVIBES_WAV_OUTPATH` sidecar file.
758
-
759
- ### ๐Ÿ”• Banner Toggle
760
-
761
- Hide TTS info banner without muting: `touch ~/.agentvibes/banner-disabled` or say "turn off the TTS banner" via MCP.
762
-
763
- ### ๐Ÿ›ก๏ธ Security
764
-
765
- - Adversarial code review โ€” 58 issues identified and addressed
766
- - Agent ID injection prevention, PID-scoped temp profile files
767
- - Env-var-based Node.js JSON reads (no shell interpolation)
768
-
769
- **Full Changelog**: https://github.com/paulpreibisch/AgentVibes/compare/v4.0.1...v4.2
770
-
771
- ---
772
-
773
- ## โœจ v3.5.10 - Soprano Detection Fixes & Enhanced Installer Features
774
-
775
- **Release Date:** February 14, 2026
776
-
777
- ### ๐ŸŽฏ Summary
778
-
779
- Production release combining critical bug fixes and new installer features. Fixed Soprano TTS detection for pipx installations (the core issue reported by users), resolved 5 execSync API misuse bugs that were breaking Python package detection, and eliminated 100+ lines of code duplication. Introduces new installer features: custom music track support with preview functionality, personality emoji mapping for better visual recognition, and pretext configuration allowing users to customize agent introductions.
780
-
781
- ### โœจ Key Features & Fixes
782
-
783
- **๐Ÿ”ง Critical Bug Fixes:**
784
- - **Soprano TTS Detection:** Fixed detection when installed via pipx (was showing "not installed" despite working)
785
- - **execSync API Bugs:** Fixed 5 locations using incorrect API signature (array args with execSync)
786
- - **Code Duplication:** Eliminated 100+ lines of duplicate code between Soprano and Piper validators
787
- - **API Consistency:** All provider validation functions now return consistent response structures
788
- - **Python Package Detection:** Fixed broken Python pip detection that was silently failing
789
-
790
- **๐ŸŽจ New Installer Features:**
791
- - **Custom Music Tracks:** Users can now upload and preview their own background music
792
- - **Personality Emojis:** Visual recognition mapping (๐Ÿ˜Š for none, ๐ŸŽญ for dramatic, ๐Ÿ’ for sassy, etc.)
793
- - **Pretext Configuration:** Custom agent introductions (e.g., "FireBot: " prefix for all messages)
794
- - **Track Preview:** Audio preview with support for ffplay, sox, and mpv players
795
-
796
- **๐Ÿ›ก๏ธ Security & Quality:**
797
- - Improved path traversal protection in provider validation
798
- - Enhanced error handling and logging
799
- - Reduced code complexity by 29% through deduplication
800
- - Test coverage improved: 56.61% โ†’ 63.67%
801
-
802
- ### ๐Ÿ“Š Technical Details
803
-
804
- **Soprano Detection Improvements:**
805
- - Checks command in PATH first (most reliable for pipx)
806
- - Falls back to ~/.local/bin directory check
807
- - Checks pipx venv directory for installation
808
- - Final fallback to Python pip package detection
809
- - Consistent error messages showing all checked locations
810
-
811
- **Code Quality Metrics:**
812
- - File size reduced by 145 lines (-29%)
813
- - Code duplication eliminated (was ~100 lines)
814
- - Test coverage improved +7.06%
815
- - All 114 tests passing
816
- - Provider validator now 63.67% covered (up from 56.61%)
817
-
818
- **Installer Enhancements:**
819
- - Added personality emoji mapping (26 personalities)
820
- - Custom track upload with validation
821
- - File type restrictions (.mp3, .wav, .ogg, .m4a)
822
- - Registry storage in ~/.agentvibes/custom-tracks.json
823
- - Audio preview before finalizing selection
824
-
825
- ### ๐Ÿ”’ Security Notes
826
-
827
- - All spawnSync calls now use correct array argument form
828
- - Path traversal prevention maintained in all operations
829
- - HOME injection protection via os.homedir()
830
- - No hardcoded credentials introduced
831
- - Input validation for file uploads and track selection
832
-
833
- ### ๐Ÿ› Known Limitations
834
-
835
- - Audio preview requires ffplay, sox, or mpv (feature gracefully degrades if unavailable)
836
- - Custom track registry is stored locally per user
837
- - Some legacy bash scripts still lack strict mode (pre-existing, low risk)
838
-
839
- ### ๐Ÿ™ Acknowledgments
840
-
841
- This release includes fixes identified through adversarial code review, ensuring production-quality reliability and security alignment with CLAUDE.md standards.
842
-
843
- ---
844
-
845
- ## ๐Ÿ›ก๏ธ v3.5.8 - Provider Validation Security & UX Improvements
846
-
847
- **Release Date:** February 12, 2026
848
-
849
- ### ๐ŸŽฏ Summary
850
-
851
- Critical security and reliability update for provider detection. Fixes command injection vulnerabilities in validation code, prevents HOME directory injection attacks, and improves UX with explicit provider detection messaging. Soprano TTS installed via pipx is now correctly detected (previously showed "not installed" due to ES module import error). All 8 critical code review issues resolved with comprehensive security hardening and enhanced error reporting.
852
-
853
- ### โœจ Key Improvements
854
-
855
- - **๐Ÿ” Security Fixes:** Fixed command injection vulnerability (template strings โ†’ array form), prevented HOME injection attacks, added path traversal protection
856
- - **โœ… Provider Detection:** Soprano via pipx now correctly detected; added checkedLocations tracking for transparency
857
- - **๐Ÿ’ฌ Better Messaging:** Explicit "Detected and selected!" confirmation; detailed error messages showing what was checked
858
- - **๐Ÿงช Test Coverage:** Enhanced tests verify actual detection values, not just types
859
- - **๐Ÿ› Debugging:** Added [DEBUG] logging for troubleshooting provider issues
860
-
861
- ### ๐Ÿ”ด Critical Fixes
862
-
863
- 1. **Command Injection Prevention** - All execSync calls now use array form (security: CLAUDE.md)
864
- 2. **HOME Directory Injection** - Switched to os.homedir() instead of process.env.HOME
865
- 3. **Path Traversal Protection** - Added path.resolve() validation for pipx venv directories
866
-
867
- ### ๐ŸŸก Medium Fixes
868
-
869
- 4. **Pipx Logic Improved** - Tracks checked locations even on success (transparency)
870
- 5. **Silent Failures Eliminated** - Added [DEBUG] error logging for diagnostics
871
- 6. **Test Quality Enhanced** - Verify message content, not just types
872
- 7. **Documentation** - Added JSDoc comments explaining security-critical imports
873
- 8. **Error Differentiation** - Better distinction between different failure types
874
-
875
- ### ๐Ÿ“Š Technical Impact
876
-
877
- - Soprano detection now works reliably for both pip and pipx installations
878
- - Reduced false negatives in provider validation
879
- - Enhanced security posture aligned with CLAUDE.md security mandates
880
- - Improved debuggability with explicit error messages
881
-
882
- ---
883
-
884
- ## ๐Ÿ”ง v3.5.7 - CLI Fix: npx Command Output & Startup Hooks
885
-
886
- **Release Date:** February 12, 2026
887
-
888
- Fixes critical bug where `npx agent-vibes install` and other commands produced no output, making CLI unusable. Root cause: bin/agent-vibes used dynamic import without passing arguments to installer.js on local execution. Also removed broken hook configurations (pre_compact.py, notification.ts) that didn't exist and caused startup errors in Claude Code settings.
889
-
890
- ### ๐ŸŽฏ What's Fixed
891
-
892
- - **npx agent-vibes now works** - `npx agent-vibes install`, `npx agent-vibes --help`, all commands produce proper output
893
- - **Startup hook errors gone** - Removed non-existent hook references from settings.json (pre_compact.py, notification.ts)
894
- - **CLI execution proper** - Both npx and local execution now use execFileSync with proper argument passing
895
-
896
- ### ๐Ÿš€ Technical Details
897
-
898
- **Before v3.5.7:**
899
- ```javascript
900
- // bin/agent-vibes (local execution path)
901
- import('../src/installer.js'); // โŒ No args, doesn't await
902
- ```
903
-
904
- **After v3.5.7:**
905
- ```javascript
906
- // bin/agent-vibes (all execution paths)
907
- execFileSync('node', [installerPath, ...arguments_], {
908
- stdio: 'inherit',
909
- cwd: isNpxExecution ? path.dirname(__dirname) : process.cwd(),
910
- }); // โœ… Passes args, proper I/O
911
- ```
912
-
913
- ---
914
-
915
- ## ๐Ÿ”ง v3.5.6 - Bug Fix: Bash Hook Parameter Handling
916
-
917
- **Release Date:** February 11, 2026
918
-
919
- Fixes critical regression in v3.5.5 where bash hooks failed with unbound variable errors when called with optional parameters under strict mode. Affects `play-tts.sh` and `provider-manager.sh`.
920
-
921
- ---
922
-
923
- ## ๐Ÿ“ฆ v3.5.5 - Native Windows Support: Soprano, Piper & SAPI Providers
924
-
925
- **Release Date:** February 12, 2026
926
-
927
- ### ๐ŸŽฏ Why v3.5.5?
928
-
929
- v3.5.5 brings **native Windows support** to AgentVibes with a full-featured PowerShell installer and three TTS providers. Windows users no longer need WSL - AgentVibes runs natively with Soprano (neural), Piper (offline neural), or Windows SAPI (zero-setup) voices. The installer also adds **background music selection** (16 genre tracks), **reverb/audio effects** (via ffmpeg aecho), and **verbosity control** for the TTS experience.
930
-
931
- ### ๐Ÿš€ Key Highlights
932
-
933
- #### ๐Ÿ–ฅ๏ธ Native Windows TTS (NEW!)
934
- - **3 providers**: Soprano (ultra-fast neural), Piper (offline neural), Windows SAPI (built-in)
935
- - **Beautiful PowerShell installer** with figlet banner and interactive setup
936
- - **8 hook scripts** for complete TTS functionality on Windows
937
- - **MCP server** auto-resolves `.sh` to `.ps1` on Windows
938
- - **46 Windows-specific unit tests** with full coverage
939
-
940
- #### ๐ŸŽต Background Music Selection
941
- - **16 genre tracks**: Flamenco, Bachata, Bossa Nova, City Pop, Chillwave, and more
942
- - **Interactive picker** in the installer with descriptions
943
- - **ffmpeg mixing**: 2s intro, voice over music, 2s fade-out outro
944
-
945
- #### ๐ŸŽ›๏ธ Reverb / Audio Effects
946
- - **5 reverb levels**: Off, Light, Medium, Heavy, Cathedral
947
- - **ffmpeg aecho filter** (no SOX dependency on Windows)
948
- - Applied before background music mixing for clean layering
949
-
950
- #### ๐Ÿ”Š Verbosity Control
951
- - **3 levels**: High (full reasoning), Medium (key updates), Low (essential only)
952
- - Integrates with session-start-tts.ps1 protocol instructions
953
-
954
- ### ๐Ÿค– AI Summary
955
-
956
- AgentVibes v3.5.5 delivers native Windows support with a polished PowerShell installer offering three TTS providers (Soprano neural, Piper offline, Windows SAPI), background music selection from 16 genre tracks, reverb effects via ffmpeg aecho filter, and verbosity control. The release includes 8 Windows hook scripts, MCP server platform detection for automatic .sh-to-.ps1 resolution, and 46 new unit tests. Security hardening adds path traversal prevention with regex allowlisting and path containment checks, reverb config allowlist validation, and strict mode compliance across all scripts. Cross-platform test fixes ensure the full 93-test suite passes on both Windows and Unix.
957
-
958
- ---
959
-
960
- ## โœจ New Features
961
-
962
- ### Native Windows TTS
963
- - Full PowerShell installer (`setup-windows.ps1`) with figlet banner and interactive UX
964
- - Soprano provider (`play-tts-soprano.ps1`) with Gradio WebUI integration
965
- - Piper provider (`play-tts-windows-piper.ps1`) with auto-download of voices from HuggingFace
966
- - Windows SAPI provider (`play-tts-windows-sapi.ps1`) with zero-setup built-in voices
967
- - TTS router (`play-tts.ps1`) with mute support, background music mixing, and reverb
968
- - Provider manager, voice manager, audio cache utils, and session-start hook scripts
969
- - MCP server `.sh` to `.ps1` auto-resolution on Windows
970
-
971
- ### Installer Enhancements
972
- - Background music selection with 16 genre tracks and interactive picker
973
- - Reverb/audio effects selection (Off/Light/Medium/Heavy/Cathedral)
974
- - Verbosity control (High/Medium/Low) for TTS protocol instructions
975
- - Updated completion screen showing all 4 settings (provider, background, reverb, verbosity)
976
-
977
- ---
978
-
979
- ## ๐Ÿ› Bug Fixes
980
-
981
- ### Security Fixes
982
- - Fix path traversal in background music config reader (regex allowlist + path containment)
983
- - Add allowlist validation for reverb-level.txt config (prevent invalid values)
984
- - Add `set -euo pipefail` strict mode to `play-tts.sh` for Sonar compliance
985
-
986
- ### Cross-Platform Fixes
987
- - Fix self-copy error when setup-windows.ps1 runs from project root
988
- - Fix test executable permission checks on Windows (skip Unix mode bits)
989
- - Fix test path separator comparison in uninstall test (use `path.join` not hardcoded `/`)
990
-
991
- ---
992
-
993
- ## ๐Ÿ—๏ธ Improvements
994
-
995
- ### Code Quality
996
- - Reverb config uses switch-as-allowlist pattern - file content never flows into commands
997
- - All SoundPlayer instances wrapped in try/finally for resource disposal
998
- - Environment variable cleanup (`AGENTVIBES_NO_PLAY`) on all exit paths
999
- - Input validation with regex + range checks for all installer prompts
1000
-
1001
- ### Testing
1002
- - 46 new Windows-specific unit tests (hook scripts, providers, security, encoding)
1003
- - 3 cross-platform test fixes for Windows compatibility
1004
- - Full suite: 93 Node tests passing on Windows
1005
-
1006
- ---
1007
-
1008
- ## ๐Ÿ“Š Statistics
1009
-
1010
- - **7 commits** since v3.4.1
1011
- - **3,769 lines added**, 211 removed across 24 files
1012
- - **9 new PowerShell scripts** for Windows TTS
1013
- - **93 tests passing** (46 Windows + 47 cross-platform)
1014
- - **24/24 Sonar quality gates** passing
1015
- - **Security score**: All path traversal and injection vectors reviewed
1016
-
1017
- ---
1018
-
1019
- ## ๐Ÿ”ง Technical Details
1020
-
1021
- ### Files Added
1022
- - `.claude/hooks-windows/play-tts.ps1`: TTS router with reverb and background music
1023
- - `.claude/hooks-windows/play-tts-soprano.ps1`: Soprano neural TTS provider
1024
- - `.claude/hooks-windows/play-tts-windows-piper.ps1`: Piper offline TTS provider
1025
- - `.claude/hooks-windows/play-tts-windows-sapi.ps1`: Windows SAPI built-in voices
1026
- - `.claude/hooks-windows/provider-manager.ps1`: Provider switching
1027
- - `.claude/hooks-windows/voice-manager-windows.ps1`: Voice browsing and selection
1028
- - `.claude/hooks-windows/audio-cache-utils.ps1`: Cache management
1029
- - `.claude/hooks-windows/session-start-tts.ps1`: Auto-activates TTS on Claude start
1030
- - `setup-windows.ps1`: Full Windows installer with 4 interactive sections
1031
- - `test/unit/windows-tts.test.js`: 46 Windows-specific unit tests
1032
-
1033
- ### Breaking Changes
1034
- None - all changes are backward compatible. Existing Unix/macOS installations are unaffected.
1035
-
1036
- ---
1037
-
1038
- ## ๐ŸŽ“ Migration Notes
1039
-
1040
- ### For New Windows Users
1041
- 1. Run `npx agentvibes install` (Node.js) or `.\setup-windows.ps1` (PowerShell)
1042
- 2. Follow the interactive setup
1043
- 3. Choose provider (Soprano, Piper, or SAPI)
1044
- 4. Select background music, reverb, and verbosity
1045
- 5. TTS works automatically in Claude Code sessions
1046
-
1047
- ### For Existing Unix/macOS Users
1048
- - No changes required - your setup continues working
1049
- - All Unix bash hooks remain untouched
1050
- - Only `play-tts.sh` gained `set -euo pipefail` (strict mode)
1051
-
1052
- ---
1053
-
1054
- ## ๐Ÿ™ Acknowledgments
1055
-
1056
- ### Project Lead
1057
- - **[@paulpreibisch](https://github.com/paulpreibisch)** (Paul Preibisch) โ€” Creator and maintainer of AgentVibes
1058
-
1059
- ### Community Contributors
1060
- - **[@nathanchase](https://github.com/nathanchase)** โ€” For contributing the Soprano TTS provider in v3.4.0, whose ultra-fast neural engine is now one of the three Windows-native providers
1061
- - **[@alexeyv](https://github.com/alexeyv)** โ€” For suggesting native Windows support and recommending Windows SAPI as a zero-dependency provider
1062
- - **[@bmadcode](https://github.com/bmadcode)** (Brian Madison) โ€” Creator of the [BMAD Method](https://github.com/bmadcode/BMAD-METHOD), used daily for planning and building AgentVibes features
1063
-
1064
- ### Quality Assurance
1065
- - **Adversarial Security Review**: Path traversal, injection, and resource disposal all validated
1066
- - **Testing**: 93/93 tests passing (100% suite coverage)
1067
- - **Quality Gates**: 24/24 Sonar requirements validated
1068
- - **Co-Authored-By**: Claude Opus 4.6
1069
-
1070
- ---
1071
-
1072
- **Full Changelog**: https://github.com/paulpreibisch/AgentVibes/compare/v3.4.1...v3.5.5
1073
-
1074
- ---
1075
-
1076
- ## ๐Ÿ“ฆ v3.4.0 - Soprano TTS, Security Hardening & Environment Intelligence
1077
-
1078
- **Release Date:** February 10, 2026
1079
-
1080
- ### ๐ŸŽฏ Why v3.4.0?
1081
-
1082
- v3.4.0 introduces **Soprano TTS** - an ultra-fast neural TTS provider with GPU acceleration, comprehensive **security hardening** across the codebase, and **intelligent environment detection** that recognizes PulseAudio tunnels for remote audio scenarios.
1083
-
1084
- ### ๐Ÿš€ Key Highlights
1085
-
1086
- #### โšก Soprano TTS Provider (NEW!)
1087
- - **80M parameter neural model** with premium female English voice
1088
- - **20x CPU speed** (vs Piper), **2000x GPU speed** with CUDA
1089
- - **3 synthesis modes**: WebUI (Gradio), API (OpenAI-compatible), CLI (fallback)
1090
- - **Auto-detection**: Checks for running Gradio server, falls back gracefully
1091
- - **<1GB memory footprint** - perfect for low-RAM systems
1092
- - **Provider-aware voice management**: Auto-selects single voice, shows model specs
1093
- - **Thanks to [@nathanchase](https://github.com/nathanchase)** for this contribution! ([see acknowledgments](#-acknowledgments))
1094
-
1095
- #### ๐Ÿ›ก๏ธ Security Hardening (9.5/10 Score)
1096
- - **Timeouts on system commands**: Prevents installer hangs (nvidia-smi, sysctl, meminfo)
1097
- - **Bounds checking**: Validates array access before parsing system output
1098
- - **NaN validation**: Prevents crashes from malformed memory/GPU detection
1099
- - **Case-insensitive checks**: PulseAudio tunnel detection handles TCP: and tcp:
1100
- - **Code duplication eliminated**: Extracted PulseAudio helper function (DRY)
1101
-
1102
- #### ๐ŸŒ Environment Intelligence
1103
- - **PulseAudio tunnel detection**: Recognizes `PULSE_SERVER=tcp:*` as working audio
1104
- - **Context-aware messaging**:
1105
- - "๐ŸŒ PulseAudio Tunnel Detected!" for SSH + tunnel setups
1106
- - "๐Ÿ”Š Audio Output Detected!" for local speakers
1107
- - Distinguishes local/tunnel/hybrid configurations
1108
- - **Smart environment classification**:
1109
- - DESKTOP: Local audio OR active PulseAudio tunnel
1110
- - VOICELESS: No audio AND no tunnel
1111
- - PHONE: Termux/Android devices
1112
-
1113
- #### ๐ŸŽค Installer Enhancements
1114
- - **Provider-aware voice pages**: Soprano shows model specs, Piper shows 50+ voices
1115
- - **Auto-selection logic**: Soprano (1 voice) auto-selects, no manual choice needed
1116
- - **GPU-based recommendations**: "Your GPU will run Soprano 2000x faster!"
1117
- - **RAM-based suggestions**: Low memory systems see "Soprano uses <1GB" message
1118
- - **Better RAM display**: Shows "512MB" instead of "0GB" for sub-1GB systems
1119
-
1120
- ### ๐Ÿค– AI Summary
1121
-
1122
- AgentVibes v3.4.0 brings Soprano TTS - an 80M parameter neural provider offering 20x CPU and 2000x GPU acceleration with sub-1GB memory footprint - plus comprehensive security hardening (timeouts, bounds checking, NaN validation) and intelligent environment detection that recognizes PulseAudio tunnels as working audio for remote scenarios. The enhanced installer provides context-aware messaging distinguishing local speakers from SSH tunnels, GPU-based provider recommendations (Soprano for CUDA users, macOS Say for Apple, Piper for versatility), and provider-specific voice pages that auto-select Soprano's single voice while showcasing model specifications. This release achieves a 9.5/10 security score through systematic defensive programming, making AgentVibes production-ready for enterprise deployments while expanding TTS provider options for diverse hardware configurations.
1123
-
1124
- ---
1125
-
1126
- ## โœจ New Features
1127
-
1128
- ### Soprano TTS Provider
1129
- - Add Soprano TTS provider script with 3 synthesis modes (WebUI, API, CLI) (#95)
1130
- - Integrate Soprano into TTS router and provider manager
1131
- - Add soprano-gradio-synth.py helper for WebUI/SSE protocol
1132
- - Provider-aware voice selection page with model specifications
1133
- - Auto-select single Soprano voice with performance details
1134
-
1135
- ### Installer Intelligence
1136
- - Add `detectSystemCapabilities()` for GPU/RAM detection
1137
- - Add `hasPulseAudioTunnel()` helper function
1138
- - Context-aware audio detection messaging (tunnel vs local)
1139
- - GPU-based provider ordering (Soprano first for CUDA users)
1140
- - RAM-based recommendations (<4GB systems see Soprano first)
1141
- - Provider-specific intro messages (Soprano vs Piper vs macOS)
1142
-
1143
- ### Environment Detection
1144
- - PulseAudio tunnel recognition via PULSE_SERVER env var
1145
- - Case-insensitive TCP protocol detection
1146
- - Smart DESKTOP classification (local audio OR tunnel)
1147
- - Improved VOICELESS detection (no audio AND no tunnel)
1148
-
1149
- ---
1150
-
1151
- ## ๐Ÿ› Bug Fixes
1152
-
1153
- ### Security Fixes
1154
- - Add 5s timeout to nvidia-smi to prevent GPU detection hangs
1155
- - Add 3s timeout to sysctl/meminfo to prevent memory detection hangs
1156
- - Add bounds checking before parsing sysctl output (macOS)
1157
- - Add bounds checking before parsing /proc/meminfo (Linux)
1158
- - Add NaN validation for parseInt() memory size parsing
1159
- - Fix case sensitivity in PULSE_SERVER detection (handles TCP: and tcp:)
1160
-
1161
- ### Test Fixes
1162
- - Fix provider-manager test #90: Add soprano and ssh-remote to cleanup list
1163
- - Ensure zero-provider edge case properly simulates empty state
1164
-
1165
- ### User Experience
1166
- - Fix RAM display for <1GB systems (show "512MB" not "0GB")
1167
- - Fix PulseAudio selection triggering wrong setup flow
1168
- - Separate PulseAudio tunnel setup from SSH receiver setup
1169
-
1170
- ---
1171
-
1172
- ## ๐Ÿ—๏ธ Improvements
1173
-
1174
- ### Code Quality
1175
- - Extract PulseAudio detection to helper function (DRY principle)
1176
- - Implement system capabilities caching (eliminates duplicate calls)
1177
- - Add comprehensive error handling in detectSystemCapabilities()
1178
- - Improve code comments for security-critical sections
1179
-
1180
- ### Performance
1181
- - Cache system detection results (prevents duplicate nvidia-smi calls)
1182
- - Add timeouts to prevent indefinite hangs
1183
- - Optimize provider detection with early returns
1184
-
1185
- ### Documentation
1186
- - Add comprehensive commit message documenting all changes
1187
- - Document security improvements (timeouts, bounds checking, NaN validation)
1188
- - Explain PulseAudio tunnel detection architecture
1189
- - Detail environment classification logic
1190
-
1191
- ---
1192
-
1193
- ## ๐Ÿ“Š Statistics
1194
-
1195
- - **91 commits** since v3.3.0
1196
- - **817 lines added** in merge to master
1197
- - **6 files modified** in core integration
1198
- - **260 tests passing** (213 BATS + 47 Node)
1199
- - **Security score**: 7.5/10 โ†’ 9.5/10
1200
- - **Test coverage**: 100% pass rate
1201
-
1202
- ---
1203
-
1204
- ## ๐Ÿ”ง Technical Details
1205
-
1206
- ### Files Modified
1207
- - `src/installer.js`: +335 lines (security fixes, environment detection, Soprano integration)
1208
- - `test/unit/provider-manager.bats`: +4 lines (fix edge case test)
1209
- - `.claude/hooks/play-tts-soprano.sh`: +320 lines (new provider)
1210
- - `.claude/hooks/soprano-gradio-synth.py`: +139 lines (new helper)
1211
- - `.claude/hooks/provider-manager.sh`: +17 lines (Soprano support)
1212
- - `.claude/hooks/play-tts.sh`: +6 lines (route to Soprano)
1213
-
1214
- ### Breaking Changes
1215
- None - all changes are backward compatible.
1216
-
1217
- ### Dependencies
1218
- - **New**: `soprano-tts` (Python package, optional)
1219
- - **Recommended**: CUDA-capable GPU for 2000x speedup (optional)
1220
- - **Compatible**: Works on CPU-only systems (20x vs Piper)
1221
-
1222
- ---
1223
-
1224
- ## ๐ŸŽ“ Migration Notes
1225
-
1226
- ### For New Users
1227
- 1. Run `npx agentvibes install`
1228
- 2. Installer auto-detects your hardware (GPU, RAM, platform)
1229
- 3. Soprano appears as option if you have working audio
1230
- 4. Select Soprano for ultra-fast TTS with GPU acceleration
1231
-
1232
- ### For Existing Users
1233
- 1. Update: `npx agentvibes update`
1234
- 2. Switch provider: `/agent-vibes:provider switch soprano`
1235
- 3. Test: `/agent-vibes:sample soprano-default`
1236
- 4. Optionally install soprano-tts: `pip install soprano-tts`
1237
-
1238
- ### PulseAudio Tunnel Users
1239
- - Installer now auto-detects your tunnel configuration
1240
- - Shows "๐ŸŒ PulseAudio Tunnel Detected!" instead of "speakers"
1241
- - Provides DESKTOP mode options (Soprano, Piper, macOS Say)
1242
- - No manual configuration needed
1243
-
1244
- ---
1245
-
1246
- ## ๐Ÿ™ Acknowledgments
1247
-
1248
- ### Special Thanks
1249
-
1250
- **๐ŸŽ‰ [@nathanchase](https://github.com/nathanchase)** - For contributing the Soprano TTS Provider integration (PR #95)! Nathan's work brings ultra-fast neural TTS with GPU acceleration to AgentVibes, offering 20x CPU and 2000x GPU performance improvements. The comprehensive integration includes WebUI, API, and CLI synthesis modes with intelligent auto-detection and graceful fallback. Thank you for this outstanding contribution! ๐Ÿš€
1251
-
1252
- ### Quality Assurance
1253
-
1254
- - **Security Review**: Adversarial code review achieved 9.5/10 score
1255
- - **Testing**: All 260 tests pass (100% suite coverage)
1256
- - **Quality Gates**: All Sonar requirements validated
1257
- - **Co-Authored-By**: Claude Sonnet 4.5
1258
-
1259
- ---
1260
-
1261
- ## ๐Ÿ“š Additional Resources
1262
-
1263
- - [Soprano TTS Documentation](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/providers.md#soprano-tts)
1264
- - [PulseAudio Tunnel Setup](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/SSH_REMOTE_SETUP.md)
1265
- - [Security Hardening Guide](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/security-hardening-guide.md)
1266
- - [Provider Comparison](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/providers.md)
1267
-
1268
- ---
1269
-
1270
- **Full Changelog**: https://github.com/paulpreibisch/AgentVibes/compare/v3.3.0...v3.4.0
1271
-
1272
- ---
1273
-
1274
- ## ๐Ÿ“ฆ v3.3.0 - Remote TTS, Smart Installer, OpenClaw Receiver & Cache Management
1275
-
1276
- **Release Date:** February 5, 2026
1277
-
1278
- ### ๐ŸŽฏ Why v3.3.0?
1279
-
1280
- v3.3.0 transforms AgentVibes into a **universal TTS platform** for any environment:
1281
-
1282
- - **SSH-Remote Provider** - Generate TTS on servers, receive audio on your phone/computer
1283
- - **Termux/Android Support** - Native Piper TTS on mobile devices
1284
- - **OpenClaw Integration** - Turn voiceless servers into Siri-like conversational AI
1285
- - **AgentVibes Receiver** - Receive and play audio from remote servers on your device
1286
- - **Smart Installer** - Auto-detects your environment (voiceless, GUI, Termux, SSH)
1287
- - **Intelligent Cache Management** - Real-time tracking and auto-cleanup prevents disk bloat
1288
-
1289
- #### ๐ŸŒ Real-World Use Case: OpenClaw + AgentVibes Receiver
1290
-
1291
- You deploy OpenClaw on a voiceless Mac mini (or remote server) where users message you via WhatsApp, Telegram, or Discord. With v3.3.0:
1292
-
1293
- **Before AgentVibes Receiver:**
1294
- - User messages: "Tell me a joke"
1295
- - Mac mini processes request
1296
- - Text response appears in chat
1297
- - ๐Ÿ˜ž No audio - silent experience
1298
-
1299
- **After AgentVibes Receiver:**
1300
- 1. **Install AgentVibes** on your Mac mini (or remote server)
1301
- 2. **Install AgentVibes Receiver** on your phone/iPad/laptop
1302
- 3. **Connect via Tailscale** (one-time setup)
1303
- 4. **User messages:** "Tell me a joke"
1304
- 5. **Mac mini generates TTS** with your configured voice
1305
- 6. **Audio streams to your device** via SSH tunnel
1306
- 7. **Your speakers play:** ๐Ÿ”Š "Why did the AI go to school? To improve its learning model!"
1307
- 8. **User in WhatsApp also hears** the audio playing (Siri-like experience)
1308
-
1309
- Result: OpenClaw transforms from **silent text AI** โ†’ **Conversational AI with voice**
1310
-
1311
- Perfect for:
1312
- - ๐Ÿ–ฅ๏ธ Mac mini with OpenClaw
1313
- - ๐Ÿ–ฅ๏ธ Remote servers (AWS, DigitalOcean, Linode)
1314
- - ๐Ÿ—๏ธ Container deployments (Docker)
1315
- - ๐Ÿ”ง WSL (Windows Subsystem for Linux)
1316
- - ๐Ÿ“ฑ Any voiceless environment needing audio
1317
-
1318
- ### ๐Ÿค– AI Summary
1319
-
1320
- AgentVibes v3.3.0 unleashes the platform across new frontiers: remote servers via SSH-PulseAudio tunneling, Android/Termux environments with native Piper support, and OpenClaw (formerly Clawdbot) multi-agent orchestration. The redesigned smart installer detects your environment (voiceless, GUI, SSH, Termux) and shows only relevant options, plus optional BMAD personality injection for advanced users. Every TTS output now displays real-time cache metrics (file count/size with dynamic colors) plus intelligent size-based auto-cleanup that deletes oldest files when the cache exceeds threshold. The release includes comprehensive TTS queue management to prevent audio overlap, audio effects support across all providers, and full MCP tool integration for programmatic control. This release transforms AgentVibes into a universal TTS platform.
1321
-
1322
- **Key Highlights:**
1323
- - ๐ŸŒ **SSH-Remote TTS** - Remote device playback via PulseAudio tunneling (servers, containers, WSL)
1324
- - ๐Ÿ“ฑ **Android/Termux Support** - Native Piper TTS on Android with termux-media-player integration
1325
- - ๐Ÿค– **OpenClaw Receiver** (formerly Clawdbot) - AgentVibes Receiver for receiving TTS from voiceless servers
1326
- - ๐Ÿง  **Smart Installer** - Voiceless environment detection + personality injection for BMAD
1327
- - ๐Ÿ“Š **Real-Time Cache Tracking** - File count and size on every output with dynamic colors
1328
- - ๐Ÿงน **Intelligent Auto-Cleanup** - Size-based threshold (15MB default) prevents storage bloat
1329
- - ๐ŸŽต **Queue Management** - Prevents TTS audio overlap via centralized queue system
1330
- - โš™๏ธ **Audio Effects** - Full support across SSH-remote, Termux-ssh, and local providers
1331
- - ๐Ÿ“ **Uninstall Command** - Comprehensive cleanup with full documentation
1332
- - โœ… **96 Commits** - Massive feature expansion with 213 BATS tests passing
1333
-
1334
- ### โœจ New Features
1335
-
1336
- #### ๐ŸŒ Remote SSH TTS Support
1337
-
1338
- **SSH-Remote Provider:**
1339
- - Play TTS on remote servers via SSH + PulseAudio tunneling
1340
- - Zero-dependency for audio output (uses PulseAudio network tunnel)
1341
- - Perfect for deployed Claude Code on servers, containers, WSL
1342
- - Auto-configuration of PulseAudio TCP module
1343
- - Fallback to local playback if SSH unavailable
1344
- - Full compatibility with all voice selection and audio effects
1345
-
1346
- **SSH-PulseAudio Integration:**
1347
- - Automatic SSH connection detection and setup
1348
- - Secure TCP tunnel for audio stream transmission
1349
- - Support for both interactive and batch TTS operations
1350
- - Persistent audio configuration per SSH session
1351
-
1352
- #### ๐Ÿ“ฑ Android/Termux Support
1353
-
1354
- **Termux-SSH Provider:**
1355
- - Native Piper TTS on Android via Termux environment
1356
- - Uses termux-media-player for audio playback
1357
- - Full voice selection and effects support
1358
- - Automatic temp directory detection
1359
- - Integration with Tailscale for secure remote access
1360
- - Comprehensive setup guide with QR codes
1361
-
1362
- **Android Installation:**
1363
- - Self-contained Termux installer script
1364
- - One-command setup: `curl https://agentvibes.org/install-android | bash`
1365
- - Automatic dependency detection and installation
1366
- - Piper voice download management
1367
-
1368
- #### ๐ŸŽ™๏ธ OpenClaw Integration & AgentVibes Receiver
1369
-
1370
- **What is AgentVibes Receiver?**
1371
-
1372
- AgentVibes Receiver is a **lightweight audio client** that receives and plays TTS audio from remote servers where OpenClaw is installed. It runs on your phone, tablet, or personal computer and connects to voiceless servers via SSH tunnel.
1373
-
1374
- **The Problem It Solves:**
1375
- - OpenClaw running on Mac mini/remote server has no audio output
1376
- - Users message via WhatsApp/Telegram/Discord - get text responses only
1377
- - ๐Ÿ˜ž No voice = Less engaging AI experience
1378
-
1379
- **AgentVibes Receiver Solution:**
1380
- 1. **Lightweight client** runs on your device (phone/tablet/laptop)
1381
- 2. **SSH tunnel** securely connects to your voiceless server
1382
- 3. **Audio streams** from server to your device via PulseAudio
1383
- 4. **Auto-plays** on your speakers when OpenClaw responds
1384
- 5. **Siri-like experience** - Text + Voice in one flow
1385
-
1386
- **How It Works:**
1387
-
1388
- ```
1389
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
1390
- โ”‚ Your Mac mini / Server โ”‚
1391
- โ”‚ (OpenClaw + AgentVibes) โ”‚
1392
- โ”‚ โ”œโ”€ No audio output โ”‚
1393
- โ”‚ โ”œโ”€ Generates TTS โ”‚
1394
- โ”‚ โ””โ”€ Sends via SSH tunnel โ”‚
1395
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
1396
- โ†“ SSH Tunnel (encrypted)
1397
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
1398
- โ”‚ Your Phone / Laptop โ”‚
1399
- โ”‚ (AgentVibes Receiver) โ”‚
1400
- โ”‚ โ”œโ”€ Receives audio stream โ”‚
1401
- โ”‚ โ”œโ”€ Plays on speakers โ”‚
1402
- โ”‚ โ””โ”€ You hear OpenClaw speak โ”‚
1403
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
1404
- ```
1405
-
1406
- **Example Flow:**
1407
- ```
1408
- WhatsApp: "Tell me a joke"
1409
- โ†“
1410
- Mac mini: Processes with Claude
1411
- โ†“
1412
- Generates TTS: "Why did the AI... [audio file]"
1413
- โ†“ SSH tunnel
1414
- Your Phone: Plays audio ๐Ÿ”Š
1415
- โ†“
1416
- You hear: "Why did the AI go to school?"
1417
- ```
1418
-
1419
- **AgentVibes Receiver Features:**
1420
- - **One-Time Setup** - Pair with server via SSH key
1421
- - **Automatic Connection** - Reconnects if interrupted
1422
- - **Real-Time Streaming** - Low latency audio playback
1423
- - **SSH Encryption** - Secure tunnel for audio
1424
- - **Tailscale Support** - Easy VPN for remote servers
1425
- - **Multiple Servers** - Connect to different OpenClaw instances
1426
- - **Voice Control** - Full voice selection on the server side
1427
- - **Cache Metrics** - Monitor audio generation and cleanup
1428
-
1429
- **OpenClaw Skill Integration:**
1430
- - Installed automatically with AgentVibes on OpenClaw server
1431
- - Full feature access:
1432
- - Voice selection (50+ voices)
1433
- - Personality/sentiment (sarcastic, flirty, etc.)
1434
- - Audio effects (reverb, echo, pitch)
1435
- - Speech speed (0.5x - 3.0x)
1436
- - Language translation (speak in different languages)
1437
- - Real-time cache tracking
1438
- - Automatic cleanup of old audio files
1439
-
1440
- #### ๐Ÿง  Smart Installer Enhancements
1441
-
1442
- **Voiceless Environment Detection:**
1443
- - Auto-detects if GUI audio is unavailable (headless servers, containers)
1444
- - Offers SSH-remote TTS as alternative for voiceless environments
1445
- - Prevents installation of unnecessary audio dependencies
1446
-
1447
- **Personality Injection (BMAD):**
1448
- - Interactive prompt during install for BMAD users
1449
- - Optional TTS personality configuration
1450
- - Sentiment/personality selection built into setup flow
1451
- - Skipped for non-BMAD environments
1452
-
1453
- **Provider Auto-Selection:**
1454
- - Intelligent detection of available providers:
1455
- - macOS Say (macOS systems)
1456
- - Piper TTS (all systems)
1457
- - SSH-remote (if SSH available)
1458
- - Termux-ssh (Android/Termux)
1459
- - Shows only relevant providers in installation
1460
-
1461
- **Better UX:**
1462
- - Clear descriptions of each provider
1463
- - Setup URLs for complex providers (Tailscale)
1464
- - Comprehensive help text for each option
1465
- - Git log integration for recent changes
1466
-
1467
- #### ๐Ÿ“Š Real-Time TTS Cache Tracking & Intelligent Auto-Cleanup
1468
-
1469
- **Why Cache Management Matters:**
1470
- - TTS audio files accumulate quickly
1471
- - Server deployments can run out of disk space silently
1472
- - Users have no visibility into cache size or cleanup status
1473
- - Manual cleanup is inconvenient and error-prone
1474
-
1475
- **Cache Display on Every Output:**
1476
- Every time you generate TTS, you see real-time cache metrics:
1477
- ```
1478
- ๐Ÿ’พ Saved to: /home/user/.claude/audio/tts-1770274925.wav ๐Ÿ“ฆ 28 20.9MB ๐Ÿงน[15mb]
1479
- ```
1480
-
1481
- What you see:
1482
- - ๐Ÿ’พ **Full path** - Clickable file for replay or sharing
1483
- - ๐Ÿ“ฆ **28** - File count in cache
1484
- - **20.9MB** - Total cache size (color-coded):
1485
- - ๐ŸŸข Green: <500MB
1486
- - ๐ŸŸก Yellow: 500MB-3GB
1487
- - ๐Ÿ”ด Red: >3GB
1488
- - ๐Ÿงน **[15mb]** - Auto-cleanup threshold
1489
-
1490
- **Intelligent Size-Based Auto-Cleanup:**
1491
- - Deletes oldest files when cache exceeds threshold (default: 15MB)
1492
- - Silent operation (no blocking prompts)
1493
- - Write-lock protection prevents conflicts with TTS generation
1494
- - Respects active TTS (won't delete while generating)
1495
-
1496
- **Configuration:**
1497
- ```bash
1498
- # Per-project threshold override
1499
- echo "50" > .claude/tts-auto-clean-threshold.txt # 50MB limit
1500
-
1501
- # Or disable cleanup
1502
- echo "0" > .claude/tts-auto-clean-threshold.txt # Disable
1503
- ```
1504
-
1505
- **Manual Cleanup:**
1506
- ```bash
1507
- # Non-interactive cleanup
1508
- /agent-vibes:clean
1509
-
1510
- # Or programmatically via MCP
1511
- await agent_vibes.clean_audio_cache()
1512
- ```
1513
-
1514
- #### ๐ŸŽต TTS Queue Management
1515
-
1516
- **Overlap Prevention:**
1517
- - Centralized queue system for TTS operations
1518
- - Prevents simultaneous audio playback
1519
- - Critical for Clawdbot multi-agent scenarios
1520
- - Atomic queue operations ensure consistency
1521
-
1522
- **Queue Integration:**
1523
- - Automatic in OpenClaw Receiver
1524
- - Optional in standalone environments
1525
- - Fallback to sequential playback
1526
-
1527
- #### โš™๏ธ Audio Effects Across All Providers
1528
-
1529
- **Effects Support:**
1530
- - Reverb, echo, pitch, EQ available
1531
- - SSH-remote provider: Full effects support
1532
- - Termux-ssh provider: Full effects support
1533
- - All local providers: Unchanged effects behavior
1534
-
1535
- **Configuration:**
1536
- - Per-session override via environment variables
1537
- - Project-local settings via config files
1538
- - Persistent across TTS operations
1539
-
1540
- #### ๐Ÿ“ Comprehensive Uninstall Command
1541
-
1542
- **`/agent-vibes:uninstall` Skill:**
1543
- - Complete removal of AgentVibes and dependencies
1544
- - Interactive prompts for user confirmation
1545
- - Option to preserve configuration
1546
- - Detailed removal logs
1547
- - Full documentation included
1548
-
1549
- ### ๐Ÿ› Bug Fixes
1550
-
1551
- - **TTS Overlap** - Fixed audio overlapping via queue management
1552
- - **Termux Audio** - Proper detection and use of termux-media-player
1553
- - **SSH Detection** - Improved SSH environment detection logic
1554
- - **Race Conditions** - Write-lock mechanism prevents cleanup conflicts
1555
- - **Temp Directory** - Proper Termux temp directory handling
1556
- - **Color Codes** - Fixed GOLD color (256-color \033[38;5;226m)
1557
- - **Stat Compatibility** - BSD/GNU stat detection with proper output suppression
1558
- - **Syntax Validation** - Fixed installer.js syntax errors
1559
- - **Coverage Testing** - Proper coverage file generation for CI/CD
1560
-
1561
- ### ๐Ÿ”’ Security & Quality
1562
-
1563
- - **No Hardcoded Credentials** - All secure operations use environment variables
1564
- - **SSH Safety** - Secure PulseAudio tunnel authentication
1565
- - **Atomic Operations** - Queue and receiver use atomic file operations
1566
- - **Input Validation** - All external inputs validated
1567
- - **Pre-existing Limitations** - TTS scripts lack `set -euo pipefail` (pre-existing)
1568
- - **Sonar Compliance** - Security hotspots resolved, quality gates passing
1569
- - **Test Coverage** - 213 BATS tests + 47 Node unit tests
1570
-
1571
- ### โœ… Testing & Validation
1572
-
1573
- - **213 BATS Tests** - Core functionality validation
1574
- - **47 Node Tests** - JavaScript/installer validation
1575
- - **Cross-Platform** - Piper, macOS, SSH-remote, Termux-ssh
1576
- - **Environment Tests** - Voiceless, GUI, SSH, Termux detection
1577
- - **Audio Effects** - All providers tested
1578
- - **Backwards Compatible** - No breaking changes to existing code
1579
-
1580
- ---
1581
-
1582
- ## ๐Ÿ“ฆ v3.2.0 - Clawdbot Integration: AI Assistants on Any Messenger
1583
-
1584
- **Release Date:** January 27, 2026
1585
-
1586
- ### ๐ŸŽฏ Why v3.2.0?
1587
-
1588
- This minor release adds **native Clawdbot integration** to AgentVibes, bringing professional TTS to the revolutionary AI assistant you can access via any instant messenger. Clawdbot connects Claude AI to WhatsApp, Telegram, Discord, and moreโ€”and now with AgentVibes, your Clawdbot can speak with 50+ professional voices in 30+ languages. This release also includes SonarCloud quality gate improvements and CI/CD workflow enhancements.
1589
-
1590
- ### ๐Ÿค– AI Summary
1591
-
1592
- AgentVibes v3.2.0 introduces seamless integration with Clawdbot, the revolutionary AI assistant accessible via any instant messenger. With this release, Clawdbot users get professional TTS with 50+ voices, remote SSH audio support for server deployments, and zero-configuration setupโ€”just install AgentVibes and the Clawdbot skill is ready. The release also includes quality improvements: SonarCloud workflow fixes, enhanced documentation for disabling quality gate checks, and improved test coverage validation.
1593
-
1594
- **Key Highlights:**
1595
- - ๐Ÿค– **Clawdbot Integration** - Native TTS support for Clawdbot AI assistant framework
1596
- - ๐Ÿ’ฌ **Messenger Platforms** - Works with WhatsApp, Telegram, Discord via Clawdbot
1597
- - ๐Ÿ”Š **Remote SSH Audio** - Perfect for Clawdbot on remote servers with PulseAudio tunneling
1598
- - ๐Ÿ“ฆ **Simple Install** - Just `npx agentvibes install` and it works
1599
- - ๐Ÿ›ก๏ธ **SonarCloud Fixes** - Quality gate workflow improvements and documentation
1600
- - โœ… **Full Test Coverage** - All 213 BATS + 47 Node tests passing
1601
-
1602
- ### โœจ New Features
1603
-
1604
- **Clawdbot Skill (`.clawdbot/`):**
1605
- - New `.clawdbot/` directory with skill integration files
1606
- - `README.md` - Clawdbot integration overview and setup guide
1607
- - `skill/SKILL.md` - Comprehensive skill documentation with voice selection, background music, effects, personalities, and remote SSH audio setup
1608
- - Automatically distributed via npm package
1609
- - Zero-configuration when AgentVibes is installed
1610
-
1611
- **README Updates:**
1612
- - Added "๐Ÿค– Clawdbot Integration" section with full documentation
1613
- - Updated header to include Clawdbot alongside Claude Code, Claude Desktop, and Warp Terminal
1614
- - Added Clawdbot to Quick Links table
1615
- - Clawdbot description: "A revolutionary AI assistant you can access via any instant messenger"
1616
- - Website link: https://clawd.bot
1617
-
1618
- **package.json Updates:**
1619
- - Added `.clawdbot/` to npm files array for distribution
1620
- - Added `clawdbot` to keywords for npm discoverability
1621
- - Updated description to mention Clawdbot support
1622
-
1623
- ### ๐Ÿ› Bug Fixes
1624
-
1625
- - **SonarCloud Quality Gate** - Disabled quality gate status reporting to GitHub to prevent false CI failures
1626
- - **Coverage File Generation** - Ensured coverage file is generated before SonarCloud scan
1627
- - **CLI Test Coverage** - Added CLI tests and excluded CLI entry point from coverage requirements
1628
- - **macOS Runner** - Removed macos-15-large runner to avoid GitHub billing limits
1629
- - **Piper Voice Test** - Updated installation test to match current voice list
1630
-
1631
- ### ๐Ÿ“š Documentation
1632
-
1633
- - Added step-by-step SonarCloud dashboard configuration guide
1634
- - Added guide to disable SonarCloud GitHub App checks
1635
- - Comprehensive Clawdbot integration documentation with SSH audio examples
1636
-
1637
- ### ๐Ÿ”’ Security & Quality
1638
-
1639
- - โœ… All Sonar quality gates validated
1640
- - โœ… No hardcoded credentials in changes
1641
- - โœ… New Clawdbot files are documentation only (no executable code)
1642
- - โœ… All 213 BATS + 47 Node tests passing
1643
-
1644
- ### ๐Ÿ“Š Changes Summary
1645
-
1646
- - **Files Added:** 2 (`.clawdbot/README.md`, `.clawdbot/skill/SKILL.md`)
1647
- - **Files Modified:** 2 (`README.md`, `package.json`)
1648
- - **Commits Since v3.1.0:** 11 (5 fixes, 4 docs, 1 test, 1 debug)
1649
-
1650
- ### ๐ŸŽฏ User Impact
1651
-
1652
- **For Clawdbot Users:**
1653
- - Professional TTS with 50+ voices in 30+ languages
1654
- - Works on remote servers with SSH audio tunneling
1655
- - Zero API costsโ€”Piper TTS is free and offline
1656
- - Automatic integration when AgentVibes is installed
1657
-
1658
- **For Existing Users:**
1659
- - Zero breaking changes
1660
- - All existing features work exactly the same
1661
- - Clawdbot support is additive
1662
-
1663
- ### ๐Ÿš€ Migration Notes
1664
-
1665
- No migration required! This is a fully backward-compatible minor release.
1666
-
1667
- **To Use with Clawdbot:**
1668
- 1. Install: `npx agentvibes install`
1669
- 2. Speak: `npx agentvibes speak "Hello!"`
1670
-
1671
- ### ๐Ÿ“ฆ Full Changelog
1672
-
1673
- **Feature Commits:**
1674
- - `(pending)` feat: Add Clawdbot integration
1675
-
1676
- **Bug Fix Commits:**
1677
- - `5cd97d52` fix: Disable SonarCloud quality gate status reporting to GitHub
1678
- - `12f822e6` fix: Disable quality gate failure in SonarCloud workflow
1679
- - `0d26ccc2` fix: Ensure coverage file is generated before SonarCloud scan
1680
- - `c2465508` fix: Add CLI tests and exclude CLI entry point from coverage
1681
- - `c673afe1` fix: Remove macos-15-large runner to avoid GitHub billing limits
1682
- - `92271732` fix: Update Piper installation test to match current voice list
1683
-
1684
- **Documentation Commits:**
1685
- - `f72dd977` docs: Add guide to disable SonarCloud GitHub App checks
1686
- - `6587519b` docs: Add step-by-step SonarCloud dashboard configuration guide
1687
- - `ba765f50` docs: Add SonarCloud quality gate configuration guidance
1688
-
1689
- **Test Commits:**
1690
- - `47f08a79` test: Trigger workflow to verify SonarCloud quality gate fix
1691
-
1692
- **Debug Commits:**
1693
- - `84945d25` debug: Add coverage file verification to SonarCloud workflow
1694
-
1695
- ---
1696
-
1697
- ## ๐Ÿ“ฆ v3.1.0 - Android Native Support: Run Claude Code on Your Phone
1698
-
1699
- **Release Date:** January 22, 2026
1700
-
1701
- ### ๐ŸŽฏ Why v3.1.0?
1702
-
1703
- This minor release brings **native Android support** to AgentVibes, enabling developers to run Claude Code with professional TTS voices directly on Android devices via Termux. No SSH required, no remote server neededโ€”just install Termux on your Android phone or tablet and get the full AgentVibes experience locally. This complements the v3.0.0 termux-ssh provider by offering a **complete mobile development solution**: use native Termux for local Android development, or use termux-ssh when connecting to remote servers.
1704
-
1705
- ### ๐Ÿค– AI Summary
1706
-
1707
- AgentVibes v3.1.0 introduces native Android/Termux support, enabling developers to run Claude Code with professional TTS voices directly on their Android devices. Through automatic detection and a specialized installer, AgentVibes now runs Piper TTS via proot-distro with Debian (solving Android's glibc compatibility issues), uses termux-media-player for audio playback, and includes comprehensive Android-specific documentation. Perfect for developers who want to code on-the-go with their Android phone or tablet using the full power of Claude Code and AgentVibes.
1708
-
1709
- **Key Highlights:**
1710
- - ๐Ÿค– **Native Android Support** - Run Claude Code with TTS directly on Android devices via Termux
1711
- - ๐Ÿ“ฆ **Automatic Termux Detection** - AgentVibes auto-detects Android and runs specialized installation
1712
- - ๐ŸŽฏ **Proot-Distro Integration** - Solves glibc compatibility with proot Debian environment
1713
- - ๐Ÿ”Š **Android Audio Playback** - Uses termux-media-player for native Android audio routing
1714
- - ๐Ÿ“š **Comprehensive Documentation** - Complete Android setup guide with troubleshooting and F-Droid instructions
1715
- - โœ… **Full Test Coverage** - All 213 BATS + 38 Node tests passing with Android compatibility
1716
-
1717
- ### โœจ New Features
1718
-
1719
- **Termux Installer (`.claude/hooks/termux-installer.sh`):**
1720
- - New 224-line installer specifically for Android/Termux environments
1721
- - Automatically installs proot-distro with Debian (for glibc compatibility)
1722
- - Downloads and configures Piper TTS binary in proot environment
1723
- - Creates `/usr/bin/piper` wrapper that routes through proot
1724
- - Installs audio dependencies: ffmpeg, sox, bc, termux-api
1725
- - Interactive voice selection with 50+ language options
1726
- - Validates Termux environment before proceeding
1727
-
1728
- **Termux Detection (`src/installer.js`):**
1729
- - New `isTermux()` function checks for `/data/data/com.termux` directory
1730
- - New `detectAndNotifyTermux()` displays Android detection messages
1731
- - Auto-configures piper provider with Termux-compatible voice
1732
- - Shows Termux-specific installation instructions
1733
- - Piper installer automatically redirects to termux-installer.sh on Android
1734
-
1735
- **Audio Processor Updates (`.claude/hooks/audio-processor.sh`):**
1736
- - Detects Termux environment for temp directory selection
1737
- - Uses `${PREFIX}/tmp` on Termux, `/tmp` on standard systems
1738
- - Ensures audio effects work correctly on Android
1739
- - Cross-platform compatibility maintained
1740
-
1741
- **Piper Installer Updates (`.claude/hooks/piper-installer.sh`):**
1742
- - Auto-detects Termux and redirects to specialized installer
1743
- - Shows clear message when routing to Termux-specific setup
1744
-
1745
- **Android Audio Playback (`.claude/hooks/play-tts-piper.sh`):**
1746
- - Detects Android/Termux environment
1747
- - Uses `termux-media-player` instead of `paplay` on Android
1748
- - Audio routes through Android's native media system
1749
-
1750
- ### ๐Ÿ“š Documentation
1751
-
1752
- **New Android Setup Section (`README.md`):**
1753
- - Added "๐Ÿค– Android / Termux" section to System Requirements
1754
- - Complete 3-step installation guide for Android devices
1755
- - Explanation of why Termux needs special handling (bionic vs glibc)
1756
- - Requirements: Termux app from F-Droid, Termux:API, Android 7.0+
1757
- - Audio playback architecture explanation
1758
- - Setup verification commands
1759
- - Troubleshooting table for common issues
1760
- - Clear explanation of why F-Droid version is required (not Google Play)
1761
- - Updated Quick Links table with direct link to Android setup
1762
-
1763
- ### ๐Ÿ› Bug Fixes
1764
-
1765
- - **Test #90 Fix** - Added termux-ssh provider to test cleanup list for "no providers found" edge case
1766
- - **Temp Directory Detection** - Fixed audio-processor.sh defaulting to Termux paths on non-Termux systems
1767
- - **Sonar Compliance** - Added `set -euo pipefail` strict mode to termux-installer.sh for security
1768
-
1769
- ### ๐Ÿ”’ Security & Quality
1770
-
1771
- - โœ… All Sonar quality gates validated
1772
- - โœ… Strict mode (`set -euo pipefail`) on all new bash scripts
1773
- - โœ… No hardcoded credentials
1774
- - โœ… Proper variable quoting and input validation
1775
- - โœ… Cross-platform temp directory handling
1776
- - โœ… All 213 BATS + 38 Node tests passing
1777
-
1778
- ### ๐Ÿ“Š Changes Summary
1779
-
1780
- - **Files Modified:** 7
1781
- - **Lines Added:** +391
1782
- - **Lines Removed:** -8
1783
- - **New Files:** 1 (termux-installer.sh)
1784
- - **Commits:** 8 (5 fixes, 1 feature, 1 docs, 1 merge)
1785
-
1786
- ### ๐ŸŽฏ User Impact
1787
-
1788
- **For Android Users:**
1789
- - Can now run Claude Code directly on Android phones/tablets
1790
- - Full TTS support with 50+ voices and languages
1791
- - No remote server required for basic usage
1792
- - Works offline after initial voice downloads
1793
-
1794
- **For Developers:**
1795
- - Complete mobile development solution (native + SSH)
1796
- - Native Termux for local Android development
1797
- - Termux-SSH provider for remote server connections
1798
- - Seamless integration with existing AgentVibes workflows
1799
-
1800
- **For Existing Users:**
1801
- - Zero breaking changes
1802
- - All existing features work exactly the same
1803
- - New Android support is opt-in via Termux installation
1804
-
1805
- ### ๐Ÿš€ Migration Notes
1806
-
1807
- No migration required! This is a fully backward-compatible minor release.
1808
-
1809
- **To Try Android Support:**
1810
- 1. Install [Termux from F-Droid](https://f-droid.org/en/packages/com.termux/)
1811
- 2. Install [Termux:API](https://f-droid.org/en/packages/com.termux.api/)
1812
- 3. In Termux: `pkg install nodejs-lts`
1813
- 4. Run: `npx agentvibes install`
1814
-
1815
- AgentVibes will auto-detect Termux and run the specialized installer.
1816
-
1817
- ### ๐Ÿ“ฆ Full Changelog
1818
-
1819
- **Feature Commits:**
1820
- - `e9d4cf95` feat: Add Android/Termux support for Piper TTS
1821
-
1822
- **Bug Fix Commits:**
1823
- - `aa4d3cdd` fix: Add termux-ssh provider to test #90 cleanup list
1824
- - `c1b00c6d` fix: Use termux-media-player for audio playback on Android
1825
- - `f96ab89a` fix: Properly detect Termux environment for temp directory
1826
- - `e2efeb06` fix: Add strict mode to termux-installer.sh for Sonar compliance
1827
-
1828
- **Documentation Commits:**
1829
- - `701a9412` docs: Add comprehensive Android/Termux setup section to README
1830
-
1831
- **Merge Commits:**
1832
- - `a5d3f546` Merge feature/android-termux into master
1833
- - `95f04e70` Merge origin/master into feature/pulseaudio-reverse-tunnel
1834
-
1835
- ---
1836
-
1837
- ## ๐Ÿ“ฆ v3.0.0 - Cross-Platform Remote Audio: Termux SSH Provider
1838
-
1839
- **Release Date:** January 8, 2026
1840
-
1841
- ### ๐ŸŽฏ Why v3.0.0?
1842
-
1843
- This major release marks a significant milestone in AgentVibes' evolution, introducing **mobile-first interactive AI conversations**. The termux-ssh provider enables a revolutionary workflow: **have fully interactive, hands-free conversations with Claude Code using just your mobile device**โ€”whether you're coding locally on your laptop with audio routed to your phone, or working on remote servers from anywhere in the world. This architectural breakthrough represents a new paradigm: **"Code with your hands, converse with your voice."**
1844
-
1845
- ### ๐Ÿค– AI Summary
1846
-
1847
- AgentVibes v3.0.0 introduces the termux-ssh TTS provider, enabling **true mobile-first interactive conversations with Claude Code**. Route TTS audio to your Android device via SSHโ€”whether coding locally on your laptop or on remote serversโ€”and have hands-free, voice-driven conversations with Claude using just your phone. This major release includes comprehensive Tailscale VPN setup documentation for internet-wide access, full MCP server integration, and transforms how developers interact with AI assistants. Perfect for developers who want to experience AI conversations naturally through their mobile device while their hands stay on the keyboard.
1848
-
1849
- **Key Highlights:**
1850
- - ๐Ÿ“ฑ **Mobile-First AI Conversations** - Have fully interactive, hands-free conversations with Claude Code using just your Android device
1851
- - ๐Ÿ’ป **Local + Remote Development** - Works for both local coding (laptop โ†’ phone audio) and remote server development
1852
- - ๐ŸŒ **Tailscale Integration** - Comprehensive guide for internet-wide device access without port forwarding or firewall configuration
1853
- - ๐Ÿ”ง **Enhanced Installer** - Interactive SSH host configuration with validation and clear use-case guidance
1854
- - ๐ŸŽฏ **Full MCP Compatibility** - Complete integration with all MCP commands and workflows
1855
- - ๐Ÿ›ก๏ธ **Quality Gates Integration** - Automated security validation in release process
1856
-
1857
- ### ๐ŸŽฅ Demo Video
1858
-
1859
- **Watch it in action:** [Mobile-First AI Conversations with Claude Code](https://youtu.be/ngLiA_KQtTA?si=wTwS4CJidIxWqLIP)
1860
-
1861
- See the termux-ssh provider in actionโ€”fully interactive, hands-free conversations with Claude Code using just your Android device.
1862
-
1863
- ### โœจ New Features
1864
-
1865
- **Termux SSH TTS Provider (`.claude/hooks/play-tts-termux-ssh.sh`):**
1866
- - New TTS provider for Android via SSH connection
1867
- - Routes text to `termux-tts-speak` on remote Android device
1868
- - Configuration priority: env var โ†’ project โ†’ global
1869
- - Secure quote escaping for safe text transmission
1870
- - 196 lines of fully documented code
1871
-
1872
- **Installer Updates (`src/installer.js`):**
1873
- - Added termux-ssh to provider selection menu
1874
- - Interactive SSH host alias configuration with validation
1875
- - Saves host alias to `.claude/termux-ssh-host.txt`
1876
- - Clear use case description: "Only choose if your project is on a remote server and you want audio sent to your Android device"
1877
- - Documentation link to TERMUX_SETUP.md
1878
-
1879
- **TTS Router Updates (`.claude/hooks/play-tts.sh`):**
1880
- - Added termux-ssh provider routing in two locations
1881
- - Full integration with existing provider detection
1882
- - Supports mixed-provider mode (Piper + Termux)
1883
-
1884
- **MCP Server Integration (`mcp-server/server.py`):**
1
+ # AgentVibes Release Notes
2
+
3
+ ## ๐ŸŽ›๏ธ v5.4.0 โ€” TUI Installer, Spinner Fix & Dependency Cleanup
4
+
5
+ **Released:** 2026-04-22
6
+
7
+ ### โœจ New
8
+ - **TUI Installer**: Interactive terminal UI for guided installation โ€” browse voices, configure providers, enable BMAD party mode, all from a beautiful terminal interface
9
+ - **Cross-Platform Spinner Fix**: Resolved `spinner.info is not a function` crash on WSL/Linux that blocked installation
10
+
11
+ ### ๐Ÿ› Bug Fixes
12
+ - **Removed circular self-dependency**: `package.json` was depending on `agentvibes@^3.5.9` (itself), causing npm to shadow the fixed binary with the old buggy one โ€” the silent cause of the spinner crash on repeat installs
13
+ - **Restored background music volume fallback**: `audio-processor.sh` `bg_volume="0.20"` fallback lost in merge was restored
14
+ - **Fixed PROJECT_ROOT detection in `play-tts.sh`**: Walk-up logic was going 2 levels too far, causing TTS to use global `~/.agentvibes` config instead of project config
15
+
16
+ ### ๐Ÿ”ง Technical
17
+ - 706/738 tests passing
18
+
19
+ ---
20
+
21
+ ## โœจ v3.5.10 - Soprano Detection Fixes & Enhanced Installer Features
22
+
23
+ **Release Date:** February 14, 2026
24
+
25
+ ### ๐ŸŽฏ Summary
26
+
27
+ Production release combining critical bug fixes and new installer features. Fixed Soprano TTS detection for pipx installations (the core issue reported by users), resolved 5 execSync API misuse bugs that were breaking Python package detection, and eliminated 100+ lines of code duplication. Introduces new installer features: custom music track support with preview functionality, personality emoji mapping for better visual recognition, and pretext configuration allowing users to customize agent introductions.
28
+
29
+ ### โœจ Key Features & Fixes
30
+
31
+ **๐Ÿ”ง Critical Bug Fixes:**
32
+ - **Soprano TTS Detection:** Fixed detection when installed via pipx (was showing "not installed" despite working)
33
+ - **execSync API Bugs:** Fixed 5 locations using incorrect API signature (array args with execSync)
34
+ - **Code Duplication:** Eliminated 100+ lines of duplicate code between Soprano and Piper validators
35
+ - **API Consistency:** All provider validation functions now return consistent response structures
36
+ - **Python Package Detection:** Fixed broken Python pip detection that was silently failing
37
+
38
+ **๐ŸŽจ New Installer Features:**
39
+ - **Custom Music Tracks:** Users can now upload and preview their own background music
40
+ - **Personality Emojis:** Visual recognition mapping (๐Ÿ˜Š for none, ๐ŸŽญ for dramatic, ๐Ÿ’ for sassy, etc.)
41
+ - **Pretext Configuration:** Custom agent introductions (e.g., "FireBot: " prefix for all messages)
42
+ - **Track Preview:** Audio preview with support for ffplay, sox, and mpv players
43
+
44
+ **๐Ÿ›ก๏ธ Security & Quality:**
45
+ - Improved path traversal protection in provider validation
46
+ - Enhanced error handling and logging
47
+ - Reduced code complexity by 29% through deduplication
48
+ - Test coverage improved: 56.61% โ†’ 63.67%
49
+
50
+ ### ๐Ÿ“Š Technical Details
51
+
52
+ **Soprano Detection Improvements:**
53
+ - Checks command in PATH first (most reliable for pipx)
54
+ - Falls back to ~/.local/bin directory check
55
+ - Checks pipx venv directory for installation
56
+ - Final fallback to Python pip package detection
57
+ - Consistent error messages showing all checked locations
58
+
59
+ **Code Quality Metrics:**
60
+ - File size reduced by 145 lines (-29%)
61
+ - Code duplication eliminated (was ~100 lines)
62
+ - Test coverage improved +7.06%
63
+ - All 114 tests passing
64
+ - Provider validator now 63.67% covered (up from 56.61%)
65
+
66
+ **Installer Enhancements:**
67
+ - Added personality emoji mapping (26 personalities)
68
+ - Custom track upload with validation
69
+ - File type restrictions (.mp3, .wav, .ogg, .m4a)
70
+ - Registry storage in ~/.agentvibes/custom-tracks.json
71
+ - Audio preview before finalizing selection
72
+
73
+ ### ๐Ÿ”’ Security Notes
74
+
75
+ - All spawnSync calls now use correct array argument form
76
+ - Path traversal prevention maintained in all operations
77
+ - HOME injection protection via os.homedir()
78
+ - No hardcoded credentials introduced
79
+ - Input validation for file uploads and track selection
80
+
81
+ ### ๐Ÿ› Known Limitations
82
+
83
+ - Audio preview requires ffplay, sox, or mpv (feature gracefully degrades if unavailable)
84
+ - Custom track registry is stored locally per user
85
+ - Some legacy bash scripts still lack strict mode (pre-existing, low risk)
86
+
87
+ ### ๐Ÿ™ Acknowledgments
88
+
89
+ This release includes fixes identified through adversarial code review, ensuring production-quality reliability and security alignment with CLAUDE.md standards.
90
+
91
+ ---
92
+
93
+ ## ๐Ÿ›ก๏ธ v3.5.8 - Provider Validation Security & UX Improvements
94
+
95
+ **Release Date:** February 12, 2026
96
+
97
+ ### ๐ŸŽฏ Summary
98
+
99
+ Critical security and reliability update for provider detection. Fixes command injection vulnerabilities in validation code, prevents HOME directory injection attacks, and improves UX with explicit provider detection messaging. Soprano TTS installed via pipx is now correctly detected (previously showed "not installed" due to ES module import error). All 8 critical code review issues resolved with comprehensive security hardening and enhanced error reporting.
100
+
101
+ ### โœจ Key Improvements
102
+
103
+ - **๐Ÿ” Security Fixes:** Fixed command injection vulnerability (template strings โ†’ array form), prevented HOME injection attacks, added path traversal protection
104
+ - **โœ… Provider Detection:** Soprano via pipx now correctly detected; added checkedLocations tracking for transparency
105
+ - **๐Ÿ’ฌ Better Messaging:** Explicit "Detected and selected!" confirmation; detailed error messages showing what was checked
106
+ - **๐Ÿงช Test Coverage:** Enhanced tests verify actual detection values, not just types
107
+ - **๐Ÿ› Debugging:** Added [DEBUG] logging for troubleshooting provider issues
108
+
109
+ ### ๐Ÿ”ด Critical Fixes
110
+
111
+ 1. **Command Injection Prevention** - All execSync calls now use array form (security: CLAUDE.md)
112
+ 2. **HOME Directory Injection** - Switched to os.homedir() instead of process.env.HOME
113
+ 3. **Path Traversal Protection** - Added path.resolve() validation for pipx venv directories
114
+
115
+ ### ๐ŸŸก Medium Fixes
116
+
117
+ 4. **Pipx Logic Improved** - Tracks checked locations even on success (transparency)
118
+ 5. **Silent Failures Eliminated** - Added [DEBUG] error logging for diagnostics
119
+ 6. **Test Quality Enhanced** - Verify message content, not just types
120
+ 7. **Documentation** - Added JSDoc comments explaining security-critical imports
121
+ 8. **Error Differentiation** - Better distinction between different failure types
122
+
123
+ ### ๐Ÿ“Š Technical Impact
124
+
125
+ - Soprano detection now works reliably for both pip and pipx installations
126
+ - Reduced false negatives in provider validation
127
+ - Enhanced security posture aligned with CLAUDE.md security mandates
128
+ - Improved debuggability with explicit error messages
129
+
130
+ ---
131
+
132
+ ## ๐Ÿ”ง v3.5.7 - CLI Fix: npx Command Output & Startup Hooks
133
+
134
+ **Release Date:** February 12, 2026
135
+
136
+ Fixes critical bug where `npx agent-vibes install` and other commands produced no output, making CLI unusable. Root cause: bin/agent-vibes used dynamic import without passing arguments to installer.js on local execution. Also removed broken hook configurations (pre_compact.py, notification.ts) that didn't exist and caused startup errors in Claude Code settings.
137
+
138
+ ### ๐ŸŽฏ What's Fixed
139
+
140
+ - **npx agent-vibes now works** - `npx agent-vibes install`, `npx agent-vibes --help`, all commands produce proper output
141
+ - **Startup hook errors gone** - Removed non-existent hook references from settings.json (pre_compact.py, notification.ts)
142
+ - **CLI execution proper** - Both npx and local execution now use execFileSync with proper argument passing
143
+
144
+ ### ๐Ÿš€ Technical Details
145
+
146
+ **Before v3.5.7:**
147
+ ```javascript
148
+ // bin/agent-vibes (local execution path)
149
+ import('../src/installer.js'); // โŒ No args, doesn't await
150
+ ```
151
+
152
+ **After v3.5.7:**
153
+ ```javascript
154
+ // bin/agent-vibes (all execution paths)
155
+ execFileSync('node', [installerPath, ...arguments_], {
156
+ stdio: 'inherit',
157
+ cwd: isNpxExecution ? path.dirname(__dirname) : process.cwd(),
158
+ }); // โœ… Passes args, proper I/O
159
+ ```
160
+
161
+ ---
162
+
163
+ ## ๐Ÿ”ง v3.5.6 - Bug Fix: Bash Hook Parameter Handling
164
+
165
+ **Release Date:** February 11, 2026
166
+
167
+ Fixes critical regression in v3.5.5 where bash hooks failed with unbound variable errors when called with optional parameters under strict mode. Affects `play-tts.sh` and `provider-manager.sh`.
168
+
169
+ ---
170
+
171
+ ## ๐Ÿ“ฆ v3.5.5 - Native Windows Support: Soprano, Piper & SAPI Providers
172
+
173
+ **Release Date:** February 12, 2026
174
+
175
+ ### ๐ŸŽฏ Why v3.5.5?
176
+
177
+ v3.5.5 brings **native Windows support** to AgentVibes with a full-featured PowerShell installer and three TTS providers. Windows users no longer need WSL - AgentVibes runs natively with Soprano (neural), Piper (offline neural), or Windows SAPI (zero-setup) voices. The installer also adds **background music selection** (16 genre tracks), **reverb/audio effects** (via ffmpeg aecho), and **verbosity control** for the TTS experience.
178
+
179
+ ### ๐Ÿš€ Key Highlights
180
+
181
+ #### ๐Ÿ–ฅ๏ธ Native Windows TTS (NEW!)
182
+ - **3 providers**: Soprano (ultra-fast neural), Piper (offline neural), Windows SAPI (built-in)
183
+ - **Beautiful PowerShell installer** with figlet banner and interactive setup
184
+ - **8 hook scripts** for complete TTS functionality on Windows
185
+ - **MCP server** auto-resolves `.sh` to `.ps1` on Windows
186
+ - **46 Windows-specific unit tests** with full coverage
187
+
188
+ #### ๐ŸŽต Background Music Selection
189
+ - **16 genre tracks**: Flamenco, Bachata, Bossa Nova, City Pop, Chillwave, and more
190
+ - **Interactive picker** in the installer with descriptions
191
+ - **ffmpeg mixing**: 2s intro, voice over music, 2s fade-out outro
192
+
193
+ #### ๐ŸŽ›๏ธ Reverb / Audio Effects
194
+ - **5 reverb levels**: Off, Light, Medium, Heavy, Cathedral
195
+ - **ffmpeg aecho filter** (no SOX dependency on Windows)
196
+ - Applied before background music mixing for clean layering
197
+
198
+ #### ๐Ÿ”Š Verbosity Control
199
+ - **3 levels**: High (full reasoning), Medium (key updates), Low (essential only)
200
+ - Integrates with session-start-tts.ps1 protocol instructions
201
+
202
+ ### ๐Ÿค– AI Summary
203
+
204
+ AgentVibes v3.5.5 delivers native Windows support with a polished PowerShell installer offering three TTS providers (Soprano neural, Piper offline, Windows SAPI), background music selection from 16 genre tracks, reverb effects via ffmpeg aecho filter, and verbosity control. The release includes 8 Windows hook scripts, MCP server platform detection for automatic .sh-to-.ps1 resolution, and 46 new unit tests. Security hardening adds path traversal prevention with regex allowlisting and path containment checks, reverb config allowlist validation, and strict mode compliance across all scripts. Cross-platform test fixes ensure the full 93-test suite passes on both Windows and Unix.
205
+
206
+ ---
207
+
208
+ ## โœจ New Features
209
+
210
+ ### Native Windows TTS
211
+ - Full PowerShell installer (`setup-windows.ps1`) with figlet banner and interactive UX
212
+ - Soprano provider (`play-tts-soprano.ps1`) with Gradio WebUI integration
213
+ - Piper provider (`play-tts-windows-piper.ps1`) with auto-download of voices from HuggingFace
214
+ - Windows SAPI provider (`play-tts-windows-sapi.ps1`) with zero-setup built-in voices
215
+ - TTS router (`play-tts.ps1`) with mute support, background music mixing, and reverb
216
+ - Provider manager, voice manager, audio cache utils, and session-start hook scripts
217
+ - MCP server `.sh` to `.ps1` auto-resolution on Windows
218
+
219
+ ### Installer Enhancements
220
+ - Background music selection with 16 genre tracks and interactive picker
221
+ - Reverb/audio effects selection (Off/Light/Medium/Heavy/Cathedral)
222
+ - Verbosity control (High/Medium/Low) for TTS protocol instructions
223
+ - Updated completion screen showing all 4 settings (provider, background, reverb, verbosity)
224
+
225
+ ---
226
+
227
+ ## ๐Ÿ› Bug Fixes
228
+
229
+ ### Security Fixes
230
+ - Fix path traversal in background music config reader (regex allowlist + path containment)
231
+ - Add allowlist validation for reverb-level.txt config (prevent invalid values)
232
+ - Add `set -euo pipefail` strict mode to `play-tts.sh` for Sonar compliance
233
+
234
+ ### Cross-Platform Fixes
235
+ - Fix self-copy error when setup-windows.ps1 runs from project root
236
+ - Fix test executable permission checks on Windows (skip Unix mode bits)
237
+ - Fix test path separator comparison in uninstall test (use `path.join` not hardcoded `/`)
238
+
239
+ ---
240
+
241
+ ## ๐Ÿ—๏ธ Improvements
242
+
243
+ ### Code Quality
244
+ - Reverb config uses switch-as-allowlist pattern - file content never flows into commands
245
+ - All SoundPlayer instances wrapped in try/finally for resource disposal
246
+ - Environment variable cleanup (`AGENTVIBES_NO_PLAY`) on all exit paths
247
+ - Input validation with regex + range checks for all installer prompts
248
+
249
+ ### Testing
250
+ - 46 new Windows-specific unit tests (hook scripts, providers, security, encoding)
251
+ - 3 cross-platform test fixes for Windows compatibility
252
+ - Full suite: 93 Node tests passing on Windows
253
+
254
+ ---
255
+
256
+ ## ๐Ÿ“Š Statistics
257
+
258
+ - **7 commits** since v3.4.1
259
+ - **3,769 lines added**, 211 removed across 24 files
260
+ - **9 new PowerShell scripts** for Windows TTS
261
+ - **93 tests passing** (46 Windows + 47 cross-platform)
262
+ - **24/24 Sonar quality gates** passing
263
+ - **Security score**: All path traversal and injection vectors reviewed
264
+
265
+ ---
266
+
267
+ ## ๐Ÿ”ง Technical Details
268
+
269
+ ### Files Added
270
+ - `.claude/hooks-windows/play-tts.ps1`: TTS router with reverb and background music
271
+ - `.claude/hooks-windows/play-tts-soprano.ps1`: Soprano neural TTS provider
272
+ - `.claude/hooks-windows/play-tts-windows-piper.ps1`: Piper offline TTS provider
273
+ - `.claude/hooks-windows/play-tts-windows-sapi.ps1`: Windows SAPI built-in voices
274
+ - `.claude/hooks-windows/provider-manager.ps1`: Provider switching
275
+ - `.claude/hooks-windows/voice-manager-windows.ps1`: Voice browsing and selection
276
+ - `.claude/hooks-windows/audio-cache-utils.ps1`: Cache management
277
+ - `.claude/hooks-windows/session-start-tts.ps1`: Auto-activates TTS on Claude start
278
+ - `setup-windows.ps1`: Full Windows installer with 4 interactive sections
279
+ - `test/unit/windows-tts.test.js`: 46 Windows-specific unit tests
280
+
281
+ ### Breaking Changes
282
+ None - all changes are backward compatible. Existing Unix/macOS installations are unaffected.
283
+
284
+ ---
285
+
286
+ ## ๐ŸŽ“ Migration Notes
287
+
288
+ ### For New Windows Users
289
+ 1. Run `npx agentvibes install` (Node.js) or `.\setup-windows.ps1` (PowerShell)
290
+ 2. Follow the interactive setup
291
+ 3. Choose provider (Soprano, Piper, or SAPI)
292
+ 4. Select background music, reverb, and verbosity
293
+ 5. TTS works automatically in Claude Code sessions
294
+
295
+ ### For Existing Unix/macOS Users
296
+ - No changes required - your setup continues working
297
+ - All Unix bash hooks remain untouched
298
+ - Only `play-tts.sh` gained `set -euo pipefail` (strict mode)
299
+
300
+ ---
301
+
302
+ ## ๐Ÿ™ Acknowledgments
303
+
304
+ ### Project Lead
305
+ - **[@paulpreibisch](https://github.com/paulpreibisch)** (Paul Preibisch) โ€” Creator and maintainer of AgentVibes
306
+
307
+ ### Community Contributors
308
+ - **[@nathanchase](https://github.com/nathanchase)** โ€” For contributing the Soprano TTS provider in v3.4.0, whose ultra-fast neural engine is now one of the three Windows-native providers
309
+ - **[@alexeyv](https://github.com/alexeyv)** โ€” For suggesting native Windows support and recommending Windows SAPI as a zero-dependency provider
310
+ - **[@bmadcode](https://github.com/bmadcode)** (Brian Madison) โ€” Creator of the [BMAD Method](https://github.com/bmadcode/BMAD-METHOD), used daily for planning and building AgentVibes features
311
+
312
+ ### Quality Assurance
313
+ - **Adversarial Security Review**: Path traversal, injection, and resource disposal all validated
314
+ - **Testing**: 93/93 tests passing (100% suite coverage)
315
+ - **Quality Gates**: 24/24 Sonar requirements validated
316
+ - **Co-Authored-By**: Claude Opus 4.6
317
+
318
+ ---
319
+
320
+ **Full Changelog**: https://github.com/paulpreibisch/AgentVibes/compare/v3.4.1...v3.5.5
321
+
322
+ ---
323
+
324
+ ## ๐Ÿ“ฆ v3.4.0 - Soprano TTS, Security Hardening & Environment Intelligence
325
+
326
+ **Release Date:** February 10, 2026
327
+
328
+ ### ๐ŸŽฏ Why v3.4.0?
329
+
330
+ v3.4.0 introduces **Soprano TTS** - an ultra-fast neural TTS provider with GPU acceleration, comprehensive **security hardening** across the codebase, and **intelligent environment detection** that recognizes PulseAudio tunnels for remote audio scenarios.
331
+
332
+ ### ๐Ÿš€ Key Highlights
333
+
334
+ #### โšก Soprano TTS Provider (NEW!)
335
+ - **80M parameter neural model** with premium female English voice
336
+ - **20x CPU speed** (vs Piper), **2000x GPU speed** with CUDA
337
+ - **3 synthesis modes**: WebUI (Gradio), API (OpenAI-compatible), CLI (fallback)
338
+ - **Auto-detection**: Checks for running Gradio server, falls back gracefully
339
+ - **<1GB memory footprint** - perfect for low-RAM systems
340
+ - **Provider-aware voice management**: Auto-selects single voice, shows model specs
341
+ - **Thanks to [@nathanchase](https://github.com/nathanchase)** for this contribution! ([see acknowledgments](#-acknowledgments))
342
+
343
+ #### ๐Ÿ›ก๏ธ Security Hardening (9.5/10 Score)
344
+ - **Timeouts on system commands**: Prevents installer hangs (nvidia-smi, sysctl, meminfo)
345
+ - **Bounds checking**: Validates array access before parsing system output
346
+ - **NaN validation**: Prevents crashes from malformed memory/GPU detection
347
+ - **Case-insensitive checks**: PulseAudio tunnel detection handles TCP: and tcp:
348
+ - **Code duplication eliminated**: Extracted PulseAudio helper function (DRY)
349
+
350
+ #### ๐ŸŒ Environment Intelligence
351
+ - **PulseAudio tunnel detection**: Recognizes `PULSE_SERVER=tcp:*` as working audio
352
+ - **Context-aware messaging**:
353
+ - "๐ŸŒ PulseAudio Tunnel Detected!" for SSH + tunnel setups
354
+ - "๐Ÿ”Š Audio Output Detected!" for local speakers
355
+ - Distinguishes local/tunnel/hybrid configurations
356
+ - **Smart environment classification**:
357
+ - DESKTOP: Local audio OR active PulseAudio tunnel
358
+ - VOICELESS: No audio AND no tunnel
359
+ - PHONE: Termux/Android devices
360
+
361
+ #### ๐ŸŽค Installer Enhancements
362
+ - **Provider-aware voice pages**: Soprano shows model specs, Piper shows 50+ voices
363
+ - **Auto-selection logic**: Soprano (1 voice) auto-selects, no manual choice needed
364
+ - **GPU-based recommendations**: "Your GPU will run Soprano 2000x faster!"
365
+ - **RAM-based suggestions**: Low memory systems see "Soprano uses <1GB" message
366
+ - **Better RAM display**: Shows "512MB" instead of "0GB" for sub-1GB systems
367
+
368
+ ### ๐Ÿค– AI Summary
369
+
370
+ AgentVibes v3.4.0 brings Soprano TTS - an 80M parameter neural provider offering 20x CPU and 2000x GPU acceleration with sub-1GB memory footprint - plus comprehensive security hardening (timeouts, bounds checking, NaN validation) and intelligent environment detection that recognizes PulseAudio tunnels as working audio for remote scenarios. The enhanced installer provides context-aware messaging distinguishing local speakers from SSH tunnels, GPU-based provider recommendations (Soprano for CUDA users, macOS Say for Apple, Piper for versatility), and provider-specific voice pages that auto-select Soprano's single voice while showcasing model specifications. This release achieves a 9.5/10 security score through systematic defensive programming, making AgentVibes production-ready for enterprise deployments while expanding TTS provider options for diverse hardware configurations.
371
+
372
+ ---
373
+
374
+ ## โœจ New Features
375
+
376
+ ### Soprano TTS Provider
377
+ - Add Soprano TTS provider script with 3 synthesis modes (WebUI, API, CLI) (#95)
378
+ - Integrate Soprano into TTS router and provider manager
379
+ - Add soprano-gradio-synth.py helper for WebUI/SSE protocol
380
+ - Provider-aware voice selection page with model specifications
381
+ - Auto-select single Soprano voice with performance details
382
+
383
+ ### Installer Intelligence
384
+ - Add `detectSystemCapabilities()` for GPU/RAM detection
385
+ - Add `hasPulseAudioTunnel()` helper function
386
+ - Context-aware audio detection messaging (tunnel vs local)
387
+ - GPU-based provider ordering (Soprano first for CUDA users)
388
+ - RAM-based recommendations (<4GB systems see Soprano first)
389
+ - Provider-specific intro messages (Soprano vs Piper vs macOS)
390
+
391
+ ### Environment Detection
392
+ - PulseAudio tunnel recognition via PULSE_SERVER env var
393
+ - Case-insensitive TCP protocol detection
394
+ - Smart DESKTOP classification (local audio OR tunnel)
395
+ - Improved VOICELESS detection (no audio AND no tunnel)
396
+
397
+ ---
398
+
399
+ ## ๐Ÿ› Bug Fixes
400
+
401
+ ### Security Fixes
402
+ - Add 5s timeout to nvidia-smi to prevent GPU detection hangs
403
+ - Add 3s timeout to sysctl/meminfo to prevent memory detection hangs
404
+ - Add bounds checking before parsing sysctl output (macOS)
405
+ - Add bounds checking before parsing /proc/meminfo (Linux)
406
+ - Add NaN validation for parseInt() memory size parsing
407
+ - Fix case sensitivity in PULSE_SERVER detection (handles TCP: and tcp:)
408
+
409
+ ### Test Fixes
410
+ - Fix provider-manager test #90: Add soprano and ssh-remote to cleanup list
411
+ - Ensure zero-provider edge case properly simulates empty state
412
+
413
+ ### User Experience
414
+ - Fix RAM display for <1GB systems (show "512MB" not "0GB")
415
+ - Fix PulseAudio selection triggering wrong setup flow
416
+ - Separate PulseAudio tunnel setup from SSH receiver setup
417
+
418
+ ---
419
+
420
+ ## ๐Ÿ—๏ธ Improvements
421
+
422
+ ### Code Quality
423
+ - Extract PulseAudio detection to helper function (DRY principle)
424
+ - Implement system capabilities caching (eliminates duplicate calls)
425
+ - Add comprehensive error handling in detectSystemCapabilities()
426
+ - Improve code comments for security-critical sections
427
+
428
+ ### Performance
429
+ - Cache system detection results (prevents duplicate nvidia-smi calls)
430
+ - Add timeouts to prevent indefinite hangs
431
+ - Optimize provider detection with early returns
432
+
433
+ ### Documentation
434
+ - Add comprehensive commit message documenting all changes
435
+ - Document security improvements (timeouts, bounds checking, NaN validation)
436
+ - Explain PulseAudio tunnel detection architecture
437
+ - Detail environment classification logic
438
+
439
+ ---
440
+
441
+ ## ๐Ÿ“Š Statistics
442
+
443
+ - **91 commits** since v3.3.0
444
+ - **817 lines added** in merge to master
445
+ - **6 files modified** in core integration
446
+ - **260 tests passing** (213 BATS + 47 Node)
447
+ - **Security score**: 7.5/10 โ†’ 9.5/10
448
+ - **Test coverage**: 100% pass rate
449
+
450
+ ---
451
+
452
+ ## ๐Ÿ”ง Technical Details
453
+
454
+ ### Files Modified
455
+ - `src/installer.js`: +335 lines (security fixes, environment detection, Soprano integration)
456
+ - `test/unit/provider-manager.bats`: +4 lines (fix edge case test)
457
+ - `.claude/hooks/play-tts-soprano.sh`: +320 lines (new provider)
458
+ - `.claude/hooks/soprano-gradio-synth.py`: +139 lines (new helper)
459
+ - `.claude/hooks/provider-manager.sh`: +17 lines (Soprano support)
460
+ - `.claude/hooks/play-tts.sh`: +6 lines (route to Soprano)
461
+
462
+ ### Breaking Changes
463
+ None - all changes are backward compatible.
464
+
465
+ ### Dependencies
466
+ - **New**: `soprano-tts` (Python package, optional)
467
+ - **Recommended**: CUDA-capable GPU for 2000x speedup (optional)
468
+ - **Compatible**: Works on CPU-only systems (20x vs Piper)
469
+
470
+ ---
471
+
472
+ ## ๐ŸŽ“ Migration Notes
473
+
474
+ ### For New Users
475
+ 1. Run `npx agentvibes install`
476
+ 2. Installer auto-detects your hardware (GPU, RAM, platform)
477
+ 3. Soprano appears as option if you have working audio
478
+ 4. Select Soprano for ultra-fast TTS with GPU acceleration
479
+
480
+ ### For Existing Users
481
+ 1. Update: `npx agentvibes update`
482
+ 2. Switch provider: `/agent-vibes:provider switch soprano`
483
+ 3. Test: `/agent-vibes:sample soprano-default`
484
+ 4. Optionally install soprano-tts: `pip install soprano-tts`
485
+
486
+ ### PulseAudio Tunnel Users
487
+ - Installer now auto-detects your tunnel configuration
488
+ - Shows "๐ŸŒ PulseAudio Tunnel Detected!" instead of "speakers"
489
+ - Provides DESKTOP mode options (Soprano, Piper, macOS Say)
490
+ - No manual configuration needed
491
+
492
+ ---
493
+
494
+ ## ๐Ÿ™ Acknowledgments
495
+
496
+ ### Special Thanks
497
+
498
+ **๐ŸŽ‰ [@nathanchase](https://github.com/nathanchase)** - For contributing the Soprano TTS Provider integration (PR #95)! Nathan's work brings ultra-fast neural TTS with GPU acceleration to AgentVibes, offering 20x CPU and 2000x GPU performance improvements. The comprehensive integration includes WebUI, API, and CLI synthesis modes with intelligent auto-detection and graceful fallback. Thank you for this outstanding contribution! ๐Ÿš€
499
+
500
+ ### Quality Assurance
501
+
502
+ - **Security Review**: Adversarial code review achieved 9.5/10 score
503
+ - **Testing**: All 260 tests pass (100% suite coverage)
504
+ - **Quality Gates**: All Sonar requirements validated
505
+ - **Co-Authored-By**: Claude Sonnet 4.5
506
+
507
+ ---
508
+
509
+ ## ๐Ÿ“š Additional Resources
510
+
511
+ - [Soprano TTS Documentation](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/providers.md#soprano-tts)
512
+ - [PulseAudio Tunnel Setup](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/SSH_REMOTE_SETUP.md)
513
+ - [Security Hardening Guide](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/security-hardening-guide.md)
514
+ - [Provider Comparison](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/providers.md)
515
+
516
+ ---
517
+
518
+ **Full Changelog**: https://github.com/paulpreibisch/AgentVibes/compare/v3.3.0...v3.4.0
519
+
520
+ ---
521
+
522
+ ## ๐Ÿ“ฆ v3.3.0 - Remote TTS, Smart Installer, OpenClaw Receiver & Cache Management
523
+
524
+ **Release Date:** February 5, 2026
525
+
526
+ ### ๐ŸŽฏ Why v3.3.0?
527
+
528
+ v3.3.0 transforms AgentVibes into a **universal TTS platform** for any environment:
529
+
530
+ - **SSH-Remote Provider** - Generate TTS on servers, receive audio on your phone/computer
531
+ - **Termux/Android Support** - Native Piper TTS on mobile devices
532
+ - **OpenClaw Integration** - Turn voiceless servers into Siri-like conversational AI
533
+ - **AgentVibes Receiver** - Receive and play audio from remote servers on your device
534
+ - **Smart Installer** - Auto-detects your environment (voiceless, GUI, Termux, SSH)
535
+ - **Intelligent Cache Management** - Real-time tracking and auto-cleanup prevents disk bloat
536
+
537
+ #### ๐ŸŒ Real-World Use Case: OpenClaw + AgentVibes Receiver
538
+
539
+ You deploy OpenClaw on a voiceless Mac mini (or remote server) where users message you via WhatsApp, Telegram, or Discord. With v3.3.0:
540
+
541
+ **Before AgentVibes Receiver:**
542
+ - User messages: "Tell me a joke"
543
+ - Mac mini processes request
544
+ - Text response appears in chat
545
+ - ๐Ÿ˜ž No audio - silent experience
546
+
547
+ **After AgentVibes Receiver:**
548
+ 1. **Install AgentVibes** on your Mac mini (or remote server)
549
+ 2. **Install AgentVibes Receiver** on your phone/iPad/laptop
550
+ 3. **Connect via Tailscale** (one-time setup)
551
+ 4. **User messages:** "Tell me a joke"
552
+ 5. **Mac mini generates TTS** with your configured voice
553
+ 6. **Audio streams to your device** via SSH tunnel
554
+ 7. **Your speakers play:** ๐Ÿ”Š "Why did the AI go to school? To improve its learning model!"
555
+ 8. **User in WhatsApp also hears** the audio playing (Siri-like experience)
556
+
557
+ Result: OpenClaw transforms from **silent text AI** โ†’ **Conversational AI with voice**
558
+
559
+ Perfect for:
560
+ - ๐Ÿ–ฅ๏ธ Mac mini with OpenClaw
561
+ - ๐Ÿ–ฅ๏ธ Remote servers (AWS, DigitalOcean, Linode)
562
+ - ๐Ÿ—๏ธ Container deployments (Docker)
563
+ - ๐Ÿ”ง WSL (Windows Subsystem for Linux)
564
+ - ๐Ÿ“ฑ Any voiceless environment needing audio
565
+
566
+ ### ๐Ÿค– AI Summary
567
+
568
+ AgentVibes v3.3.0 unleashes the platform across new frontiers: remote servers via SSH-PulseAudio tunneling, Android/Termux environments with native Piper support, and OpenClaw (formerly Clawdbot) multi-agent orchestration. The redesigned smart installer detects your environment (voiceless, GUI, SSH, Termux) and shows only relevant options, plus optional BMAD personality injection for advanced users. Every TTS output now displays real-time cache metrics (file count/size with dynamic colors) plus intelligent size-based auto-cleanup that deletes oldest files when the cache exceeds threshold. The release includes comprehensive TTS queue management to prevent audio overlap, audio effects support across all providers, and full MCP tool integration for programmatic control. This release transforms AgentVibes into a universal TTS platform.
569
+
570
+ **Key Highlights:**
571
+ - ๐ŸŒ **SSH-Remote TTS** - Remote device playback via PulseAudio tunneling (servers, containers, WSL)
572
+ - ๐Ÿ“ฑ **Android/Termux Support** - Native Piper TTS on Android with termux-media-player integration
573
+ - ๐Ÿค– **OpenClaw Receiver** (formerly Clawdbot) - AgentVibes Receiver for receiving TTS from voiceless servers
574
+ - ๐Ÿง  **Smart Installer** - Voiceless environment detection + personality injection for BMAD
575
+ - ๐Ÿ“Š **Real-Time Cache Tracking** - File count and size on every output with dynamic colors
576
+ - ๐Ÿงน **Intelligent Auto-Cleanup** - Size-based threshold (15MB default) prevents storage bloat
577
+ - ๐ŸŽต **Queue Management** - Prevents TTS audio overlap via centralized queue system
578
+ - โš™๏ธ **Audio Effects** - Full support across SSH-remote, Termux-ssh, and local providers
579
+ - ๐Ÿ“ **Uninstall Command** - Comprehensive cleanup with full documentation
580
+ - โœ… **96 Commits** - Massive feature expansion with 213 BATS tests passing
581
+
582
+ ### โœจ New Features
583
+
584
+ #### ๐ŸŒ Remote SSH TTS Support
585
+
586
+ **SSH-Remote Provider:**
587
+ - Play TTS on remote servers via SSH + PulseAudio tunneling
588
+ - Zero-dependency for audio output (uses PulseAudio network tunnel)
589
+ - Perfect for deployed Claude Code on servers, containers, WSL
590
+ - Auto-configuration of PulseAudio TCP module
591
+ - Fallback to local playback if SSH unavailable
592
+ - Full compatibility with all voice selection and audio effects
593
+
594
+ **SSH-PulseAudio Integration:**
595
+ - Automatic SSH connection detection and setup
596
+ - Secure TCP tunnel for audio stream transmission
597
+ - Support for both interactive and batch TTS operations
598
+ - Persistent audio configuration per SSH session
599
+
600
+ #### ๐Ÿ“ฑ Android/Termux Support
601
+
602
+ **Termux-SSH Provider:**
603
+ - Native Piper TTS on Android via Termux environment
604
+ - Uses termux-media-player for audio playback
605
+ - Full voice selection and effects support
606
+ - Automatic temp directory detection
607
+ - Integration with Tailscale for secure remote access
608
+ - Comprehensive setup guide with QR codes
609
+
610
+ **Android Installation:**
611
+ - Self-contained Termux installer script
612
+ - One-command setup: `curl https://agentvibes.org/install-android | bash`
613
+ - Automatic dependency detection and installation
614
+ - Piper voice download management
615
+
616
+ #### ๐ŸŽ™๏ธ OpenClaw Integration & AgentVibes Receiver
617
+
618
+ **What is AgentVibes Receiver?**
619
+
620
+ AgentVibes Receiver is a **lightweight audio client** that receives and plays TTS audio from remote servers where OpenClaw is installed. It runs on your phone, tablet, or personal computer and connects to voiceless servers via SSH tunnel.
621
+
622
+ **The Problem It Solves:**
623
+ - OpenClaw running on Mac mini/remote server has no audio output
624
+ - Users message via WhatsApp/Telegram/Discord - get text responses only
625
+ - ๐Ÿ˜ž No voice = Less engaging AI experience
626
+
627
+ **AgentVibes Receiver Solution:**
628
+ 1. **Lightweight client** runs on your device (phone/tablet/laptop)
629
+ 2. **SSH tunnel** securely connects to your voiceless server
630
+ 3. **Audio streams** from server to your device via PulseAudio
631
+ 4. **Auto-plays** on your speakers when OpenClaw responds
632
+ 5. **Siri-like experience** - Text + Voice in one flow
633
+
634
+ **How It Works:**
635
+
636
+ ```
637
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
638
+ โ”‚ Your Mac mini / Server โ”‚
639
+ โ”‚ (OpenClaw + AgentVibes) โ”‚
640
+ โ”‚ โ”œโ”€ No audio output โ”‚
641
+ โ”‚ โ”œโ”€ Generates TTS โ”‚
642
+ โ”‚ โ””โ”€ Sends via SSH tunnel โ”‚
643
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
644
+ โ†“ SSH Tunnel (encrypted)
645
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
646
+ โ”‚ Your Phone / Laptop โ”‚
647
+ โ”‚ (AgentVibes Receiver) โ”‚
648
+ โ”‚ โ”œโ”€ Receives audio stream โ”‚
649
+ โ”‚ โ”œโ”€ Plays on speakers โ”‚
650
+ โ”‚ โ””โ”€ You hear OpenClaw speak โ”‚
651
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
652
+ ```
653
+
654
+ **Example Flow:**
655
+ ```
656
+ WhatsApp: "Tell me a joke"
657
+ โ†“
658
+ Mac mini: Processes with Claude
659
+ โ†“
660
+ Generates TTS: "Why did the AI... [audio file]"
661
+ โ†“ SSH tunnel
662
+ Your Phone: Plays audio ๐Ÿ”Š
663
+ โ†“
664
+ You hear: "Why did the AI go to school?"
665
+ ```
666
+
667
+ **AgentVibes Receiver Features:**
668
+ - **One-Time Setup** - Pair with server via SSH key
669
+ - **Automatic Connection** - Reconnects if interrupted
670
+ - **Real-Time Streaming** - Low latency audio playback
671
+ - **SSH Encryption** - Secure tunnel for audio
672
+ - **Tailscale Support** - Easy VPN for remote servers
673
+ - **Multiple Servers** - Connect to different OpenClaw instances
674
+ - **Voice Control** - Full voice selection on the server side
675
+ - **Cache Metrics** - Monitor audio generation and cleanup
676
+
677
+ **OpenClaw Skill Integration:**
678
+ - Installed automatically with AgentVibes on OpenClaw server
679
+ - Full feature access:
680
+ - Voice selection (50+ voices)
681
+ - Personality/sentiment (sarcastic, flirty, etc.)
682
+ - Audio effects (reverb, echo, pitch)
683
+ - Speech speed (0.5x - 3.0x)
684
+ - Language translation (speak in different languages)
685
+ - Real-time cache tracking
686
+ - Automatic cleanup of old audio files
687
+
688
+ #### ๐Ÿง  Smart Installer Enhancements
689
+
690
+ **Voiceless Environment Detection:**
691
+ - Auto-detects if GUI audio is unavailable (headless servers, containers)
692
+ - Offers SSH-remote TTS as alternative for voiceless environments
693
+ - Prevents installation of unnecessary audio dependencies
694
+
695
+ **Personality Injection (BMAD):**
696
+ - Interactive prompt during install for BMAD users
697
+ - Optional TTS personality configuration
698
+ - Sentiment/personality selection built into setup flow
699
+ - Skipped for non-BMAD environments
700
+
701
+ **Provider Auto-Selection:**
702
+ - Intelligent detection of available providers:
703
+ - macOS Say (macOS systems)
704
+ - Piper TTS (all systems)
705
+ - SSH-remote (if SSH available)
706
+ - Termux-ssh (Android/Termux)
707
+ - Shows only relevant providers in installation
708
+
709
+ **Better UX:**
710
+ - Clear descriptions of each provider
711
+ - Setup URLs for complex providers (Tailscale)
712
+ - Comprehensive help text for each option
713
+ - Git log integration for recent changes
714
+
715
+ #### ๐Ÿ“Š Real-Time TTS Cache Tracking & Intelligent Auto-Cleanup
716
+
717
+ **Why Cache Management Matters:**
718
+ - TTS audio files accumulate quickly
719
+ - Server deployments can run out of disk space silently
720
+ - Users have no visibility into cache size or cleanup status
721
+ - Manual cleanup is inconvenient and error-prone
722
+
723
+ **Cache Display on Every Output:**
724
+ Every time you generate TTS, you see real-time cache metrics:
725
+ ```
726
+ ๐Ÿ’พ Saved to: /home/user/.claude/audio/tts-1770274925.wav ๐Ÿ“ฆ 28 20.9MB ๐Ÿงน[15mb]
727
+ ```
728
+
729
+ What you see:
730
+ - ๐Ÿ’พ **Full path** - Clickable file for replay or sharing
731
+ - ๐Ÿ“ฆ **28** - File count in cache
732
+ - **20.9MB** - Total cache size (color-coded):
733
+ - ๐ŸŸข Green: <500MB
734
+ - ๐ŸŸก Yellow: 500MB-3GB
735
+ - ๐Ÿ”ด Red: >3GB
736
+ - ๐Ÿงน **[15mb]** - Auto-cleanup threshold
737
+
738
+ **Intelligent Size-Based Auto-Cleanup:**
739
+ - Deletes oldest files when cache exceeds threshold (default: 15MB)
740
+ - Silent operation (no blocking prompts)
741
+ - Write-lock protection prevents conflicts with TTS generation
742
+ - Respects active TTS (won't delete while generating)
743
+
744
+ **Configuration:**
745
+ ```bash
746
+ # Per-project threshold override
747
+ echo "50" > .claude/tts-auto-clean-threshold.txt # 50MB limit
748
+
749
+ # Or disable cleanup
750
+ echo "0" > .claude/tts-auto-clean-threshold.txt # Disable
751
+ ```
752
+
753
+ **Manual Cleanup:**
754
+ ```bash
755
+ # Non-interactive cleanup
756
+ /agent-vibes:clean
757
+
758
+ # Or programmatically via MCP
759
+ await agent_vibes.clean_audio_cache()
760
+ ```
761
+
762
+ #### ๐ŸŽต TTS Queue Management
763
+
764
+ **Overlap Prevention:**
765
+ - Centralized queue system for TTS operations
766
+ - Prevents simultaneous audio playback
767
+ - Critical for Clawdbot multi-agent scenarios
768
+ - Atomic queue operations ensure consistency
769
+
770
+ **Queue Integration:**
771
+ - Automatic in OpenClaw Receiver
772
+ - Optional in standalone environments
773
+ - Fallback to sequential playback
774
+
775
+ #### โš™๏ธ Audio Effects Across All Providers
776
+
777
+ **Effects Support:**
778
+ - Reverb, echo, pitch, EQ available
779
+ - SSH-remote provider: Full effects support
780
+ - Termux-ssh provider: Full effects support
781
+ - All local providers: Unchanged effects behavior
782
+
783
+ **Configuration:**
784
+ - Per-session override via environment variables
785
+ - Project-local settings via config files
786
+ - Persistent across TTS operations
787
+
788
+ #### ๐Ÿ“ Comprehensive Uninstall Command
789
+
790
+ **`/agent-vibes:uninstall` Skill:**
791
+ - Complete removal of AgentVibes and dependencies
792
+ - Interactive prompts for user confirmation
793
+ - Option to preserve configuration
794
+ - Detailed removal logs
795
+ - Full documentation included
796
+
797
+ ### ๐Ÿ› Bug Fixes
798
+
799
+ - **TTS Overlap** - Fixed audio overlapping via queue management
800
+ - **Termux Audio** - Proper detection and use of termux-media-player
801
+ - **SSH Detection** - Improved SSH environment detection logic
802
+ - **Race Conditions** - Write-lock mechanism prevents cleanup conflicts
803
+ - **Temp Directory** - Proper Termux temp directory handling
804
+ - **Color Codes** - Fixed GOLD color (256-color \033[38;5;226m)
805
+ - **Stat Compatibility** - BSD/GNU stat detection with proper output suppression
806
+ - **Syntax Validation** - Fixed installer.js syntax errors
807
+ - **Coverage Testing** - Proper coverage file generation for CI/CD
808
+
809
+ ### ๐Ÿ”’ Security & Quality
810
+
811
+ - **No Hardcoded Credentials** - All secure operations use environment variables
812
+ - **SSH Safety** - Secure PulseAudio tunnel authentication
813
+ - **Atomic Operations** - Queue and receiver use atomic file operations
814
+ - **Input Validation** - All external inputs validated
815
+ - **Pre-existing Limitations** - TTS scripts lack `set -euo pipefail` (pre-existing)
816
+ - **Sonar Compliance** - Security hotspots resolved, quality gates passing
817
+ - **Test Coverage** - 213 BATS tests + 47 Node unit tests
818
+
819
+ ### โœ… Testing & Validation
820
+
821
+ - **213 BATS Tests** - Core functionality validation
822
+ - **47 Node Tests** - JavaScript/installer validation
823
+ - **Cross-Platform** - Piper, macOS, SSH-remote, Termux-ssh
824
+ - **Environment Tests** - Voiceless, GUI, SSH, Termux detection
825
+ - **Audio Effects** - All providers tested
826
+ - **Backwards Compatible** - No breaking changes to existing code
827
+
828
+ ---
829
+
830
+ ## ๐Ÿ“ฆ v3.2.0 - Clawdbot Integration: AI Assistants on Any Messenger
831
+
832
+ **Release Date:** January 27, 2026
833
+
834
+ ### ๐ŸŽฏ Why v3.2.0?
835
+
836
+ This minor release adds **native Clawdbot integration** to AgentVibes, bringing professional TTS to the revolutionary AI assistant you can access via any instant messenger. Clawdbot connects Claude AI to WhatsApp, Telegram, Discord, and moreโ€”and now with AgentVibes, your Clawdbot can speak with 50+ professional voices in 30+ languages. This release also includes SonarCloud quality gate improvements and CI/CD workflow enhancements.
837
+
838
+ ### ๐Ÿค– AI Summary
839
+
840
+ AgentVibes v3.2.0 introduces seamless integration with Clawdbot, the revolutionary AI assistant accessible via any instant messenger. With this release, Clawdbot users get professional TTS with 50+ voices, remote SSH audio support for server deployments, and zero-configuration setupโ€”just install AgentVibes and the Clawdbot skill is ready. The release also includes quality improvements: SonarCloud workflow fixes, enhanced documentation for disabling quality gate checks, and improved test coverage validation.
841
+
842
+ **Key Highlights:**
843
+ - ๐Ÿค– **Clawdbot Integration** - Native TTS support for Clawdbot AI assistant framework
844
+ - ๐Ÿ’ฌ **Messenger Platforms** - Works with WhatsApp, Telegram, Discord via Clawdbot
845
+ - ๐Ÿ”Š **Remote SSH Audio** - Perfect for Clawdbot on remote servers with PulseAudio tunneling
846
+ - ๐Ÿ“ฆ **Simple Install** - Just `npx agentvibes install` and it works
847
+ - ๐Ÿ›ก๏ธ **SonarCloud Fixes** - Quality gate workflow improvements and documentation
848
+ - โœ… **Full Test Coverage** - All 213 BATS + 47 Node tests passing
849
+
850
+ ### โœจ New Features
851
+
852
+ **Clawdbot Skill (`.clawdbot/`):**
853
+ - New `.clawdbot/` directory with skill integration files
854
+ - `README.md` - Clawdbot integration overview and setup guide
855
+ - `skill/SKILL.md` - Comprehensive skill documentation with voice selection, background music, effects, personalities, and remote SSH audio setup
856
+ - Automatically distributed via npm package
857
+ - Zero-configuration when AgentVibes is installed
858
+
859
+ **README Updates:**
860
+ - Added "๐Ÿค– Clawdbot Integration" section with full documentation
861
+ - Updated header to include Clawdbot alongside Claude Code, Claude Desktop, and Warp Terminal
862
+ - Added Clawdbot to Quick Links table
863
+ - Clawdbot description: "A revolutionary AI assistant you can access via any instant messenger"
864
+ - Website link: https://clawd.bot
865
+
866
+ **package.json Updates:**
867
+ - Added `.clawdbot/` to npm files array for distribution
868
+ - Added `clawdbot` to keywords for npm discoverability
869
+ - Updated description to mention Clawdbot support
870
+
871
+ ### ๐Ÿ› Bug Fixes
872
+
873
+ - **SonarCloud Quality Gate** - Disabled quality gate status reporting to GitHub to prevent false CI failures
874
+ - **Coverage File Generation** - Ensured coverage file is generated before SonarCloud scan
875
+ - **CLI Test Coverage** - Added CLI tests and excluded CLI entry point from coverage requirements
876
+ - **macOS Runner** - Removed macos-15-large runner to avoid GitHub billing limits
877
+ - **Piper Voice Test** - Updated installation test to match current voice list
878
+
879
+ ### ๐Ÿ“š Documentation
880
+
881
+ - Added step-by-step SonarCloud dashboard configuration guide
882
+ - Added guide to disable SonarCloud GitHub App checks
883
+ - Comprehensive Clawdbot integration documentation with SSH audio examples
884
+
885
+ ### ๐Ÿ”’ Security & Quality
886
+
887
+ - โœ… All Sonar quality gates validated
888
+ - โœ… No hardcoded credentials in changes
889
+ - โœ… New Clawdbot files are documentation only (no executable code)
890
+ - โœ… All 213 BATS + 47 Node tests passing
891
+
892
+ ### ๐Ÿ“Š Changes Summary
893
+
894
+ - **Files Added:** 2 (`.clawdbot/README.md`, `.clawdbot/skill/SKILL.md`)
895
+ - **Files Modified:** 2 (`README.md`, `package.json`)
896
+ - **Commits Since v3.1.0:** 11 (5 fixes, 4 docs, 1 test, 1 debug)
897
+
898
+ ### ๐ŸŽฏ User Impact
899
+
900
+ **For Clawdbot Users:**
901
+ - Professional TTS with 50+ voices in 30+ languages
902
+ - Works on remote servers with SSH audio tunneling
903
+ - Zero API costsโ€”Piper TTS is free and offline
904
+ - Automatic integration when AgentVibes is installed
905
+
906
+ **For Existing Users:**
907
+ - Zero breaking changes
908
+ - All existing features work exactly the same
909
+ - Clawdbot support is additive
910
+
911
+ ### ๐Ÿš€ Migration Notes
912
+
913
+ No migration required! This is a fully backward-compatible minor release.
914
+
915
+ **To Use with Clawdbot:**
916
+ 1. Install: `npx agentvibes install`
917
+ 2. Speak: `npx agentvibes speak "Hello!"`
918
+
919
+ ### ๐Ÿ“ฆ Full Changelog
920
+
921
+ **Feature Commits:**
922
+ - `(pending)` feat: Add Clawdbot integration
923
+
924
+ **Bug Fix Commits:**
925
+ - `5cd97d52` fix: Disable SonarCloud quality gate status reporting to GitHub
926
+ - `12f822e6` fix: Disable quality gate failure in SonarCloud workflow
927
+ - `0d26ccc2` fix: Ensure coverage file is generated before SonarCloud scan
928
+ - `c2465508` fix: Add CLI tests and exclude CLI entry point from coverage
929
+ - `c673afe1` fix: Remove macos-15-large runner to avoid GitHub billing limits
930
+ - `92271732` fix: Update Piper installation test to match current voice list
931
+
932
+ **Documentation Commits:**
933
+ - `f72dd977` docs: Add guide to disable SonarCloud GitHub App checks
934
+ - `6587519b` docs: Add step-by-step SonarCloud dashboard configuration guide
935
+ - `ba765f50` docs: Add SonarCloud quality gate configuration guidance
936
+
937
+ **Test Commits:**
938
+ - `47f08a79` test: Trigger workflow to verify SonarCloud quality gate fix
939
+
940
+ **Debug Commits:**
941
+ - `84945d25` debug: Add coverage file verification to SonarCloud workflow
942
+
943
+ ---
944
+
945
+ ## ๐Ÿ“ฆ v3.1.0 - Android Native Support: Run Claude Code on Your Phone
946
+
947
+ **Release Date:** January 22, 2026
948
+
949
+ ### ๐ŸŽฏ Why v3.1.0?
950
+
951
+ This minor release brings **native Android support** to AgentVibes, enabling developers to run Claude Code with professional TTS voices directly on Android devices via Termux. No SSH required, no remote server neededโ€”just install Termux on your Android phone or tablet and get the full AgentVibes experience locally. This complements the v3.0.0 termux-ssh provider by offering a **complete mobile development solution**: use native Termux for local Android development, or use termux-ssh when connecting to remote servers.
952
+
953
+ ### ๐Ÿค– AI Summary
954
+
955
+ AgentVibes v3.1.0 introduces native Android/Termux support, enabling developers to run Claude Code with professional TTS voices directly on their Android devices. Through automatic detection and a specialized installer, AgentVibes now runs Piper TTS via proot-distro with Debian (solving Android's glibc compatibility issues), uses termux-media-player for audio playback, and includes comprehensive Android-specific documentation. Perfect for developers who want to code on-the-go with their Android phone or tablet using the full power of Claude Code and AgentVibes.
956
+
957
+ **Key Highlights:**
958
+ - ๐Ÿค– **Native Android Support** - Run Claude Code with TTS directly on Android devices via Termux
959
+ - ๐Ÿ“ฆ **Automatic Termux Detection** - AgentVibes auto-detects Android and runs specialized installation
960
+ - ๐ŸŽฏ **Proot-Distro Integration** - Solves glibc compatibility with proot Debian environment
961
+ - ๐Ÿ”Š **Android Audio Playback** - Uses termux-media-player for native Android audio routing
962
+ - ๐Ÿ“š **Comprehensive Documentation** - Complete Android setup guide with troubleshooting and F-Droid instructions
963
+ - โœ… **Full Test Coverage** - All 213 BATS + 38 Node tests passing with Android compatibility
964
+
965
+ ### โœจ New Features
966
+
967
+ **Termux Installer (`.claude/hooks/termux-installer.sh`):**
968
+ - New 224-line installer specifically for Android/Termux environments
969
+ - Automatically installs proot-distro with Debian (for glibc compatibility)
970
+ - Downloads and configures Piper TTS binary in proot environment
971
+ - Creates `/usr/bin/piper` wrapper that routes through proot
972
+ - Installs audio dependencies: ffmpeg, sox, bc, termux-api
973
+ - Interactive voice selection with 50+ language options
974
+ - Validates Termux environment before proceeding
975
+
976
+ **Termux Detection (`src/installer.js`):**
977
+ - New `isTermux()` function checks for `/data/data/com.termux` directory
978
+ - New `detectAndNotifyTermux()` displays Android detection messages
979
+ - Auto-configures piper provider with Termux-compatible voice
980
+ - Shows Termux-specific installation instructions
981
+ - Piper installer automatically redirects to termux-installer.sh on Android
982
+
983
+ **Audio Processor Updates (`.claude/hooks/audio-processor.sh`):**
984
+ - Detects Termux environment for temp directory selection
985
+ - Uses `${PREFIX}/tmp` on Termux, `/tmp` on standard systems
986
+ - Ensures audio effects work correctly on Android
987
+ - Cross-platform compatibility maintained
988
+
989
+ **Piper Installer Updates (`.claude/hooks/piper-installer.sh`):**
990
+ - Auto-detects Termux and redirects to specialized installer
991
+ - Shows clear message when routing to Termux-specific setup
992
+
993
+ **Android Audio Playback (`.claude/hooks/play-tts-piper.sh`):**
994
+ - Detects Android/Termux environment
995
+ - Uses `termux-media-player` instead of `paplay` on Android
996
+ - Audio routes through Android's native media system
997
+
998
+ ### ๐Ÿ“š Documentation
999
+
1000
+ **New Android Setup Section (`README.md`):**
1001
+ - Added "๐Ÿค– Android / Termux" section to System Requirements
1002
+ - Complete 3-step installation guide for Android devices
1003
+ - Explanation of why Termux needs special handling (bionic vs glibc)
1004
+ - Requirements: Termux app from F-Droid, Termux:API, Android 7.0+
1005
+ - Audio playback architecture explanation
1006
+ - Setup verification commands
1007
+ - Troubleshooting table for common issues
1008
+ - Clear explanation of why F-Droid version is required (not Google Play)
1009
+ - Updated Quick Links table with direct link to Android setup
1010
+
1011
+ ### ๐Ÿ› Bug Fixes
1012
+
1013
+ - **Test #90 Fix** - Added termux-ssh provider to test cleanup list for "no providers found" edge case
1014
+ - **Temp Directory Detection** - Fixed audio-processor.sh defaulting to Termux paths on non-Termux systems
1015
+ - **Sonar Compliance** - Added `set -euo pipefail` strict mode to termux-installer.sh for security
1016
+
1017
+ ### ๐Ÿ”’ Security & Quality
1018
+
1019
+ - โœ… All Sonar quality gates validated
1020
+ - โœ… Strict mode (`set -euo pipefail`) on all new bash scripts
1021
+ - โœ… No hardcoded credentials
1022
+ - โœ… Proper variable quoting and input validation
1023
+ - โœ… Cross-platform temp directory handling
1024
+ - โœ… All 213 BATS + 38 Node tests passing
1025
+
1026
+ ### ๐Ÿ“Š Changes Summary
1027
+
1028
+ - **Files Modified:** 7
1029
+ - **Lines Added:** +391
1030
+ - **Lines Removed:** -8
1031
+ - **New Files:** 1 (termux-installer.sh)
1032
+ - **Commits:** 8 (5 fixes, 1 feature, 1 docs, 1 merge)
1033
+
1034
+ ### ๐ŸŽฏ User Impact
1035
+
1036
+ **For Android Users:**
1037
+ - Can now run Claude Code directly on Android phones/tablets
1038
+ - Full TTS support with 50+ voices and languages
1039
+ - No remote server required for basic usage
1040
+ - Works offline after initial voice downloads
1041
+
1042
+ **For Developers:**
1043
+ - Complete mobile development solution (native + SSH)
1044
+ - Native Termux for local Android development
1045
+ - Termux-SSH provider for remote server connections
1046
+ - Seamless integration with existing AgentVibes workflows
1047
+
1048
+ **For Existing Users:**
1049
+ - Zero breaking changes
1050
+ - All existing features work exactly the same
1051
+ - New Android support is opt-in via Termux installation
1052
+
1053
+ ### ๐Ÿš€ Migration Notes
1054
+
1055
+ No migration required! This is a fully backward-compatible minor release.
1056
+
1057
+ **To Try Android Support:**
1058
+ 1. Install [Termux from F-Droid](https://f-droid.org/en/packages/com.termux/)
1059
+ 2. Install [Termux:API](https://f-droid.org/en/packages/com.termux.api/)
1060
+ 3. In Termux: `pkg install nodejs-lts`
1061
+ 4. Run: `npx agentvibes install`
1062
+
1063
+ AgentVibes will auto-detect Termux and run the specialized installer.
1064
+
1065
+ ### ๐Ÿ“ฆ Full Changelog
1066
+
1067
+ **Feature Commits:**
1068
+ - `e9d4cf95` feat: Add Android/Termux support for Piper TTS
1069
+
1070
+ **Bug Fix Commits:**
1071
+ - `aa4d3cdd` fix: Add termux-ssh provider to test #90 cleanup list
1072
+ - `c1b00c6d` fix: Use termux-media-player for audio playback on Android
1073
+ - `f96ab89a` fix: Properly detect Termux environment for temp directory
1074
+ - `e2efeb06` fix: Add strict mode to termux-installer.sh for Sonar compliance
1075
+
1076
+ **Documentation Commits:**
1077
+ - `701a9412` docs: Add comprehensive Android/Termux setup section to README
1078
+
1079
+ **Merge Commits:**
1080
+ - `a5d3f546` Merge feature/android-termux into master
1081
+ - `95f04e70` Merge origin/master into feature/pulseaudio-reverse-tunnel
1082
+
1083
+ ---
1084
+
1085
+ ## ๐Ÿ“ฆ v3.0.0 - Cross-Platform Remote Audio: Termux SSH Provider
1086
+
1087
+ **Release Date:** January 8, 2026
1088
+
1089
+ ### ๐ŸŽฏ Why v3.0.0?
1090
+
1091
+ This major release marks a significant milestone in AgentVibes' evolution, introducing **mobile-first interactive AI conversations**. The termux-ssh provider enables a revolutionary workflow: **have fully interactive, hands-free conversations with Claude Code using just your mobile device**โ€”whether you're coding locally on your laptop with audio routed to your phone, or working on remote servers from anywhere in the world. This architectural breakthrough represents a new paradigm: **"Code with your hands, converse with your voice."**
1092
+
1093
+ ### ๐Ÿค– AI Summary
1094
+
1095
+ AgentVibes v3.0.0 introduces the termux-ssh TTS provider, enabling **true mobile-first interactive conversations with Claude Code**. Route TTS audio to your Android device via SSHโ€”whether coding locally on your laptop or on remote serversโ€”and have hands-free, voice-driven conversations with Claude using just your phone. This major release includes comprehensive Tailscale VPN setup documentation for internet-wide access, full MCP server integration, and transforms how developers interact with AI assistants. Perfect for developers who want to experience AI conversations naturally through their mobile device while their hands stay on the keyboard.
1096
+
1097
+ **Key Highlights:**
1098
+ - ๐Ÿ“ฑ **Mobile-First AI Conversations** - Have fully interactive, hands-free conversations with Claude Code using just your Android device
1099
+ - ๐Ÿ’ป **Local + Remote Development** - Works for both local coding (laptop โ†’ phone audio) and remote server development
1100
+ - ๐ŸŒ **Tailscale Integration** - Comprehensive guide for internet-wide device access without port forwarding or firewall configuration
1101
+ - ๐Ÿ”ง **Enhanced Installer** - Interactive SSH host configuration with validation and clear use-case guidance
1102
+ - ๐ŸŽฏ **Full MCP Compatibility** - Complete integration with all MCP commands and workflows
1103
+ - ๐Ÿ›ก๏ธ **Quality Gates Integration** - Automated security validation in release process
1104
+
1105
+ ### ๐ŸŽฅ Demo Video
1106
+
1107
+ **Watch it in action:** [Mobile-First AI Conversations with Claude Code](https://youtu.be/ngLiA_KQtTA?si=wTwS4CJidIxWqLIP)
1108
+
1109
+ See the termux-ssh provider in actionโ€”fully interactive, hands-free conversations with Claude Code using just your Android device.
1110
+
1111
+ ### โœจ New Features
1112
+
1113
+ **Termux SSH TTS Provider (`.claude/hooks/play-tts-termux-ssh.sh`):**
1114
+ - New TTS provider for Android via SSH connection
1115
+ - Routes text to `termux-tts-speak` on remote Android device
1116
+ - Configuration priority: env var โ†’ project โ†’ global
1117
+ - Secure quote escaping for safe text transmission
1118
+ - 196 lines of fully documented code
1119
+
1120
+ **Installer Updates (`src/installer.js`):**
1121
+ - Added termux-ssh to provider selection menu
1122
+ - Interactive SSH host alias configuration with validation
1123
+ - Saves host alias to `.claude/termux-ssh-host.txt`
1124
+ - Clear use case description: "Only choose if your project is on a remote server and you want audio sent to your Android device"
1125
+ - Documentation link to TERMUX_SETUP.md
1126
+
1127
+ **TTS Router Updates (`.claude/hooks/play-tts.sh`):**
1128
+ - Added termux-ssh provider routing in two locations
1129
+ - Full integration with existing provider detection
1130
+ - Supports mixed-provider mode (Piper + Termux)
1131
+
1132
+ **MCP Server Integration (`mcp-server/server.py`):**