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