agentvibes 4.6.7 → 4.6.8

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.
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  [![Publish](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml/badge.svg)](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml)
12
12
  [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
13
13
 
14
- **Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v4.6.7
14
+ **Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v4.6.8
15
15
 
16
16
  ---
17
17
 
@@ -41,7 +41,15 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or running Ope
41
41
 
42
42
  ---
43
43
 
44
- ## 🎙️ NEW IN v4.6.7Party Mode TTS Fixes
44
+ ## 🐛 NEW IN v4.6.8Fresh Install Crash Fix
45
+
46
+ - **Settings tab crash fixed** — no longer crashes when navigating to Settings on a fresh install with no voice configured
47
+ - **macOS test fix** — replay path assertion handles `/var` → `/private/var` symlink
48
+ - **BMAD pretext parsing improved** — voices pretext extracted correctly from `bmad-voices.md`
49
+
50
+ ---
51
+
52
+ ## 🎙️ v4.6.7 — Party Mode TTS Fixes
45
53
 
46
54
  - **Agent pretexts now spoken in party mode** — "John, Product Manager here" was being silently dropped due to a pre-synthesis timing bug. Fixed.
47
55
  - **No more spoken asterisks** — markdown stripped before TTS in party mode
@@ -50,7 +58,7 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or running Ope
50
58
 
51
59
  ---
52
60
 
53
- ## 🧭 NEW IN v4.6.6 — Natural TUI Navigation
61
+ ## 🧭 v4.6.6 — Natural TUI Navigation
54
62
 
55
63
  The Settings TUI now flows the way you'd expect. Down moves top-to-bottom through header → sub-tabs → content → footer. Left/Right switches sub-tabs and moves between footer buttons. Up from content returns to the active sub-tab — not always Voice. The Language tab has a proper scrollable list. Readme falls back to the AgentVibes package README when no local one exists. Escape from the installer no longer gets stuck.
56
64
 
package/RELEASE_NOTES.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # AgentVibes Release Notes
2
2
 
3
+ ## 🐛 v4.6.8 — Fresh Install Crash Fix
4
+
5
+ **Release Date:** April 2026
6
+
7
+ ### Bug Fixes
8
+
9
+ - **Settings tab no longer crashes on fresh install** — `parseMultiSpeaker()` called `.includes()` on a null voice ID when no voice was configured yet. Added a null guard that returns a safe default object. Reported by a user hitting this immediately after the install wizard completed.
10
+
11
+ - **macOS /var symlink in replay test** — Fixed test assertion that failed on macOS where `/var` is a symlink to `/private/var`, causing replay path comparisons to break.
12
+
13
+ - **BMAD voices pretext parsing** — `bmad-voices.md` pretext lines are now correctly parsed and markdown is stripped more thoroughly before TTS synthesis.
14
+
15
+ ### User Impact
16
+
17
+ - New users no longer crash when navigating to Settings after a fresh install
18
+ - Test suite passes reliably on macOS
19
+
20
+ ---
21
+
3
22
  ## 🎙️ v4.6.7 — Party Mode TTS Fixes
4
23
 
5
24
  **Release Date:** April 2026
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "agentvibes",
4
- "version": "4.6.7",
4
+ "version": "4.6.8",
5
5
  "description": "Now your AI Agents can finally talk back! Professional TTS voice for Claude Code, Claude Desktop (via MCP), and Clawdbot with multi-provider support.",
6
6
  "homepage": "https://agentvibes.org",
7
7
  "keywords": [
@@ -338,6 +338,7 @@ export const MS_SEP = '::';
338
338
  * @returns {{ model: string, speakerId: number|null, speakerName: string|null, isMultiSpeaker: boolean }}
339
339
  */
340
340
  export function parseMultiSpeaker(voiceId) {
341
+ if (!voiceId) return { model: voiceId ?? '', speakerId: null, speakerName: null, isMultiSpeaker: false };
341
342
  if (voiceId.includes(MS_SEP)) {
342
343
  const [model, speakerName] = voiceId.split(MS_SEP, 2);
343
344
  const jsonPath = path.join(PIPER_VOICES_DIR, model + '.onnx.json');