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