agentvibes 4.0.1 โ†’ 4.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/bmad/bmad-voices.md +69 -69
  2. package/.agentvibes/config.json +12 -0
  3. package/.claude/activation-instructions +54 -54
  4. package/.claude/audio/tracks/README.md +52 -52
  5. package/.claude/commands/agent-vibes/add.md +21 -21
  6. package/.claude/commands/agent-vibes/agent-vibes.md +101 -101
  7. package/.claude/commands/agent-vibes/agent.md +79 -79
  8. package/.claude/commands/agent-vibes/background-music.md +111 -111
  9. package/.claude/commands/agent-vibes/bmad.md +198 -198
  10. package/.claude/commands/agent-vibes/clean.md +18 -18
  11. package/.claude/commands/agent-vibes/cleanup.md +18 -18
  12. package/.claude/commands/agent-vibes/commands.json +145 -145
  13. package/.claude/commands/agent-vibes/effects.md +97 -97
  14. package/.claude/commands/agent-vibes/get.md +9 -9
  15. package/.claude/commands/agent-vibes/hide.md +91 -91
  16. package/.claude/commands/agent-vibes/language.md +23 -23
  17. package/.claude/commands/agent-vibes/learn.md +67 -67
  18. package/.claude/commands/agent-vibes/list.md +13 -13
  19. package/.claude/commands/agent-vibes/mute.md +37 -37
  20. package/.claude/commands/agent-vibes/preview.md +17 -17
  21. package/.claude/commands/agent-vibes/provider.md +68 -68
  22. package/.claude/commands/agent-vibes/replay-target.md +14 -14
  23. package/.claude/commands/agent-vibes/sample.md +12 -12
  24. package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -84
  25. package/.claude/commands/agent-vibes/set-pretext.md +65 -65
  26. package/.claude/commands/agent-vibes/set-speed.md +41 -41
  27. package/.claude/commands/agent-vibes/show.md +84 -84
  28. package/.claude/commands/agent-vibes/switch.md +87 -87
  29. package/.claude/commands/agent-vibes/target-voice.md +26 -26
  30. package/.claude/commands/agent-vibes/target.md +30 -30
  31. package/.claude/commands/agent-vibes/translate.md +68 -68
  32. package/.claude/commands/agent-vibes/unmute.md +45 -45
  33. package/.claude/commands/agent-vibes/verbosity.md +89 -89
  34. package/.claude/commands/agent-vibes/whoami.md +7 -7
  35. package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
  36. package/.claude/commands/agent-vibes-rdp.md +24 -24
  37. package/.claude/config/agentvibes.json +1 -0
  38. package/.claude/config/audio-effects.cfg +3 -2
  39. package/.claude/config/audio-effects.cfg.sample +52 -52
  40. package/.claude/config/background-music-volume.txt +1 -0
  41. package/.claude/config/intro-text.txt +1 -0
  42. package/.claude/config/piper-speech-rate.txt +4 -0
  43. package/.claude/config/piper-target-speech-rate.txt +1 -0
  44. package/.claude/config/reverb-level.txt +1 -0
  45. package/.claude/config/tts-speech-rate.txt +4 -0
  46. package/.claude/config/tts-target-speech-rate.txt +1 -0
  47. package/.claude/docs/TERMUX_SETUP.md +408 -408
  48. package/.claude/github-star-reminder.txt +1 -1
  49. package/.claude/hooks/README-TTS-QUEUE.md +135 -135
  50. package/.claude/hooks/audio-cache-utils.sh +246 -246
  51. package/.claude/hooks/audio-processor.sh +433 -389
  52. package/.claude/hooks/background-music-manager.sh +404 -404
  53. package/.claude/hooks/bmad-speak-enhanced.sh +165 -165
  54. package/.claude/hooks/bmad-speak.sh +269 -112
  55. package/.claude/hooks/bmad-tts-injector.sh +568 -568
  56. package/.claude/hooks/bmad-voice-manager.sh +928 -928
  57. package/.claude/hooks/clawdbot-receiver-SECURE.sh +129 -129
  58. package/.claude/hooks/clawdbot-receiver.sh +107 -107
  59. package/.claude/hooks/clean-audio-cache.sh +22 -22
  60. package/.claude/hooks/cleanup-cache.sh +106 -106
  61. package/.claude/hooks/configure-rdp-mode.sh +137 -137
  62. package/.claude/hooks/download-extra-voices.sh +244 -244
  63. package/.claude/hooks/effects-manager.sh +268 -268
  64. package/.claude/hooks/github-star-reminder.sh +154 -154
  65. package/.claude/hooks/language-manager.sh +362 -362
  66. package/.claude/hooks/learn-manager.sh +492 -492
  67. package/.claude/hooks/macos-voice-manager.sh +205 -205
  68. package/.claude/hooks/migrate-background-music.sh +125 -125
  69. package/.claude/hooks/migrate-to-agentvibes.sh +161 -161
  70. package/.claude/hooks/optimize-background-music.sh +87 -87
  71. package/.claude/hooks/path-resolver.sh +60 -60
  72. package/.claude/hooks/personality-manager.sh +448 -448
  73. package/.claude/hooks/piper-download-voices.sh +225 -225
  74. package/.claude/hooks/piper-installer.sh +292 -292
  75. package/.claude/hooks/piper-multispeaker-registry.sh +171 -171
  76. package/.claude/hooks/piper-voice-manager.sh +24 -3
  77. package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +90 -90
  78. package/.claude/hooks/play-tts-enhanced.sh +105 -70
  79. package/.claude/hooks/play-tts-macos.sh +368 -345
  80. package/.claude/hooks/play-tts-piper.sh +679 -578
  81. package/.claude/hooks/play-tts-soprano.sh +356 -320
  82. package/.claude/hooks/play-tts-ssh-remote.sh +167 -88
  83. package/.claude/hooks/play-tts-termux-ssh.sh +169 -169
  84. package/.claude/hooks/play-tts.sh +301 -298
  85. package/.claude/hooks/prepare-release.sh +54 -54
  86. package/.claude/hooks/provider-commands.sh +617 -617
  87. package/.claude/hooks/provider-manager.sh +399 -399
  88. package/.claude/hooks/replay-target-audio.sh +95 -95
  89. package/.claude/hooks/requirements.txt +6 -6
  90. package/.claude/hooks/sentiment-manager.sh +201 -201
  91. package/.claude/hooks/session-start-tts.sh +81 -71
  92. package/.claude/hooks/soprano-gradio-synth.py +139 -139
  93. package/.claude/hooks/speed-manager.sh +291 -291
  94. package/.claude/hooks/stop-tts.sh +84 -0
  95. package/.claude/hooks/termux-installer.sh +261 -261
  96. package/.claude/hooks/translate-manager.sh +341 -341
  97. package/.claude/hooks/translator.py +237 -237
  98. package/.claude/hooks/tts-queue-worker.sh +145 -114
  99. package/.claude/hooks/tts-queue.sh +165 -136
  100. package/.claude/hooks/verbosity-manager.sh +178 -178
  101. package/.claude/hooks/voice-manager.sh +548 -544
  102. package/.claude/hooks-windows/audio-cache-utils.ps1 +119 -119
  103. package/.claude/hooks-windows/background-music-manager.ps1 +348 -0
  104. package/.claude/hooks-windows/clean-audio-cache.ps1 +53 -0
  105. package/.claude/hooks-windows/download-extra-voices.ps1 +185 -0
  106. package/.claude/hooks-windows/effects-manager.ps1 +294 -0
  107. package/.claude/hooks-windows/language-manager.ps1 +193 -0
  108. package/.claude/hooks-windows/learn-manager.ps1 +241 -0
  109. package/.claude/hooks-windows/personality-manager.ps1 +266 -0
  110. package/.claude/hooks-windows/play-tts-piper.ps1 +209 -0
  111. package/.claude/hooks-windows/play-tts-sapi.ps1 +108 -0
  112. package/.claude/hooks-windows/play-tts-soprano.ps1 +159 -158
  113. package/.claude/hooks-windows/play-tts-windows-piper.ps1 +50 -5
  114. package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -108
  115. package/.claude/hooks-windows/play-tts.ps1 +344 -266
  116. package/.claude/hooks-windows/provider-manager.ps1 +29 -10
  117. package/.claude/hooks-windows/session-start-tts.ps1 +124 -124
  118. package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
  119. package/.claude/hooks-windows/speed-manager.ps1 +166 -0
  120. package/.claude/hooks-windows/verbosity-manager.ps1 +119 -0
  121. package/.claude/hooks-windows/voice-manager-windows.ps1 +92 -8
  122. package/.claude/output-styles/agent-vibes.md +202 -202
  123. package/.claude/personalities/angry.md +14 -14
  124. package/.claude/personalities/annoying.md +14 -14
  125. package/.claude/personalities/crass.md +14 -14
  126. package/.claude/personalities/dramatic.md +14 -14
  127. package/.claude/personalities/dry-humor.md +50 -50
  128. package/.claude/personalities/flirty.md +20 -20
  129. package/.claude/personalities/funny.md +14 -14
  130. package/.claude/personalities/grandpa.md +32 -32
  131. package/.claude/personalities/millennial.md +14 -14
  132. package/.claude/personalities/moody.md +14 -14
  133. package/.claude/personalities/normal.md +16 -16
  134. package/.claude/personalities/pirate.md +14 -14
  135. package/.claude/personalities/poetic.md +14 -14
  136. package/.claude/personalities/professional.md +14 -14
  137. package/.claude/personalities/rapper.md +55 -55
  138. package/.claude/personalities/robot.md +14 -14
  139. package/.claude/personalities/sarcastic.md +38 -38
  140. package/.claude/personalities/sassy.md +14 -14
  141. package/.claude/personalities/surfer-dude.md +14 -14
  142. package/.claude/personalities/zen.md +14 -14
  143. package/.claude/settings.json +15 -15
  144. package/.claude/verbosity.txt +1 -1
  145. package/.clawdbot/README.md +105 -105
  146. package/.clawdbot/skill/SKILL.md +241 -241
  147. package/.mcp.json +12 -0
  148. package/CLAUDE.md +170 -181
  149. package/README.md +2029 -1909
  150. package/RELEASE_NOTES.md +1310 -66
  151. package/WINDOWS-SETUP.md +208 -208
  152. package/bin/agent-vibes +39 -39
  153. package/bin/agentvibes-voice-browser.js +1840 -1826
  154. package/bin/agentvibes.js +48 -2
  155. package/bin/mcp-server.js +121 -121
  156. package/bin/mcp-server.sh +206 -206
  157. package/bin/test-bmad-pr +78 -78
  158. package/mcp-server/QUICK_START.md +203 -203
  159. package/mcp-server/README.md +345 -345
  160. package/mcp-server/WINDOWS_SETUP.md +260 -260
  161. package/mcp-server/docs/troubleshooting-audio.md +313 -313
  162. package/mcp-server/examples/claude_desktop_config.json +11 -11
  163. package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
  164. package/mcp-server/examples/custom_instructions.md +169 -169
  165. package/mcp-server/install-deps.js +130 -130
  166. package/mcp-server/pyproject.toml +52 -52
  167. package/mcp-server/requirements.txt +2 -2
  168. package/mcp-server/server.py +1465 -1417
  169. package/mcp-server/test_server.py +395 -395
  170. package/mcp-server/test_windows_script_parity.py +336 -0
  171. package/package.json +110 -112
  172. package/setup-windows.ps1 +815 -815
  173. package/src/bmad-detector.js +71 -71
  174. package/src/cli/list-personalities.js +110 -110
  175. package/src/cli/list-voices.js +114 -114
  176. package/src/commands/bmad-voices.js +394 -394
  177. package/src/commands/install-mcp.js +476 -476
  178. package/src/console/app.js +824 -806
  179. package/src/console/audio-env.js +20 -1
  180. package/src/console/brand-colors.js +13 -13
  181. package/src/console/constants/personalities.js +44 -0
  182. package/src/console/footer-config.js +50 -46
  183. package/src/console/modals/modal-overlay.js +247 -247
  184. package/src/console/navigation.js +62 -61
  185. package/src/console/tabs/agents-tab.js +1684 -369
  186. package/src/console/tabs/help-tab.js +261 -261
  187. package/src/console/tabs/install-tab.js +1007 -991
  188. package/src/console/tabs/music-tab.js +22 -8
  189. package/src/console/tabs/placeholder-tab.js +53 -46
  190. package/src/console/tabs/readme-tab.js +267 -267
  191. package/src/console/tabs/receiver-tab.js +1472 -0
  192. package/src/console/tabs/settings-tab.js +185 -402
  193. package/src/console/tabs/voices-tab.js +100 -21
  194. package/src/console/widgets/destroy-list.js +25 -0
  195. package/src/console/widgets/format-utils.js +89 -0
  196. package/src/console/widgets/notice.js +55 -0
  197. package/src/console/widgets/personality-picker.js +185 -0
  198. package/src/console/widgets/reverb-picker.js +94 -0
  199. package/src/console/widgets/track-picker.js +285 -0
  200. package/src/installer/music-file-input.js +304 -304
  201. package/src/installer.js +5882 -5777
  202. package/src/services/agent-voice-store.js +423 -163
  203. package/src/services/config-service.js +264 -264
  204. package/src/services/navigation-service.js +123 -123
  205. package/src/services/provider-service.js +132 -132
  206. package/src/services/verbosity-service.js +157 -157
  207. package/src/utils/audio-duration-validator.js +298 -298
  208. package/src/utils/audio-format-validator.js +277 -277
  209. package/src/utils/dependency-checker.js +469 -466
  210. package/src/utils/file-ownership-verifier.js +358 -358
  211. package/src/utils/list-formatter.js +194 -194
  212. package/src/utils/music-file-validator.js +285 -275
  213. package/src/utils/preview-list-prompt.js +136 -136
  214. package/src/utils/provider-validator.js +96 -12
  215. package/src/utils/secure-music-storage.js +412 -412
  216. package/templates/agentvibes-receiver.sh +482 -162
  217. package/templates/audio/welcome-music.mp3 +0 -0
  218. package/voice-assignments.json +8244 -8244
  219. package/.claude/config/background-music-position.txt +0 -1
package/RELEASE_NOTES.md CHANGED
@@ -1,66 +1,1310 @@
1
- # AgentVibes Release Notes
2
-
3
- ## v4.0.0 - Interactive Console & Voice Explorer
4
-
5
- **Release Date:** March 9, 2026
6
-
7
- ### Summary
8
-
9
- AgentVibes v4.0.0 is a major release that transforms the user experience with a full interactive TUI (Terminal User Interface) console, a voice browser with 914+ voices, and comprehensive platform support. This release includes 260 commits with 68 new features, 88 bug fixes, and significant security hardening across the entire codebase.
10
-
11
- ### Key Features
12
-
13
- **Interactive TUI Console:**
14
- - Full terminal UI with tabbed navigation (Settings, Voices, Music, Agents, Help)
15
- - Real-time settings management with live preview
16
- - Voice selection modal with Save Locally/Globally options
17
- - Music tab with background track browsing and preview
18
- - Installer wizard with 5-screen guided flow
19
- - Two-column settings layout with audio effects controls
20
-
21
- **Voice Explorer & Browser:**
22
- - Browse and preview 914+ Piper TTS voices
23
- - Multi-speaker voice support with individual speaker selection
24
- - Voice list with Name/Gender/Provider columns
25
- - One-click voice installation and switching
26
- - Friendly name resolution for voice switching
27
-
28
- **Reliable TTS Hook System:**
29
- - SessionStart hook now outputs structured JSON for reliable context injection
30
- - Installer auto-initializes git repo (required for Claude Code hook support)
31
- - Global voice config fallback when local multi-speaker files are missing
32
- - Fixed hook path resolution for non-git directories
33
-
34
- **Platform & Provider Improvements:**
35
- - Native Windows support with Soprano, Piper, and SAPI providers
36
- - Android/Termux support with termux-ssh provider
37
- - SSH-PulseAudio remote audio streaming
38
- - Clawdbot multi-agent SSH-remote TTS support
39
- - macOS audio player support (afplay)
40
- - Background music with custom track uploads
41
-
42
- **Security Hardening:**
43
- - 58 code review issues fixed across all files
44
- - SSH receiver scripts hardened against injection attacks
45
- - Comprehensive input validation and path traversal prevention
46
- - Strict mode enforced across all bash scripts
47
- - 180+ security test variations added
48
-
49
- ### Bug Fixes
50
-
51
- - Fixed multi-speaker voice ID storage and playback matching
52
- - Fixed header status bar updates when settings change
53
- - Fixed verbosity manager reading wrong .claude/ dir via MCP
54
- - Fixed audio overlap with file locking mechanism
55
- - Fixed provider selection navigation staying on correct page
56
- - Fixed SessionStart hook calling PowerShell instead of bash on WSL2
57
- - Fixed ffmpeg install prompt when sudo lacks a tty
58
- - Fixed background music sync when track changes in Settings
59
-
60
- ### Breaking Changes
61
-
62
- - Minimum Node.js version: v20
63
- - SessionStart hook output format changed from plain text to JSON
64
- - Voice config files restructured for multi-speaker support
65
- - Installer now creates a git repository in the target directory
66
-
1
+ # AgentVibes Release Notes
2
+
3
+ ## ๐ŸŽ‰ v4.4.0 โ€” "Full Platform Parity" Release
4
+
5
+ **Release Date:** March 2026
6
+
7
+ 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.
8
+
9
+ ### ๐ŸชŸ Windows Parity โ€” First-Class Windows Support
10
+
11
+ AgentVibes now runs natively on Windows with full feature parity:
12
+
13
+ - **Background music on Windows** โ€” New `background-music-manager.ps1`, full port of the Linux bash manager
14
+ - **play-tts.ps1** reads `audio-effects.cfg` with per-agent track support, same as Linux
15
+ - **ffmpeg auto-install** via `winget` during installer, PATH auto-refresh (no shell restart)
16
+ - **Piper TTS native** โ€” `piper.exe` resolved from `LOCALAPPDATA`, no WSL/bash needed
17
+ - **Voice selection works** โ€” `play-tts-windows-piper.ps1` reads `tts-voice.txt` set by TUI
18
+ - **Multi-speaker models** โ€” voices like libritts-high pass `--speaker` flag to Piper on Windows
19
+ - **Windows SSH Receiver** โ€” `setup-ssh-receiver.ps1` + `agentvibes-receiver.ps1` templates with hardened `sshd_config`
20
+ - **TUI color contrast** โ€” fixed for Windows Terminal (green focus, layout consistency)
21
+ - **Music preview overlap** โ€” switching tracks kills previous player via `taskkill`
22
+ - **MCP Server** โ€” strips `\r\n` line endings, accepts `[OK]` markers for PowerShell 5.1 compatibility
23
+
24
+ ### ๐ŸŽญ BMAD Party Mode โ€” Every Agent Has Its Own Voice
25
+
26
+ 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.
27
+
28
+ **Per-agent configuration:**
29
+ - ๐ŸŽ™๏ธ **Voice** โ€” 914 voices, gender-aware auto-assign
30
+ - ๐ŸŽต **Background Music** โ€” Unique ambient track per agent (cinematic, lo-fi, jazz...)
31
+ - ๐ŸŽš๏ธ **Music Volume** โ€” Per-agent level, or bulk-set all at once
32
+ - ๐ŸŽ›๏ธ **Reverb** โ€” none / room / hall / cathedral / studio
33
+ - ๐Ÿ’ฌ **Pretext** โ€” Custom intro phrase ("Winston says:..." before every line)
34
+ - ๐ŸŽญ **Personality** โ€” sarcastic, dramatic, pirate, cheerful, and more
35
+ - ๐Ÿ”‡ **No overlap** โ€” speech lock serializes agents (mkdir-based, portable across platforms)
36
+ - โœจ **Markdown stripped** โ€” asterisks, emojis, and formatting removed before TTS
37
+
38
+ ### ๐ŸŽ›๏ธ BMad Tab โ€” Full Visual Agent Configurator
39
+
40
+ New **BMad Tab** (`B` key) in `npx agentvibes` for managing every agent visually:
41
+
42
+ - Voice, Gender, Provider, Reverb, Music, Vol, and Pretext columns
43
+ - Voice names auto-beautified: `16Speakers::Rose_Ibex` โ†’ `Rose Ibex`
44
+ - `Space` to preview with full profile (animated braille spinner while playing)
45
+ - `Enter` to configure, `A` to auto-assign, `B` for bulk edit, `X` to reset
46
+
47
+ ### ๐Ÿ–ฅ๏ธ SSH Receiver Tab โ€” Hear Your Headless Server
48
+
49
+ 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.
50
+
51
+ ### โšก Performance & UX
52
+ - **TTS latency reduced ~1s** โ€” batched 6 Node.js calls into 1, inotifywait queue worker, background cache cleanup
53
+ - **ANSI colors restored** to TTS banner via `AGENTVIBES_WAV_OUTPATH` sidecar file
54
+ - **Banner toggle** โ€” hide TTS info without muting: `touch ~/.agentvibes/banner-disabled`
55
+ - **`bin/agent-vibes` routes to blessed TUI** instead of old CLI installer
56
+ - **Global hooks updated on upgrade** โ€” `~/.claude/hooks/` synced automatically (#141)
57
+ - **Markdown stripping in stop hook** โ€” no more "asterisk asterisk" spoken aloud
58
+
59
+ ### ๐Ÿ”Œ Windows MCP Parity โ€” 27/27 Tools Working (#157)
60
+
61
+ All MCP tools now work natively on Windows (previously 12 silently failed):
62
+
63
+ - **6 new PowerShell scripts** โ€” personality-manager, speed-manager, language-manager, learn-manager, verbosity-manager, clean-audio-cache
64
+ - **Unified provider naming** โ€” `piper` and `sapi` on all platforms (no more `windows-piper`/`windows-sapi`)
65
+ - **replay command** added to voice-manager for Windows
66
+ - **28 new tests** โ€” script parity, effects round-trip, provider management, naming consistency
67
+ - **Feature-platform matrix** โ€” `docs/feature-platform-matrix.md` tracks all 85 features across 4 platforms
68
+ - **Adversarial review** found 24 issues, 10 fixed in this release
69
+
70
+ **HIGH bug fixes:**
71
+ - ffmpeg stderr redirected to temp file instead of literal `"NUL"` file on disk
72
+ - `AGENTVIBES_NO_PLAY` env var properly cleaned up on error/kill paths
73
+ - `PIPER_SPEAKER` env var no longer leaks between voice switches
74
+ - Provider config now uses project-local `.claude` directory
75
+ - Text over-sanitization fixed โ€” `$50 (USD)` no longer becomes `50 USD`
76
+
77
+ ### ๐Ÿ”ง Code Hardening (Adversarial Review)
78
+
79
+ Three rounds of adversarial code review with 27+ fixes across HIGH and MEDIUM severity:
80
+
81
+ **Round 3 (v4.4.0 โ€” Windows parity):**
82
+ - 6 CRITICAL missing script gaps closed (#157)
83
+ - 4 HIGH severity bugs fixed (NUL redirect, env var leaks, config scope, speaker leak)
84
+ - 3 MEDIUM fixes (text sanitization, error handling, provider naming)
85
+
86
+ **Round 2 (v4.4.0 โ€” agents tab):**
87
+ - Temp file leak on piper error โ€” cleanup added to error handler (#151)
88
+ - Orphaned player process โ€” generation counter gates player spawn (#152)
89
+ - Duplicate piper resolution โ€” extracted `_resolvePiperBin()` shared helper (#153)
90
+ - Race condition in process handoff โ€” double generation check (#154)
91
+ - Voice reuse modulo bug โ€” per-group round-robin counter (#155)
92
+ - Ambiguous gender names removed from hardcoded map (#156)
93
+
94
+ **Round 1 (earlier commits):**
95
+ - 11 receiver-tab security findings addressed
96
+ - All HIGH and MEDIUM issues from agents-tab review fixed
97
+ - Portable speech lock (mkdir instead of flock)
98
+ - Path traversal prevention, credential masking, resource cleanup throughout
99
+
100
+ ### ๐Ÿ›ก๏ธ Quality
101
+ - 639 Node unit tests passing, 213 BATS tests passing
102
+ - 28 new Windows-specific platform parity tests
103
+ - Sonar quality gates validated across all changed files
104
+ - JS syntax verified on all modules
105
+
106
+ **Previous release:** [v4.0.0](https://github.com/paulpreibisch/AgentVibes/releases/tag/v4.0.0)
107
+
108
+ ---
109
+
110
+ ## ๐ŸŽ‰ v4.2 โ€” "Party Mode" Release
111
+
112
+ **Release Date:** March 2026
113
+
114
+ 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.
115
+
116
+ ### ๐Ÿค– What is BMAD?
117
+
118
+ 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.
119
+
120
+ ### ๐ŸŽญ BMAD Party Mode โ€” Every Agent Has Its Own Voice
121
+
122
+ 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.
123
+
124
+ ```bash
125
+ /agent-vibes:bmad-party enable
126
+ ```
127
+
128
+ **Per-agent configuration:**
129
+ - ๐ŸŽ™๏ธ **Voice** โ€” 914 voices to choose from, auto-assigned gender-aware
130
+ - ๐ŸŽต **Background Music** โ€” Unique ambient track per agent (cinematic, lo-fi, jazz...)
131
+ - ๐ŸŽš๏ธ **Music Volume** โ€” Per-agent level, or bulk-set all at once
132
+ - ๐ŸŽ›๏ธ **Reverb** โ€” none / room / hall / cathedral / studio
133
+ - ๐Ÿ’ฌ **Pretext** โ€” Custom intro phrase ("Winston says:..." before every line)
134
+ - ๐ŸŽญ **Personality** โ€” sarcastic, dramatic, pirate, cheerful, and more
135
+ - ๐Ÿ”‡ **No overlap** โ€” speech lock held until audio fully completes
136
+ - โœจ **Markdown stripped** โ€” asterisks and formatting removed before TTS
137
+
138
+ **Configuration stored in:** `~/.agentvibes/bmad-voice-map.json`
139
+
140
+ ### ๐ŸŽ›๏ธ BMad Tab โ€” Full Visual Agent Configurator
141
+
142
+ New **BMad Tab** in `npx agentvibes` for managing every agent visually โ€” built with the same polish as the Voices tab:
143
+
144
+ ```bash
145
+ npx agentvibes # Press B to open BMad Tab
146
+ ```
147
+
148
+ 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`.
149
+
150
+ | Key | Action |
151
+ |-----|--------|
152
+ | `โ†‘โ†“` / `jk` | Navigate agents |
153
+ | `Space` | Preview agent with full profile (animated spinner while playing) |
154
+ | `Enter` | Configure voice, music, volume, reverb, personality, pretext |
155
+ | `A` | Auto-assign unique voices to all agents (gender-aware, no repeats) |
156
+ | `B` | Bulk Edit โ€” set music / volume / pretext / reverb for all agents |
157
+ | `X` | Reset agent to defaults |
158
+
159
+ **BMad Tab highlights:**
160
+ - Inline row hints โ€” navigate to any agent and see `[Space] Preview [Enter] Configure` on the row
161
+ - Animated `โ ‹โ ™โ นโ ธ` braille spinner while audio plays
162
+ - Gender & Provider columns โ€” same metadata as the Voices tab
163
+
164
+ ### ๐Ÿ–ฅ๏ธ SSH Receiver Tab โ€” Hear Your Headless Server
165
+
166
+ 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.
167
+
168
+ ```bash
169
+ # On local machine: open TUI โ†’ Receiver tab โ†’ Start
170
+ npx agentvibes
171
+
172
+ # Remote server auto-detects the receiver and streams audio to you
173
+ ```
174
+
175
+ ### โšก TTS Latency Reduced ~1 Second
176
+
177
+ - **Batched Node.js profile reads** โ€” 6 `node -e` calls collapsed into 1 (~900ms saved per speech)
178
+ - **inotifywait queue worker** โ€” file-event-driven queue, no polling delay
179
+ - **Background cache cleanup** โ€” off the critical path every 10th call
180
+
181
+ ### ๐ŸŽจ ANSI Colors Restored to Banner
182
+
183
+ Full ANSI color in the TTS banner (gold voice, cyan reverb, traffic-light cache size), fixed via `AGENTVIBES_WAV_OUTPATH` sidecar file.
184
+
185
+ ### ๐Ÿ”• Banner Toggle
186
+
187
+ Hide TTS info banner without muting: `touch ~/.agentvibes/banner-disabled` or say "turn off the TTS banner" via MCP.
188
+
189
+ ### ๐Ÿ›ก๏ธ Security
190
+
191
+ - Adversarial code review โ€” 58 issues identified and addressed
192
+ - Agent ID injection prevention, PID-scoped temp profile files
193
+ - Env-var-based Node.js JSON reads (no shell interpolation)
194
+
195
+ **Full Changelog**: https://github.com/paulpreibisch/AgentVibes/compare/v4.0.1...v4.2
196
+
197
+ ---
198
+
199
+ ## โœจ v3.5.10 - Soprano Detection Fixes & Enhanced Installer Features
200
+
201
+ **Release Date:** February 14, 2026
202
+
203
+ ### ๐ŸŽฏ Summary
204
+
205
+ 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.
206
+
207
+ ### โœจ Key Features & Fixes
208
+
209
+ **๐Ÿ”ง Critical Bug Fixes:**
210
+ - **Soprano TTS Detection:** Fixed detection when installed via pipx (was showing "not installed" despite working)
211
+ - **execSync API Bugs:** Fixed 5 locations using incorrect API signature (array args with execSync)
212
+ - **Code Duplication:** Eliminated 100+ lines of duplicate code between Soprano and Piper validators
213
+ - **API Consistency:** All provider validation functions now return consistent response structures
214
+ - **Python Package Detection:** Fixed broken Python pip detection that was silently failing
215
+
216
+ **๐ŸŽจ New Installer Features:**
217
+ - **Custom Music Tracks:** Users can now upload and preview their own background music
218
+ - **Personality Emojis:** Visual recognition mapping (๐Ÿ˜Š for none, ๐ŸŽญ for dramatic, ๐Ÿ’ for sassy, etc.)
219
+ - **Pretext Configuration:** Custom agent introductions (e.g., "FireBot: " prefix for all messages)
220
+ - **Track Preview:** Audio preview with support for ffplay, sox, and mpv players
221
+
222
+ **๐Ÿ›ก๏ธ Security & Quality:**
223
+ - Improved path traversal protection in provider validation
224
+ - Enhanced error handling and logging
225
+ - Reduced code complexity by 29% through deduplication
226
+ - Test coverage improved: 56.61% โ†’ 63.67%
227
+
228
+ ### ๐Ÿ“Š Technical Details
229
+
230
+ **Soprano Detection Improvements:**
231
+ - Checks command in PATH first (most reliable for pipx)
232
+ - Falls back to ~/.local/bin directory check
233
+ - Checks pipx venv directory for installation
234
+ - Final fallback to Python pip package detection
235
+ - Consistent error messages showing all checked locations
236
+
237
+ **Code Quality Metrics:**
238
+ - File size reduced by 145 lines (-29%)
239
+ - Code duplication eliminated (was ~100 lines)
240
+ - Test coverage improved +7.06%
241
+ - All 114 tests passing
242
+ - Provider validator now 63.67% covered (up from 56.61%)
243
+
244
+ **Installer Enhancements:**
245
+ - Added personality emoji mapping (26 personalities)
246
+ - Custom track upload with validation
247
+ - File type restrictions (.mp3, .wav, .ogg, .m4a)
248
+ - Registry storage in ~/.agentvibes/custom-tracks.json
249
+ - Audio preview before finalizing selection
250
+
251
+ ### ๐Ÿ”’ Security Notes
252
+
253
+ - All spawnSync calls now use correct array argument form
254
+ - Path traversal prevention maintained in all operations
255
+ - HOME injection protection via os.homedir()
256
+ - No hardcoded credentials introduced
257
+ - Input validation for file uploads and track selection
258
+
259
+ ### ๐Ÿ› Known Limitations
260
+
261
+ - Audio preview requires ffplay, sox, or mpv (feature gracefully degrades if unavailable)
262
+ - Custom track registry is stored locally per user
263
+ - Some legacy bash scripts still lack strict mode (pre-existing, low risk)
264
+
265
+ ### ๐Ÿ™ Acknowledgments
266
+
267
+ This release includes fixes identified through adversarial code review, ensuring production-quality reliability and security alignment with CLAUDE.md standards.
268
+
269
+ ---
270
+
271
+ ## ๐Ÿ›ก๏ธ v3.5.8 - Provider Validation Security & UX Improvements
272
+
273
+ **Release Date:** February 12, 2026
274
+
275
+ ### ๐ŸŽฏ Summary
276
+
277
+ 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.
278
+
279
+ ### โœจ Key Improvements
280
+
281
+ - **๐Ÿ” Security Fixes:** Fixed command injection vulnerability (template strings โ†’ array form), prevented HOME injection attacks, added path traversal protection
282
+ - **โœ… Provider Detection:** Soprano via pipx now correctly detected; added checkedLocations tracking for transparency
283
+ - **๐Ÿ’ฌ Better Messaging:** Explicit "Detected and selected!" confirmation; detailed error messages showing what was checked
284
+ - **๐Ÿงช Test Coverage:** Enhanced tests verify actual detection values, not just types
285
+ - **๐Ÿ› Debugging:** Added [DEBUG] logging for troubleshooting provider issues
286
+
287
+ ### ๐Ÿ”ด Critical Fixes
288
+
289
+ 1. **Command Injection Prevention** - All execSync calls now use array form (security: CLAUDE.md)
290
+ 2. **HOME Directory Injection** - Switched to os.homedir() instead of process.env.HOME
291
+ 3. **Path Traversal Protection** - Added path.resolve() validation for pipx venv directories
292
+
293
+ ### ๐ŸŸก Medium Fixes
294
+
295
+ 4. **Pipx Logic Improved** - Tracks checked locations even on success (transparency)
296
+ 5. **Silent Failures Eliminated** - Added [DEBUG] error logging for diagnostics
297
+ 6. **Test Quality Enhanced** - Verify message content, not just types
298
+ 7. **Documentation** - Added JSDoc comments explaining security-critical imports
299
+ 8. **Error Differentiation** - Better distinction between different failure types
300
+
301
+ ### ๐Ÿ“Š Technical Impact
302
+
303
+ - Soprano detection now works reliably for both pip and pipx installations
304
+ - Reduced false negatives in provider validation
305
+ - Enhanced security posture aligned with CLAUDE.md security mandates
306
+ - Improved debuggability with explicit error messages
307
+
308
+ ---
309
+
310
+ ## ๐Ÿ”ง v3.5.7 - CLI Fix: npx Command Output & Startup Hooks
311
+
312
+ **Release Date:** February 12, 2026
313
+
314
+ 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.
315
+
316
+ ### ๐ŸŽฏ What's Fixed
317
+
318
+ - **npx agent-vibes now works** - `npx agent-vibes install`, `npx agent-vibes --help`, all commands produce proper output
319
+ - **Startup hook errors gone** - Removed non-existent hook references from settings.json (pre_compact.py, notification.ts)
320
+ - **CLI execution proper** - Both npx and local execution now use execFileSync with proper argument passing
321
+
322
+ ### ๐Ÿš€ Technical Details
323
+
324
+ **Before v3.5.7:**
325
+ ```javascript
326
+ // bin/agent-vibes (local execution path)
327
+ import('../src/installer.js'); // โŒ No args, doesn't await
328
+ ```
329
+
330
+ **After v3.5.7:**
331
+ ```javascript
332
+ // bin/agent-vibes (all execution paths)
333
+ execFileSync('node', [installerPath, ...arguments_], {
334
+ stdio: 'inherit',
335
+ cwd: isNpxExecution ? path.dirname(__dirname) : process.cwd(),
336
+ }); // โœ… Passes args, proper I/O
337
+ ```
338
+
339
+ ---
340
+
341
+ ## ๐Ÿ”ง v3.5.6 - Bug Fix: Bash Hook Parameter Handling
342
+
343
+ **Release Date:** February 11, 2026
344
+
345
+ 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`.
346
+
347
+ ---
348
+
349
+ ## ๐Ÿ“ฆ v3.5.5 - Native Windows Support: Soprano, Piper & SAPI Providers
350
+
351
+ **Release Date:** February 12, 2026
352
+
353
+ ### ๐ŸŽฏ Why v3.5.5?
354
+
355
+ 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.
356
+
357
+ ### ๐Ÿš€ Key Highlights
358
+
359
+ #### ๐Ÿ–ฅ๏ธ Native Windows TTS (NEW!)
360
+ - **3 providers**: Soprano (ultra-fast neural), Piper (offline neural), Windows SAPI (built-in)
361
+ - **Beautiful PowerShell installer** with figlet banner and interactive setup
362
+ - **8 hook scripts** for complete TTS functionality on Windows
363
+ - **MCP server** auto-resolves `.sh` to `.ps1` on Windows
364
+ - **46 Windows-specific unit tests** with full coverage
365
+
366
+ #### ๐ŸŽต Background Music Selection
367
+ - **16 genre tracks**: Flamenco, Bachata, Bossa Nova, City Pop, Chillwave, and more
368
+ - **Interactive picker** in the installer with descriptions
369
+ - **ffmpeg mixing**: 2s intro, voice over music, 2s fade-out outro
370
+
371
+ #### ๐ŸŽ›๏ธ Reverb / Audio Effects
372
+ - **5 reverb levels**: Off, Light, Medium, Heavy, Cathedral
373
+ - **ffmpeg aecho filter** (no SOX dependency on Windows)
374
+ - Applied before background music mixing for clean layering
375
+
376
+ #### ๐Ÿ”Š Verbosity Control
377
+ - **3 levels**: High (full reasoning), Medium (key updates), Low (essential only)
378
+ - Integrates with session-start-tts.ps1 protocol instructions
379
+
380
+ ### ๐Ÿค– AI Summary
381
+
382
+ 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.
383
+
384
+ ---
385
+
386
+ ## โœจ New Features
387
+
388
+ ### Native Windows TTS
389
+ - Full PowerShell installer (`setup-windows.ps1`) with figlet banner and interactive UX
390
+ - Soprano provider (`play-tts-soprano.ps1`) with Gradio WebUI integration
391
+ - Piper provider (`play-tts-windows-piper.ps1`) with auto-download of voices from HuggingFace
392
+ - Windows SAPI provider (`play-tts-windows-sapi.ps1`) with zero-setup built-in voices
393
+ - TTS router (`play-tts.ps1`) with mute support, background music mixing, and reverb
394
+ - Provider manager, voice manager, audio cache utils, and session-start hook scripts
395
+ - MCP server `.sh` to `.ps1` auto-resolution on Windows
396
+
397
+ ### Installer Enhancements
398
+ - Background music selection with 16 genre tracks and interactive picker
399
+ - Reverb/audio effects selection (Off/Light/Medium/Heavy/Cathedral)
400
+ - Verbosity control (High/Medium/Low) for TTS protocol instructions
401
+ - Updated completion screen showing all 4 settings (provider, background, reverb, verbosity)
402
+
403
+ ---
404
+
405
+ ## ๐Ÿ› Bug Fixes
406
+
407
+ ### Security Fixes
408
+ - Fix path traversal in background music config reader (regex allowlist + path containment)
409
+ - Add allowlist validation for reverb-level.txt config (prevent invalid values)
410
+ - Add `set -euo pipefail` strict mode to `play-tts.sh` for Sonar compliance
411
+
412
+ ### Cross-Platform Fixes
413
+ - Fix self-copy error when setup-windows.ps1 runs from project root
414
+ - Fix test executable permission checks on Windows (skip Unix mode bits)
415
+ - Fix test path separator comparison in uninstall test (use `path.join` not hardcoded `/`)
416
+
417
+ ---
418
+
419
+ ## ๐Ÿ—๏ธ Improvements
420
+
421
+ ### Code Quality
422
+ - Reverb config uses switch-as-allowlist pattern - file content never flows into commands
423
+ - All SoundPlayer instances wrapped in try/finally for resource disposal
424
+ - Environment variable cleanup (`AGENTVIBES_NO_PLAY`) on all exit paths
425
+ - Input validation with regex + range checks for all installer prompts
426
+
427
+ ### Testing
428
+ - 46 new Windows-specific unit tests (hook scripts, providers, security, encoding)
429
+ - 3 cross-platform test fixes for Windows compatibility
430
+ - Full suite: 93 Node tests passing on Windows
431
+
432
+ ---
433
+
434
+ ## ๐Ÿ“Š Statistics
435
+
436
+ - **7 commits** since v3.4.1
437
+ - **3,769 lines added**, 211 removed across 24 files
438
+ - **9 new PowerShell scripts** for Windows TTS
439
+ - **93 tests passing** (46 Windows + 47 cross-platform)
440
+ - **24/24 Sonar quality gates** passing
441
+ - **Security score**: All path traversal and injection vectors reviewed
442
+
443
+ ---
444
+
445
+ ## ๐Ÿ”ง Technical Details
446
+
447
+ ### Files Added
448
+ - `.claude/hooks-windows/play-tts.ps1`: TTS router with reverb and background music
449
+ - `.claude/hooks-windows/play-tts-soprano.ps1`: Soprano neural TTS provider
450
+ - `.claude/hooks-windows/play-tts-windows-piper.ps1`: Piper offline TTS provider
451
+ - `.claude/hooks-windows/play-tts-windows-sapi.ps1`: Windows SAPI built-in voices
452
+ - `.claude/hooks-windows/provider-manager.ps1`: Provider switching
453
+ - `.claude/hooks-windows/voice-manager-windows.ps1`: Voice browsing and selection
454
+ - `.claude/hooks-windows/audio-cache-utils.ps1`: Cache management
455
+ - `.claude/hooks-windows/session-start-tts.ps1`: Auto-activates TTS on Claude start
456
+ - `setup-windows.ps1`: Full Windows installer with 4 interactive sections
457
+ - `test/unit/windows-tts.test.js`: 46 Windows-specific unit tests
458
+
459
+ ### Breaking Changes
460
+ None - all changes are backward compatible. Existing Unix/macOS installations are unaffected.
461
+
462
+ ---
463
+
464
+ ## ๐ŸŽ“ Migration Notes
465
+
466
+ ### For New Windows Users
467
+ 1. Run `npx agentvibes install` (Node.js) or `.\setup-windows.ps1` (PowerShell)
468
+ 2. Follow the interactive setup
469
+ 3. Choose provider (Soprano, Piper, or SAPI)
470
+ 4. Select background music, reverb, and verbosity
471
+ 5. TTS works automatically in Claude Code sessions
472
+
473
+ ### For Existing Unix/macOS Users
474
+ - No changes required - your setup continues working
475
+ - All Unix bash hooks remain untouched
476
+ - Only `play-tts.sh` gained `set -euo pipefail` (strict mode)
477
+
478
+ ---
479
+
480
+ ## ๐Ÿ™ Acknowledgments
481
+
482
+ ### Project Lead
483
+ - **[@paulpreibisch](https://github.com/paulpreibisch)** (Paul Preibisch) โ€” Creator and maintainer of AgentVibes
484
+
485
+ ### Community Contributors
486
+ - **[@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
487
+ - **[@alexeyv](https://github.com/alexeyv)** โ€” For suggesting native Windows support and recommending Windows SAPI as a zero-dependency provider
488
+ - **[@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
489
+
490
+ ### Quality Assurance
491
+ - **Adversarial Security Review**: Path traversal, injection, and resource disposal all validated
492
+ - **Testing**: 93/93 tests passing (100% suite coverage)
493
+ - **Quality Gates**: 24/24 Sonar requirements validated
494
+ - **Co-Authored-By**: Claude Opus 4.6
495
+
496
+ ---
497
+
498
+ **Full Changelog**: https://github.com/paulpreibisch/AgentVibes/compare/v3.4.1...v3.5.5
499
+
500
+ ---
501
+
502
+ ## ๐Ÿ“ฆ v3.4.0 - Soprano TTS, Security Hardening & Environment Intelligence
503
+
504
+ **Release Date:** February 10, 2026
505
+
506
+ ### ๐ŸŽฏ Why v3.4.0?
507
+
508
+ 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.
509
+
510
+ ### ๐Ÿš€ Key Highlights
511
+
512
+ #### โšก Soprano TTS Provider (NEW!)
513
+ - **80M parameter neural model** with premium female English voice
514
+ - **20x CPU speed** (vs Piper), **2000x GPU speed** with CUDA
515
+ - **3 synthesis modes**: WebUI (Gradio), API (OpenAI-compatible), CLI (fallback)
516
+ - **Auto-detection**: Checks for running Gradio server, falls back gracefully
517
+ - **<1GB memory footprint** - perfect for low-RAM systems
518
+ - **Provider-aware voice management**: Auto-selects single voice, shows model specs
519
+ - **Thanks to [@nathanchase](https://github.com/nathanchase)** for this contribution! ([see acknowledgments](#-acknowledgments))
520
+
521
+ #### ๐Ÿ›ก๏ธ Security Hardening (9.5/10 Score)
522
+ - **Timeouts on system commands**: Prevents installer hangs (nvidia-smi, sysctl, meminfo)
523
+ - **Bounds checking**: Validates array access before parsing system output
524
+ - **NaN validation**: Prevents crashes from malformed memory/GPU detection
525
+ - **Case-insensitive checks**: PulseAudio tunnel detection handles TCP: and tcp:
526
+ - **Code duplication eliminated**: Extracted PulseAudio helper function (DRY)
527
+
528
+ #### ๐ŸŒ Environment Intelligence
529
+ - **PulseAudio tunnel detection**: Recognizes `PULSE_SERVER=tcp:*` as working audio
530
+ - **Context-aware messaging**:
531
+ - "๐ŸŒ PulseAudio Tunnel Detected!" for SSH + tunnel setups
532
+ - "๐Ÿ”Š Audio Output Detected!" for local speakers
533
+ - Distinguishes local/tunnel/hybrid configurations
534
+ - **Smart environment classification**:
535
+ - DESKTOP: Local audio OR active PulseAudio tunnel
536
+ - VOICELESS: No audio AND no tunnel
537
+ - PHONE: Termux/Android devices
538
+
539
+ #### ๐ŸŽค Installer Enhancements
540
+ - **Provider-aware voice pages**: Soprano shows model specs, Piper shows 50+ voices
541
+ - **Auto-selection logic**: Soprano (1 voice) auto-selects, no manual choice needed
542
+ - **GPU-based recommendations**: "Your GPU will run Soprano 2000x faster!"
543
+ - **RAM-based suggestions**: Low memory systems see "Soprano uses <1GB" message
544
+ - **Better RAM display**: Shows "512MB" instead of "0GB" for sub-1GB systems
545
+
546
+ ### ๐Ÿค– AI Summary
547
+
548
+ 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.
549
+
550
+ ---
551
+
552
+ ## โœจ New Features
553
+
554
+ ### Soprano TTS Provider
555
+ - Add Soprano TTS provider script with 3 synthesis modes (WebUI, API, CLI) (#95)
556
+ - Integrate Soprano into TTS router and provider manager
557
+ - Add soprano-gradio-synth.py helper for WebUI/SSE protocol
558
+ - Provider-aware voice selection page with model specifications
559
+ - Auto-select single Soprano voice with performance details
560
+
561
+ ### Installer Intelligence
562
+ - Add `detectSystemCapabilities()` for GPU/RAM detection
563
+ - Add `hasPulseAudioTunnel()` helper function
564
+ - Context-aware audio detection messaging (tunnel vs local)
565
+ - GPU-based provider ordering (Soprano first for CUDA users)
566
+ - RAM-based recommendations (<4GB systems see Soprano first)
567
+ - Provider-specific intro messages (Soprano vs Piper vs macOS)
568
+
569
+ ### Environment Detection
570
+ - PulseAudio tunnel recognition via PULSE_SERVER env var
571
+ - Case-insensitive TCP protocol detection
572
+ - Smart DESKTOP classification (local audio OR tunnel)
573
+ - Improved VOICELESS detection (no audio AND no tunnel)
574
+
575
+ ---
576
+
577
+ ## ๐Ÿ› Bug Fixes
578
+
579
+ ### Security Fixes
580
+ - Add 5s timeout to nvidia-smi to prevent GPU detection hangs
581
+ - Add 3s timeout to sysctl/meminfo to prevent memory detection hangs
582
+ - Add bounds checking before parsing sysctl output (macOS)
583
+ - Add bounds checking before parsing /proc/meminfo (Linux)
584
+ - Add NaN validation for parseInt() memory size parsing
585
+ - Fix case sensitivity in PULSE_SERVER detection (handles TCP: and tcp:)
586
+
587
+ ### Test Fixes
588
+ - Fix provider-manager test #90: Add soprano and ssh-remote to cleanup list
589
+ - Ensure zero-provider edge case properly simulates empty state
590
+
591
+ ### User Experience
592
+ - Fix RAM display for <1GB systems (show "512MB" not "0GB")
593
+ - Fix PulseAudio selection triggering wrong setup flow
594
+ - Separate PulseAudio tunnel setup from SSH receiver setup
595
+
596
+ ---
597
+
598
+ ## ๐Ÿ—๏ธ Improvements
599
+
600
+ ### Code Quality
601
+ - Extract PulseAudio detection to helper function (DRY principle)
602
+ - Implement system capabilities caching (eliminates duplicate calls)
603
+ - Add comprehensive error handling in detectSystemCapabilities()
604
+ - Improve code comments for security-critical sections
605
+
606
+ ### Performance
607
+ - Cache system detection results (prevents duplicate nvidia-smi calls)
608
+ - Add timeouts to prevent indefinite hangs
609
+ - Optimize provider detection with early returns
610
+
611
+ ### Documentation
612
+ - Add comprehensive commit message documenting all changes
613
+ - Document security improvements (timeouts, bounds checking, NaN validation)
614
+ - Explain PulseAudio tunnel detection architecture
615
+ - Detail environment classification logic
616
+
617
+ ---
618
+
619
+ ## ๐Ÿ“Š Statistics
620
+
621
+ - **91 commits** since v3.3.0
622
+ - **817 lines added** in merge to master
623
+ - **6 files modified** in core integration
624
+ - **260 tests passing** (213 BATS + 47 Node)
625
+ - **Security score**: 7.5/10 โ†’ 9.5/10
626
+ - **Test coverage**: 100% pass rate
627
+
628
+ ---
629
+
630
+ ## ๐Ÿ”ง Technical Details
631
+
632
+ ### Files Modified
633
+ - `src/installer.js`: +335 lines (security fixes, environment detection, Soprano integration)
634
+ - `test/unit/provider-manager.bats`: +4 lines (fix edge case test)
635
+ - `.claude/hooks/play-tts-soprano.sh`: +320 lines (new provider)
636
+ - `.claude/hooks/soprano-gradio-synth.py`: +139 lines (new helper)
637
+ - `.claude/hooks/provider-manager.sh`: +17 lines (Soprano support)
638
+ - `.claude/hooks/play-tts.sh`: +6 lines (route to Soprano)
639
+
640
+ ### Breaking Changes
641
+ None - all changes are backward compatible.
642
+
643
+ ### Dependencies
644
+ - **New**: `soprano-tts` (Python package, optional)
645
+ - **Recommended**: CUDA-capable GPU for 2000x speedup (optional)
646
+ - **Compatible**: Works on CPU-only systems (20x vs Piper)
647
+
648
+ ---
649
+
650
+ ## ๐ŸŽ“ Migration Notes
651
+
652
+ ### For New Users
653
+ 1. Run `npx agentvibes install`
654
+ 2. Installer auto-detects your hardware (GPU, RAM, platform)
655
+ 3. Soprano appears as option if you have working audio
656
+ 4. Select Soprano for ultra-fast TTS with GPU acceleration
657
+
658
+ ### For Existing Users
659
+ 1. Update: `npx agentvibes update`
660
+ 2. Switch provider: `/agent-vibes:provider switch soprano`
661
+ 3. Test: `/agent-vibes:sample soprano-default`
662
+ 4. Optionally install soprano-tts: `pip install soprano-tts`
663
+
664
+ ### PulseAudio Tunnel Users
665
+ - Installer now auto-detects your tunnel configuration
666
+ - Shows "๐ŸŒ PulseAudio Tunnel Detected!" instead of "speakers"
667
+ - Provides DESKTOP mode options (Soprano, Piper, macOS Say)
668
+ - No manual configuration needed
669
+
670
+ ---
671
+
672
+ ## ๐Ÿ™ Acknowledgments
673
+
674
+ ### Special Thanks
675
+
676
+ **๐ŸŽ‰ [@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! ๐Ÿš€
677
+
678
+ ### Quality Assurance
679
+
680
+ - **Security Review**: Adversarial code review achieved 9.5/10 score
681
+ - **Testing**: All 260 tests pass (100% suite coverage)
682
+ - **Quality Gates**: All Sonar requirements validated
683
+ - **Co-Authored-By**: Claude Sonnet 4.5
684
+
685
+ ---
686
+
687
+ ## ๐Ÿ“š Additional Resources
688
+
689
+ - [Soprano TTS Documentation](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/providers.md#soprano-tts)
690
+ - [PulseAudio Tunnel Setup](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/SSH_REMOTE_SETUP.md)
691
+ - [Security Hardening Guide](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/security-hardening-guide.md)
692
+ - [Provider Comparison](https://github.com/paulpreibisch/AgentVibes/blob/master/docs/providers.md)
693
+
694
+ ---
695
+
696
+ **Full Changelog**: https://github.com/paulpreibisch/AgentVibes/compare/v3.3.0...v3.4.0
697
+
698
+ ---
699
+
700
+ ## ๐Ÿ“ฆ v3.3.0 - Remote TTS, Smart Installer, OpenClaw Receiver & Cache Management
701
+
702
+ **Release Date:** February 5, 2026
703
+
704
+ ### ๐ŸŽฏ Why v3.3.0?
705
+
706
+ v3.3.0 transforms AgentVibes into a **universal TTS platform** for any environment:
707
+
708
+ - **SSH-Remote Provider** - Generate TTS on servers, receive audio on your phone/computer
709
+ - **Termux/Android Support** - Native Piper TTS on mobile devices
710
+ - **OpenClaw Integration** - Turn voiceless servers into Siri-like conversational AI
711
+ - **AgentVibes Receiver** - Receive and play audio from remote servers on your device
712
+ - **Smart Installer** - Auto-detects your environment (voiceless, GUI, Termux, SSH)
713
+ - **Intelligent Cache Management** - Real-time tracking and auto-cleanup prevents disk bloat
714
+
715
+ #### ๐ŸŒ Real-World Use Case: OpenClaw + AgentVibes Receiver
716
+
717
+ You deploy OpenClaw on a voiceless Mac mini (or remote server) where users message you via WhatsApp, Telegram, or Discord. With v3.3.0:
718
+
719
+ **Before AgentVibes Receiver:**
720
+ - User messages: "Tell me a joke"
721
+ - Mac mini processes request
722
+ - Text response appears in chat
723
+ - ๐Ÿ˜ž No audio - silent experience
724
+
725
+ **After AgentVibes Receiver:**
726
+ 1. **Install AgentVibes** on your Mac mini (or remote server)
727
+ 2. **Install AgentVibes Receiver** on your phone/iPad/laptop
728
+ 3. **Connect via Tailscale** (one-time setup)
729
+ 4. **User messages:** "Tell me a joke"
730
+ 5. **Mac mini generates TTS** with your configured voice
731
+ 6. **Audio streams to your device** via SSH tunnel
732
+ 7. **Your speakers play:** ๐Ÿ”Š "Why did the AI go to school? To improve its learning model!"
733
+ 8. **User in WhatsApp also hears** the audio playing (Siri-like experience)
734
+
735
+ Result: OpenClaw transforms from **silent text AI** โ†’ **Conversational AI with voice**
736
+
737
+ Perfect for:
738
+ - ๐Ÿ–ฅ๏ธ Mac mini with OpenClaw
739
+ - ๐Ÿ–ฅ๏ธ Remote servers (AWS, DigitalOcean, Linode)
740
+ - ๐Ÿ—๏ธ Container deployments (Docker)
741
+ - ๐Ÿ”ง WSL (Windows Subsystem for Linux)
742
+ - ๐Ÿ“ฑ Any voiceless environment needing audio
743
+
744
+ ### ๐Ÿค– AI Summary
745
+
746
+ 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.
747
+
748
+ **Key Highlights:**
749
+ - ๐ŸŒ **SSH-Remote TTS** - Remote device playback via PulseAudio tunneling (servers, containers, WSL)
750
+ - ๐Ÿ“ฑ **Android/Termux Support** - Native Piper TTS on Android with termux-media-player integration
751
+ - ๐Ÿค– **OpenClaw Receiver** (formerly Clawdbot) - AgentVibes Receiver for receiving TTS from voiceless servers
752
+ - ๐Ÿง  **Smart Installer** - Voiceless environment detection + personality injection for BMAD
753
+ - ๐Ÿ“Š **Real-Time Cache Tracking** - File count and size on every output with dynamic colors
754
+ - ๐Ÿงน **Intelligent Auto-Cleanup** - Size-based threshold (15MB default) prevents storage bloat
755
+ - ๐ŸŽต **Queue Management** - Prevents TTS audio overlap via centralized queue system
756
+ - โš™๏ธ **Audio Effects** - Full support across SSH-remote, Termux-ssh, and local providers
757
+ - ๐Ÿ“ **Uninstall Command** - Comprehensive cleanup with full documentation
758
+ - โœ… **96 Commits** - Massive feature expansion with 213 BATS tests passing
759
+
760
+ ### โœจ New Features
761
+
762
+ #### ๐ŸŒ Remote SSH TTS Support
763
+
764
+ **SSH-Remote Provider:**
765
+ - Play TTS on remote servers via SSH + PulseAudio tunneling
766
+ - Zero-dependency for audio output (uses PulseAudio network tunnel)
767
+ - Perfect for deployed Claude Code on servers, containers, WSL
768
+ - Auto-configuration of PulseAudio TCP module
769
+ - Fallback to local playback if SSH unavailable
770
+ - Full compatibility with all voice selection and audio effects
771
+
772
+ **SSH-PulseAudio Integration:**
773
+ - Automatic SSH connection detection and setup
774
+ - Secure TCP tunnel for audio stream transmission
775
+ - Support for both interactive and batch TTS operations
776
+ - Persistent audio configuration per SSH session
777
+
778
+ #### ๐Ÿ“ฑ Android/Termux Support
779
+
780
+ **Termux-SSH Provider:**
781
+ - Native Piper TTS on Android via Termux environment
782
+ - Uses termux-media-player for audio playback
783
+ - Full voice selection and effects support
784
+ - Automatic temp directory detection
785
+ - Integration with Tailscale for secure remote access
786
+ - Comprehensive setup guide with QR codes
787
+
788
+ **Android Installation:**
789
+ - Self-contained Termux installer script
790
+ - One-command setup: `curl https://agentvibes.org/install-android | bash`
791
+ - Automatic dependency detection and installation
792
+ - Piper voice download management
793
+
794
+ #### ๐ŸŽ™๏ธ OpenClaw Integration & AgentVibes Receiver
795
+
796
+ **What is AgentVibes Receiver?**
797
+
798
+ 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.
799
+
800
+ **The Problem It Solves:**
801
+ - OpenClaw running on Mac mini/remote server has no audio output
802
+ - Users message via WhatsApp/Telegram/Discord - get text responses only
803
+ - ๐Ÿ˜ž No voice = Less engaging AI experience
804
+
805
+ **AgentVibes Receiver Solution:**
806
+ 1. **Lightweight client** runs on your device (phone/tablet/laptop)
807
+ 2. **SSH tunnel** securely connects to your voiceless server
808
+ 3. **Audio streams** from server to your device via PulseAudio
809
+ 4. **Auto-plays** on your speakers when OpenClaw responds
810
+ 5. **Siri-like experience** - Text + Voice in one flow
811
+
812
+ **How It Works:**
813
+
814
+ ```
815
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
816
+ โ”‚ Your Mac mini / Server โ”‚
817
+ โ”‚ (OpenClaw + AgentVibes) โ”‚
818
+ โ”‚ โ”œโ”€ No audio output โ”‚
819
+ โ”‚ โ”œโ”€ Generates TTS โ”‚
820
+ โ”‚ โ””โ”€ Sends via SSH tunnel โ”‚
821
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
822
+ โ†“ SSH Tunnel (encrypted)
823
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
824
+ โ”‚ Your Phone / Laptop โ”‚
825
+ โ”‚ (AgentVibes Receiver) โ”‚
826
+ โ”‚ โ”œโ”€ Receives audio stream โ”‚
827
+ โ”‚ โ”œโ”€ Plays on speakers โ”‚
828
+ โ”‚ โ””โ”€ You hear OpenClaw speak โ”‚
829
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
830
+ ```
831
+
832
+ **Example Flow:**
833
+ ```
834
+ WhatsApp: "Tell me a joke"
835
+ โ†“
836
+ Mac mini: Processes with Claude
837
+ โ†“
838
+ Generates TTS: "Why did the AI... [audio file]"
839
+ โ†“ SSH tunnel
840
+ Your Phone: Plays audio ๐Ÿ”Š
841
+ โ†“
842
+ You hear: "Why did the AI go to school?"
843
+ ```
844
+
845
+ **AgentVibes Receiver Features:**
846
+ - **One-Time Setup** - Pair with server via SSH key
847
+ - **Automatic Connection** - Reconnects if interrupted
848
+ - **Real-Time Streaming** - Low latency audio playback
849
+ - **SSH Encryption** - Secure tunnel for audio
850
+ - **Tailscale Support** - Easy VPN for remote servers
851
+ - **Multiple Servers** - Connect to different OpenClaw instances
852
+ - **Voice Control** - Full voice selection on the server side
853
+ - **Cache Metrics** - Monitor audio generation and cleanup
854
+
855
+ **OpenClaw Skill Integration:**
856
+ - Installed automatically with AgentVibes on OpenClaw server
857
+ - Full feature access:
858
+ - Voice selection (50+ voices)
859
+ - Personality/sentiment (sarcastic, flirty, etc.)
860
+ - Audio effects (reverb, echo, pitch)
861
+ - Speech speed (0.5x - 3.0x)
862
+ - Language translation (speak in different languages)
863
+ - Real-time cache tracking
864
+ - Automatic cleanup of old audio files
865
+
866
+ #### ๐Ÿง  Smart Installer Enhancements
867
+
868
+ **Voiceless Environment Detection:**
869
+ - Auto-detects if GUI audio is unavailable (headless servers, containers)
870
+ - Offers SSH-remote TTS as alternative for voiceless environments
871
+ - Prevents installation of unnecessary audio dependencies
872
+
873
+ **Personality Injection (BMAD):**
874
+ - Interactive prompt during install for BMAD users
875
+ - Optional TTS personality configuration
876
+ - Sentiment/personality selection built into setup flow
877
+ - Skipped for non-BMAD environments
878
+
879
+ **Provider Auto-Selection:**
880
+ - Intelligent detection of available providers:
881
+ - macOS Say (macOS systems)
882
+ - Piper TTS (all systems)
883
+ - SSH-remote (if SSH available)
884
+ - Termux-ssh (Android/Termux)
885
+ - Shows only relevant providers in installation
886
+
887
+ **Better UX:**
888
+ - Clear descriptions of each provider
889
+ - Setup URLs for complex providers (Tailscale)
890
+ - Comprehensive help text for each option
891
+ - Git log integration for recent changes
892
+
893
+ #### ๐Ÿ“Š Real-Time TTS Cache Tracking & Intelligent Auto-Cleanup
894
+
895
+ **Why Cache Management Matters:**
896
+ - TTS audio files accumulate quickly
897
+ - Server deployments can run out of disk space silently
898
+ - Users have no visibility into cache size or cleanup status
899
+ - Manual cleanup is inconvenient and error-prone
900
+
901
+ **Cache Display on Every Output:**
902
+ Every time you generate TTS, you see real-time cache metrics:
903
+ ```
904
+ ๐Ÿ’พ Saved to: /home/user/.claude/audio/tts-1770274925.wav ๐Ÿ“ฆ 28 20.9MB ๐Ÿงน[15mb]
905
+ ```
906
+
907
+ What you see:
908
+ - ๐Ÿ’พ **Full path** - Clickable file for replay or sharing
909
+ - ๐Ÿ“ฆ **28** - File count in cache
910
+ - **20.9MB** - Total cache size (color-coded):
911
+ - ๐ŸŸข Green: <500MB
912
+ - ๐ŸŸก Yellow: 500MB-3GB
913
+ - ๐Ÿ”ด Red: >3GB
914
+ - ๐Ÿงน **[15mb]** - Auto-cleanup threshold
915
+
916
+ **Intelligent Size-Based Auto-Cleanup:**
917
+ - Deletes oldest files when cache exceeds threshold (default: 15MB)
918
+ - Silent operation (no blocking prompts)
919
+ - Write-lock protection prevents conflicts with TTS generation
920
+ - Respects active TTS (won't delete while generating)
921
+
922
+ **Configuration:**
923
+ ```bash
924
+ # Per-project threshold override
925
+ echo "50" > .claude/tts-auto-clean-threshold.txt # 50MB limit
926
+
927
+ # Or disable cleanup
928
+ echo "0" > .claude/tts-auto-clean-threshold.txt # Disable
929
+ ```
930
+
931
+ **Manual Cleanup:**
932
+ ```bash
933
+ # Non-interactive cleanup
934
+ /agent-vibes:clean
935
+
936
+ # Or programmatically via MCP
937
+ await agent_vibes.clean_audio_cache()
938
+ ```
939
+
940
+ #### ๐ŸŽต TTS Queue Management
941
+
942
+ **Overlap Prevention:**
943
+ - Centralized queue system for TTS operations
944
+ - Prevents simultaneous audio playback
945
+ - Critical for Clawdbot multi-agent scenarios
946
+ - Atomic queue operations ensure consistency
947
+
948
+ **Queue Integration:**
949
+ - Automatic in OpenClaw Receiver
950
+ - Optional in standalone environments
951
+ - Fallback to sequential playback
952
+
953
+ #### โš™๏ธ Audio Effects Across All Providers
954
+
955
+ **Effects Support:**
956
+ - Reverb, echo, pitch, EQ available
957
+ - SSH-remote provider: Full effects support
958
+ - Termux-ssh provider: Full effects support
959
+ - All local providers: Unchanged effects behavior
960
+
961
+ **Configuration:**
962
+ - Per-session override via environment variables
963
+ - Project-local settings via config files
964
+ - Persistent across TTS operations
965
+
966
+ #### ๐Ÿ“ Comprehensive Uninstall Command
967
+
968
+ **`/agent-vibes:uninstall` Skill:**
969
+ - Complete removal of AgentVibes and dependencies
970
+ - Interactive prompts for user confirmation
971
+ - Option to preserve configuration
972
+ - Detailed removal logs
973
+ - Full documentation included
974
+
975
+ ### ๐Ÿ› Bug Fixes
976
+
977
+ - **TTS Overlap** - Fixed audio overlapping via queue management
978
+ - **Termux Audio** - Proper detection and use of termux-media-player
979
+ - **SSH Detection** - Improved SSH environment detection logic
980
+ - **Race Conditions** - Write-lock mechanism prevents cleanup conflicts
981
+ - **Temp Directory** - Proper Termux temp directory handling
982
+ - **Color Codes** - Fixed GOLD color (256-color \033[38;5;226m)
983
+ - **Stat Compatibility** - BSD/GNU stat detection with proper output suppression
984
+ - **Syntax Validation** - Fixed installer.js syntax errors
985
+ - **Coverage Testing** - Proper coverage file generation for CI/CD
986
+
987
+ ### ๐Ÿ”’ Security & Quality
988
+
989
+ - **No Hardcoded Credentials** - All secure operations use environment variables
990
+ - **SSH Safety** - Secure PulseAudio tunnel authentication
991
+ - **Atomic Operations** - Queue and receiver use atomic file operations
992
+ - **Input Validation** - All external inputs validated
993
+ - **Pre-existing Limitations** - TTS scripts lack `set -euo pipefail` (pre-existing)
994
+ - **Sonar Compliance** - Security hotspots resolved, quality gates passing
995
+ - **Test Coverage** - 213 BATS tests + 47 Node unit tests
996
+
997
+ ### โœ… Testing & Validation
998
+
999
+ - **213 BATS Tests** - Core functionality validation
1000
+ - **47 Node Tests** - JavaScript/installer validation
1001
+ - **Cross-Platform** - Piper, macOS, SSH-remote, Termux-ssh
1002
+ - **Environment Tests** - Voiceless, GUI, SSH, Termux detection
1003
+ - **Audio Effects** - All providers tested
1004
+ - **Backwards Compatible** - No breaking changes to existing code
1005
+
1006
+ ---
1007
+
1008
+ ## ๐Ÿ“ฆ v3.2.0 - Clawdbot Integration: AI Assistants on Any Messenger
1009
+
1010
+ **Release Date:** January 27, 2026
1011
+
1012
+ ### ๐ŸŽฏ Why v3.2.0?
1013
+
1014
+ 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.
1015
+
1016
+ ### ๐Ÿค– AI Summary
1017
+
1018
+ 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.
1019
+
1020
+ **Key Highlights:**
1021
+ - ๐Ÿค– **Clawdbot Integration** - Native TTS support for Clawdbot AI assistant framework
1022
+ - ๐Ÿ’ฌ **Messenger Platforms** - Works with WhatsApp, Telegram, Discord via Clawdbot
1023
+ - ๐Ÿ”Š **Remote SSH Audio** - Perfect for Clawdbot on remote servers with PulseAudio tunneling
1024
+ - ๐Ÿ“ฆ **Simple Install** - Just `npx agentvibes install` and it works
1025
+ - ๐Ÿ›ก๏ธ **SonarCloud Fixes** - Quality gate workflow improvements and documentation
1026
+ - โœ… **Full Test Coverage** - All 213 BATS + 47 Node tests passing
1027
+
1028
+ ### โœจ New Features
1029
+
1030
+ **Clawdbot Skill (`.clawdbot/`):**
1031
+ - New `.clawdbot/` directory with skill integration files
1032
+ - `README.md` - Clawdbot integration overview and setup guide
1033
+ - `skill/SKILL.md` - Comprehensive skill documentation with voice selection, background music, effects, personalities, and remote SSH audio setup
1034
+ - Automatically distributed via npm package
1035
+ - Zero-configuration when AgentVibes is installed
1036
+
1037
+ **README Updates:**
1038
+ - Added "๐Ÿค– Clawdbot Integration" section with full documentation
1039
+ - Updated header to include Clawdbot alongside Claude Code, Claude Desktop, and Warp Terminal
1040
+ - Added Clawdbot to Quick Links table
1041
+ - Clawdbot description: "A revolutionary AI assistant you can access via any instant messenger"
1042
+ - Website link: https://clawd.bot
1043
+
1044
+ **package.json Updates:**
1045
+ - Added `.clawdbot/` to npm files array for distribution
1046
+ - Added `clawdbot` to keywords for npm discoverability
1047
+ - Updated description to mention Clawdbot support
1048
+
1049
+ ### ๐Ÿ› Bug Fixes
1050
+
1051
+ - **SonarCloud Quality Gate** - Disabled quality gate status reporting to GitHub to prevent false CI failures
1052
+ - **Coverage File Generation** - Ensured coverage file is generated before SonarCloud scan
1053
+ - **CLI Test Coverage** - Added CLI tests and excluded CLI entry point from coverage requirements
1054
+ - **macOS Runner** - Removed macos-15-large runner to avoid GitHub billing limits
1055
+ - **Piper Voice Test** - Updated installation test to match current voice list
1056
+
1057
+ ### ๐Ÿ“š Documentation
1058
+
1059
+ - Added step-by-step SonarCloud dashboard configuration guide
1060
+ - Added guide to disable SonarCloud GitHub App checks
1061
+ - Comprehensive Clawdbot integration documentation with SSH audio examples
1062
+
1063
+ ### ๐Ÿ”’ Security & Quality
1064
+
1065
+ - โœ… All Sonar quality gates validated
1066
+ - โœ… No hardcoded credentials in changes
1067
+ - โœ… New Clawdbot files are documentation only (no executable code)
1068
+ - โœ… All 213 BATS + 47 Node tests passing
1069
+
1070
+ ### ๐Ÿ“Š Changes Summary
1071
+
1072
+ - **Files Added:** 2 (`.clawdbot/README.md`, `.clawdbot/skill/SKILL.md`)
1073
+ - **Files Modified:** 2 (`README.md`, `package.json`)
1074
+ - **Commits Since v3.1.0:** 11 (5 fixes, 4 docs, 1 test, 1 debug)
1075
+
1076
+ ### ๐ŸŽฏ User Impact
1077
+
1078
+ **For Clawdbot Users:**
1079
+ - Professional TTS with 50+ voices in 30+ languages
1080
+ - Works on remote servers with SSH audio tunneling
1081
+ - Zero API costsโ€”Piper TTS is free and offline
1082
+ - Automatic integration when AgentVibes is installed
1083
+
1084
+ **For Existing Users:**
1085
+ - Zero breaking changes
1086
+ - All existing features work exactly the same
1087
+ - Clawdbot support is additive
1088
+
1089
+ ### ๐Ÿš€ Migration Notes
1090
+
1091
+ No migration required! This is a fully backward-compatible minor release.
1092
+
1093
+ **To Use with Clawdbot:**
1094
+ 1. Install: `npx agentvibes install`
1095
+ 2. Speak: `npx agentvibes speak "Hello!"`
1096
+
1097
+ ### ๐Ÿ“ฆ Full Changelog
1098
+
1099
+ **Feature Commits:**
1100
+ - `(pending)` feat: Add Clawdbot integration
1101
+
1102
+ **Bug Fix Commits:**
1103
+ - `5cd97d52` fix: Disable SonarCloud quality gate status reporting to GitHub
1104
+ - `12f822e6` fix: Disable quality gate failure in SonarCloud workflow
1105
+ - `0d26ccc2` fix: Ensure coverage file is generated before SonarCloud scan
1106
+ - `c2465508` fix: Add CLI tests and exclude CLI entry point from coverage
1107
+ - `c673afe1` fix: Remove macos-15-large runner to avoid GitHub billing limits
1108
+ - `92271732` fix: Update Piper installation test to match current voice list
1109
+
1110
+ **Documentation Commits:**
1111
+ - `f72dd977` docs: Add guide to disable SonarCloud GitHub App checks
1112
+ - `6587519b` docs: Add step-by-step SonarCloud dashboard configuration guide
1113
+ - `ba765f50` docs: Add SonarCloud quality gate configuration guidance
1114
+
1115
+ **Test Commits:**
1116
+ - `47f08a79` test: Trigger workflow to verify SonarCloud quality gate fix
1117
+
1118
+ **Debug Commits:**
1119
+ - `84945d25` debug: Add coverage file verification to SonarCloud workflow
1120
+
1121
+ ---
1122
+
1123
+ ## ๐Ÿ“ฆ v3.1.0 - Android Native Support: Run Claude Code on Your Phone
1124
+
1125
+ **Release Date:** January 22, 2026
1126
+
1127
+ ### ๐ŸŽฏ Why v3.1.0?
1128
+
1129
+ 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.
1130
+
1131
+ ### ๐Ÿค– AI Summary
1132
+
1133
+ 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.
1134
+
1135
+ **Key Highlights:**
1136
+ - ๐Ÿค– **Native Android Support** - Run Claude Code with TTS directly on Android devices via Termux
1137
+ - ๐Ÿ“ฆ **Automatic Termux Detection** - AgentVibes auto-detects Android and runs specialized installation
1138
+ - ๐ŸŽฏ **Proot-Distro Integration** - Solves glibc compatibility with proot Debian environment
1139
+ - ๐Ÿ”Š **Android Audio Playback** - Uses termux-media-player for native Android audio routing
1140
+ - ๐Ÿ“š **Comprehensive Documentation** - Complete Android setup guide with troubleshooting and F-Droid instructions
1141
+ - โœ… **Full Test Coverage** - All 213 BATS + 38 Node tests passing with Android compatibility
1142
+
1143
+ ### โœจ New Features
1144
+
1145
+ **Termux Installer (`.claude/hooks/termux-installer.sh`):**
1146
+ - New 224-line installer specifically for Android/Termux environments
1147
+ - Automatically installs proot-distro with Debian (for glibc compatibility)
1148
+ - Downloads and configures Piper TTS binary in proot environment
1149
+ - Creates `/usr/bin/piper` wrapper that routes through proot
1150
+ - Installs audio dependencies: ffmpeg, sox, bc, termux-api
1151
+ - Interactive voice selection with 50+ language options
1152
+ - Validates Termux environment before proceeding
1153
+
1154
+ **Termux Detection (`src/installer.js`):**
1155
+ - New `isTermux()` function checks for `/data/data/com.termux` directory
1156
+ - New `detectAndNotifyTermux()` displays Android detection messages
1157
+ - Auto-configures piper provider with Termux-compatible voice
1158
+ - Shows Termux-specific installation instructions
1159
+ - Piper installer automatically redirects to termux-installer.sh on Android
1160
+
1161
+ **Audio Processor Updates (`.claude/hooks/audio-processor.sh`):**
1162
+ - Detects Termux environment for temp directory selection
1163
+ - Uses `${PREFIX}/tmp` on Termux, `/tmp` on standard systems
1164
+ - Ensures audio effects work correctly on Android
1165
+ - Cross-platform compatibility maintained
1166
+
1167
+ **Piper Installer Updates (`.claude/hooks/piper-installer.sh`):**
1168
+ - Auto-detects Termux and redirects to specialized installer
1169
+ - Shows clear message when routing to Termux-specific setup
1170
+
1171
+ **Android Audio Playback (`.claude/hooks/play-tts-piper.sh`):**
1172
+ - Detects Android/Termux environment
1173
+ - Uses `termux-media-player` instead of `paplay` on Android
1174
+ - Audio routes through Android's native media system
1175
+
1176
+ ### ๐Ÿ“š Documentation
1177
+
1178
+ **New Android Setup Section (`README.md`):**
1179
+ - Added "๐Ÿค– Android / Termux" section to System Requirements
1180
+ - Complete 3-step installation guide for Android devices
1181
+ - Explanation of why Termux needs special handling (bionic vs glibc)
1182
+ - Requirements: Termux app from F-Droid, Termux:API, Android 7.0+
1183
+ - Audio playback architecture explanation
1184
+ - Setup verification commands
1185
+ - Troubleshooting table for common issues
1186
+ - Clear explanation of why F-Droid version is required (not Google Play)
1187
+ - Updated Quick Links table with direct link to Android setup
1188
+
1189
+ ### ๐Ÿ› Bug Fixes
1190
+
1191
+ - **Test #90 Fix** - Added termux-ssh provider to test cleanup list for "no providers found" edge case
1192
+ - **Temp Directory Detection** - Fixed audio-processor.sh defaulting to Termux paths on non-Termux systems
1193
+ - **Sonar Compliance** - Added `set -euo pipefail` strict mode to termux-installer.sh for security
1194
+
1195
+ ### ๐Ÿ”’ Security & Quality
1196
+
1197
+ - โœ… All Sonar quality gates validated
1198
+ - โœ… Strict mode (`set -euo pipefail`) on all new bash scripts
1199
+ - โœ… No hardcoded credentials
1200
+ - โœ… Proper variable quoting and input validation
1201
+ - โœ… Cross-platform temp directory handling
1202
+ - โœ… All 213 BATS + 38 Node tests passing
1203
+
1204
+ ### ๐Ÿ“Š Changes Summary
1205
+
1206
+ - **Files Modified:** 7
1207
+ - **Lines Added:** +391
1208
+ - **Lines Removed:** -8
1209
+ - **New Files:** 1 (termux-installer.sh)
1210
+ - **Commits:** 8 (5 fixes, 1 feature, 1 docs, 1 merge)
1211
+
1212
+ ### ๐ŸŽฏ User Impact
1213
+
1214
+ **For Android Users:**
1215
+ - Can now run Claude Code directly on Android phones/tablets
1216
+ - Full TTS support with 50+ voices and languages
1217
+ - No remote server required for basic usage
1218
+ - Works offline after initial voice downloads
1219
+
1220
+ **For Developers:**
1221
+ - Complete mobile development solution (native + SSH)
1222
+ - Native Termux for local Android development
1223
+ - Termux-SSH provider for remote server connections
1224
+ - Seamless integration with existing AgentVibes workflows
1225
+
1226
+ **For Existing Users:**
1227
+ - Zero breaking changes
1228
+ - All existing features work exactly the same
1229
+ - New Android support is opt-in via Termux installation
1230
+
1231
+ ### ๐Ÿš€ Migration Notes
1232
+
1233
+ No migration required! This is a fully backward-compatible minor release.
1234
+
1235
+ **To Try Android Support:**
1236
+ 1. Install [Termux from F-Droid](https://f-droid.org/en/packages/com.termux/)
1237
+ 2. Install [Termux:API](https://f-droid.org/en/packages/com.termux.api/)
1238
+ 3. In Termux: `pkg install nodejs-lts`
1239
+ 4. Run: `npx agentvibes install`
1240
+
1241
+ AgentVibes will auto-detect Termux and run the specialized installer.
1242
+
1243
+ ### ๐Ÿ“ฆ Full Changelog
1244
+
1245
+ **Feature Commits:**
1246
+ - `e9d4cf95` feat: Add Android/Termux support for Piper TTS
1247
+
1248
+ **Bug Fix Commits:**
1249
+ - `aa4d3cdd` fix: Add termux-ssh provider to test #90 cleanup list
1250
+ - `c1b00c6d` fix: Use termux-media-player for audio playback on Android
1251
+ - `f96ab89a` fix: Properly detect Termux environment for temp directory
1252
+ - `e2efeb06` fix: Add strict mode to termux-installer.sh for Sonar compliance
1253
+
1254
+ **Documentation Commits:**
1255
+ - `701a9412` docs: Add comprehensive Android/Termux setup section to README
1256
+
1257
+ **Merge Commits:**
1258
+ - `a5d3f546` Merge feature/android-termux into master
1259
+ - `95f04e70` Merge origin/master into feature/pulseaudio-reverse-tunnel
1260
+
1261
+ ---
1262
+
1263
+ ## ๐Ÿ“ฆ v3.0.0 - Cross-Platform Remote Audio: Termux SSH Provider
1264
+
1265
+ **Release Date:** January 8, 2026
1266
+
1267
+ ### ๐ŸŽฏ Why v3.0.0?
1268
+
1269
+ 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."**
1270
+
1271
+ ### ๐Ÿค– AI Summary
1272
+
1273
+ 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.
1274
+
1275
+ **Key Highlights:**
1276
+ - ๐Ÿ“ฑ **Mobile-First AI Conversations** - Have fully interactive, hands-free conversations with Claude Code using just your Android device
1277
+ - ๐Ÿ’ป **Local + Remote Development** - Works for both local coding (laptop โ†’ phone audio) and remote server development
1278
+ - ๐ŸŒ **Tailscale Integration** - Comprehensive guide for internet-wide device access without port forwarding or firewall configuration
1279
+ - ๐Ÿ”ง **Enhanced Installer** - Interactive SSH host configuration with validation and clear use-case guidance
1280
+ - ๐ŸŽฏ **Full MCP Compatibility** - Complete integration with all MCP commands and workflows
1281
+ - ๐Ÿ›ก๏ธ **Quality Gates Integration** - Automated security validation in release process
1282
+
1283
+ ### ๐ŸŽฅ Demo Video
1284
+
1285
+ **Watch it in action:** [Mobile-First AI Conversations with Claude Code](https://youtu.be/ngLiA_KQtTA?si=wTwS4CJidIxWqLIP)
1286
+
1287
+ See the termux-ssh provider in actionโ€”fully interactive, hands-free conversations with Claude Code using just your Android device.
1288
+
1289
+ ### โœจ New Features
1290
+
1291
+ **Termux SSH TTS Provider (`.claude/hooks/play-tts-termux-ssh.sh`):**
1292
+ - New TTS provider for Android via SSH connection
1293
+ - Routes text to `termux-tts-speak` on remote Android device
1294
+ - Configuration priority: env var โ†’ project โ†’ global
1295
+ - Secure quote escaping for safe text transmission
1296
+ - 196 lines of fully documented code
1297
+
1298
+ **Installer Updates (`src/installer.js`):**
1299
+ - Added termux-ssh to provider selection menu
1300
+ - Interactive SSH host alias configuration with validation
1301
+ - Saves host alias to `.claude/termux-ssh-host.txt`
1302
+ - Clear use case description: "Only choose if your project is on a remote server and you want audio sent to your Android device"
1303
+ - Documentation link to TERMUX_SETUP.md
1304
+
1305
+ **TTS Router Updates (`.claude/hooks/play-tts.sh`):**
1306
+ - Added termux-ssh provider routing in two locations
1307
+ - Full integration with existing provider detection
1308
+ - Supports mixed-provider mode (Piper + Termux)
1309
+
1310
+ **MCP Server Integration (`mcp-server/server.py`):**