agentvibes 2.7.1 β†’ 2.7.2

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.
@@ -2,6 +2,7 @@
2
2
 
3
3
  <critical>The workflow execution engine is governed by: {project_root}/.bmad/core/tasks/workflow.xml</critical>
4
4
  <critical>This workflow orchestrates group discussions between all installed BMAD agents</critical>
5
+ <critical>IMPORTANT: Always use PROJECT hooks (.claude/hooks/), NEVER global hooks (~/.claude/hooks/)</critical>
5
6
 
6
7
  <workflow>
7
8
 
@@ -25,6 +26,7 @@
25
26
 
26
27
  <step n="2" goal="Initialize Party Mode">
27
28
  <action>Announce party mode activation with enthusiasm</action>
29
+ <note>If using TTS for announcement, use PROJECT hook: .claude/hooks/play-tts.sh (NOT ~/.claude/hooks/)</note>
28
30
  <action>List all participating agents with their merged information:</action>
29
31
  <format>
30
32
  πŸŽ‰ PARTY MODE ACTIVATED! πŸŽ‰
@@ -119,7 +119,7 @@ Quickly change voice for specific agent.
119
119
  - `personality` (optional): Personality to apply (default: normal)
120
120
 
121
121
  ### `edit`
122
- Opens `.claude/plugins/bmad-voices.md` for manual editing.
122
+ Opens `.claude/config/bmad-voices.md` for manual editing.
123
123
 
124
124
  **Example:**
125
125
  ```
@@ -132,8 +132,8 @@ Edit the markdown table directly to change voice mappings.
132
132
  ## How It Works
133
133
 
134
134
  ### Voice Assignment
135
- 1. **Plugin File**: `.claude/plugins/bmad-voices.md` contains voice-to-agent mappings
136
- 2. **Activation Flag**: `.claude/plugins/bmad-voices-enabled.flag` enables/disables the plugin
135
+ 1. **Plugin File**: `.claude/config/bmad-voices.md` contains voice-to-agent mappings
136
+ 2. **Activation Flag**: `.claude/config/bmad-voices-enabled.flag` enables/disables the plugin
137
137
 
138
138
  ### TTS Injection (Automatic)
139
139
  When you run `/agent-vibes:bmad enable`, the system automatically:
@@ -51,7 +51,7 @@ The integration detects agent responses in the format:
51
51
  When detected, it:
52
52
  1. Extracts the agent's display name (e.g., "Winston", "John")
53
53
  2. Maps it to their agent ID using `.bmad/_cfg/agent-manifest.csv`
54
- 3. Looks up their voice from `.claude/plugins/bmad-voices.md`
54
+ 3. Looks up their voice from `.claude/config/bmad-voices.md`
55
55
  4. Speaks their dialogue with that specific voice
56
56
 
57
57
  ## Example
@@ -79,7 +79,7 @@ See current agent-to-voice mappings:
79
79
 
80
80
  Edit voice assignments in:
81
81
  ```
82
- .claude/plugins/bmad-voices.md
82
+ .claude/config/bmad-voices.md
83
83
  ```
84
84
 
85
85
  ## Requirements
@@ -93,7 +93,7 @@ Edit voice assignments in:
93
93
  **Party mode voices not working?**
94
94
 
95
95
  1. Check BMAD is installed: `ls .bmad/_cfg/agent-manifest.csv`
96
- 2. Check voice plugin enabled: `ls .claude/plugins/bmad-voices-enabled.flag`
96
+ 2. Check voice plugin enabled: `ls .claude/config/bmad-voices-enabled.flag`
97
97
  3. Check party mode not disabled: `ls .claude/plugins/bmad-party-mode-disabled.flag`
98
98
  4. View status: `/agent-vibes:bmad-party status`
99
99
 
@@ -101,7 +101,7 @@ Edit voice assignments in:
101
101
 
102
102
  Check voice mappings: `/agent-vibes:bmad status`
103
103
 
104
- Edit mappings in: `.claude/plugins/bmad-voices.md`
104
+ Edit mappings in: `.claude/config/bmad-voices.md`
105
105
 
106
106
  ## Related Commands
107
107
 
@@ -102,6 +102,7 @@ fi
102
102
 
103
103
  # Speak with agent's voice using queue system (non-blocking for Claude)
104
104
  # Queue system ensures sequential playback while allowing Claude to continue
105
+ # Output from play-tts.sh will be displayed by the queue worker (GitHub Issue #39)
105
106
  if [[ -n "$AGENT_VOICE" ]]; then
106
107
  bash "$SCRIPT_DIR/tts-queue.sh" add "$FULL_TEXT" "$AGENT_VOICE" &
107
108
  else
@@ -453,8 +453,8 @@ disable_plugin() {
453
453
  }
454
454
 
455
455
  # @function list_mappings
456
- # @intent Display all BMAD agent-to-voice mappings in readable format
457
- # @why Help users see which voice is assigned to each agent
456
+ # @intent Display all BMAD agent-to-voice mappings in readable format (provider-aware)
457
+ # @why Help users see which voice is assigned to each agent based on active TTS provider
458
458
  # @param None
459
459
  # @returns None
460
460
  # @exitcode 0=success, 1=plugin file not found
@@ -462,21 +462,43 @@ disable_plugin() {
462
462
  # @edgecases Parses markdown table format, skips header and separator rows
463
463
  # @calledby enable_plugin, show_status, main command dispatcher with "list"
464
464
  # @calls grep, sed, echo
465
+ # @version 2.1.0 - Now provider-aware: shows ElevenLabs or Piper voices based on active provider
465
466
  list_mappings() {
466
467
  if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
467
468
  echo "❌ Plugin file not found: $VOICE_CONFIG_FILE"
468
469
  return 1
469
470
  fi
470
471
 
471
- echo "πŸ“Š BMAD Agent Voice Mappings:"
472
+ # Detect active TTS provider
473
+ local provider_file=""
474
+ if [[ -f ".claude/tts-provider.txt" ]]; then
475
+ provider_file=".claude/tts-provider.txt"
476
+ elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
477
+ provider_file="$HOME/.claude/tts-provider.txt"
478
+ fi
479
+
480
+ local active_provider="elevenlabs" # default
481
+ if [[ -n "$provider_file" ]] && [[ -f "$provider_file" ]]; then
482
+ active_provider=$(cat "$provider_file")
483
+ fi
484
+
485
+ # Display provider info
486
+ echo "πŸ“Š BMAD Agent Voice Mappings (Provider: $active_provider):"
472
487
  echo ""
473
488
 
489
+ # Table: Agent ID | Agent Name | Intro | ElevenLabs Voice | Piper Voice | Personality
490
+ # AWK columns: $1=empty | $2=ID | $3=Name | $4=Intro | $5=ElevenLabs | $6=Piper | $7=Personality
491
+ local voice_column=5 # Default to ElevenLabs (AWK column 5)
492
+ if [[ "$active_provider" == "piper" ]]; then
493
+ voice_column=6 # Use Piper (AWK column 6)
494
+ fi
495
+
474
496
  grep "^| " "$VOICE_CONFIG_FILE" | grep -v "Agent ID" | grep -v "^|---" | \
475
- while IFS='|' read -r _ agent_id name voice personality _; do
476
- agent_id=$(echo "$agent_id" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
477
- name=$(echo "$name" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
478
- voice=$(echo "$voice" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
479
- personality=$(echo "$personality" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
497
+ while IFS='|' read -r line; do
498
+ agent_id=$(echo "$line" | awk -F'|' '{print $2}' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
499
+ name=$(echo "$line" | awk -F'|' '{print $3}' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
500
+ voice=$(echo "$line" | awk -F'|' "{print \$$voice_column}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
501
+ personality=$(echo "$line" | awk -F'|' '{print $7}' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
480
502
 
481
503
  [[ -n "$agent_id" ]] && echo " $agent_id β†’ $voice [$personality]"
482
504
  done
@@ -101,7 +101,7 @@ extract_and_speak() {
101
101
  # @function is_party_mode_enabled
102
102
  # @context Check if BMAD party mode voice integration is enabled
103
103
  # @architecture Auto-enable for BMAD users, opt-out via disable flag
104
- # @dependencies .bmad/_cfg/agent-manifest.csv, .claude/plugins/bmad-voices-enabled.flag
104
+ # @dependencies .bmad/_cfg/agent-manifest.csv, .claude/config/bmad-voices-enabled.flag
105
105
  # @returns 0=enabled, 1=disabled
106
106
  # @aiNotes Auto-enabled when BMAD detected, respects opt-out flag for user control
107
107
  #
@@ -111,7 +111,7 @@ is_party_mode_enabled() {
111
111
 
112
112
  # Auto-enable if BMAD detected + voice plugin enabled
113
113
  if [[ -f "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv" ]] && \
114
- [[ -f "$PROJECT_ROOT/.claude/plugins/bmad-voices-enabled.flag" ]]; then
114
+ [[ -f "$PROJECT_ROOT/.claude/config/bmad-voices-enabled.flag" ]]; then
115
115
  return 0
116
116
  fi
117
117
 
@@ -14,6 +14,23 @@ IDLE_TIMEOUT=5 # Exit after 5 seconds of no new requests
14
14
  # Get script directory
15
15
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
16
16
 
17
+ # Configurable delay between speakers (seconds)
18
+ # Can be overridden by .claude/tts-speaker-delay.txt or ~/.claude/tts-speaker-delay.txt
19
+ SPEAKER_DELAY=4 # Default: 4 seconds between speakers
20
+
21
+ # Check for custom delay configuration
22
+ if [[ -f ".claude/tts-speaker-delay.txt" ]]; then
23
+ CUSTOM_DELAY=$(cat .claude/tts-speaker-delay.txt 2>/dev/null | tr -d '[:space:]')
24
+ if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
25
+ SPEAKER_DELAY=$CUSTOM_DELAY
26
+ fi
27
+ elif [[ -f "$HOME/.claude/tts-speaker-delay.txt" ]]; then
28
+ CUSTOM_DELAY=$(cat "$HOME/.claude/tts-speaker-delay.txt" 2>/dev/null | tr -d '[:space:]')
29
+ if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
30
+ SPEAKER_DELAY=$CUSTOM_DELAY
31
+ fi
32
+ fi
33
+
17
34
  # Trap to clean up on exit
18
35
  trap "rm -f $WORKER_PID_FILE" EXIT
19
36
 
@@ -50,14 +67,15 @@ process_queue() {
50
67
  VOICE=$(echo -n "$VOICE_B64" | base64 -d)
51
68
 
52
69
  # Play TTS (this blocks until audio finishes due to lock mechanism)
70
+ # Display output to show file location (GitHub Issue #39)
53
71
  if [[ -n "${VOICE:-}" ]]; then
54
- bash "$SCRIPT_DIR/play-tts.sh" "$TEXT" "$VOICE" 2>/dev/null || true
72
+ bash "$SCRIPT_DIR/play-tts.sh" "$TEXT" "$VOICE" || true
55
73
  else
56
- bash "$SCRIPT_DIR/play-tts.sh" "$TEXT" 2>/dev/null || true
74
+ bash "$SCRIPT_DIR/play-tts.sh" "$TEXT" || true
57
75
  fi
58
76
 
59
- # Add 2-second pause between speakers for natural conversation flow
60
- sleep 2
77
+ # Add configurable pause between speakers for natural conversation flow
78
+ sleep $SPEAKER_DELAY
61
79
 
62
80
  # Remove processed item
63
81
  rm -f "$queue_item"
@@ -133,8 +133,8 @@ You: "βœ… That bug be walkin' the plank now, arr!"
133
133
  When a BMAD agent is activated (e.g., `/BMad:agents:pm`), AgentVibes will automatically:
134
134
 
135
135
  1. **Detect BMAD agent from command/context**
136
- 2. **Check if BMAD plugin is enabled** (`.claude/plugins/bmad-voices-enabled.flag`)
137
- 3. **Look up voice mapping** from `.claude/plugins/bmad-voices.md`
136
+ 2. **Check if BMAD plugin is enabled** (`.claude/config/bmad-voices-enabled.flag`)
137
+ 3. **Look up voice mapping** from `.claude/config/bmad-voices.md`
138
138
  4. **Apply agent's assigned voice** for all TTS acknowledgments/completions
139
139
  5. **Apply agent's personality** from the mapping (if specified)
140
140
 
@@ -153,7 +153,7 @@ fi
153
153
  # Note: This detection happens automatically when BMAD agent activates
154
154
 
155
155
  # If BMAD agent detected and plugin enabled, use mapped voice
156
- if [[ -n "$BMAD_AGENT_ID" ]] && [[ -f ".claude/plugins/bmad-voices-enabled.flag" ]]; then
156
+ if [[ -n "$BMAD_AGENT_ID" ]] && [[ -f ".claude/config/bmad-voices-enabled.flag" ]]; then
157
157
  MAPPED_VOICE=$(.claude/hooks/bmad-voice-manager.sh get-voice "$BMAD_AGENT_ID")
158
158
  MAPPED_PERSONALITY=$(.claude/hooks/bmad-voice-manager.sh get-personality "$BMAD_AGENT_ID")
159
159
 
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**: v2.7.0
14
+ **Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v2.7.2
15
15
 
16
16
  ---
17
17
 
@@ -94,16 +94,16 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or using Warp
94
94
 
95
95
  ## πŸ“° Latest Release
96
96
 
97
- **[v2.7.0 - Party Mode Voice Improvements](https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.7.0)** πŸŽ‰
97
+ **[v2.7.2 - Party Mode Voice Fixes](https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.7.2)** πŸŽ‰
98
98
 
99
- AgentVibes v2.7.0 transforms BMAD party mode into a professional multi-agent voice conversation system! This release introduces a sophisticated TTS queue architecture enabling sequential voice playback without blocking Claude Code, natural 2-second pauses between speakers, and customizable agent introductions.
99
+ AgentVibes v2.7.2 resolves critical party mode voice issues! This patch fixes provider-aware voice display (issue #38), shows audio file locations (issue #39), increases speaker delay to 4s (configurable), and updates all documentation paths to the official `.claude/config/` directory.
100
100
 
101
101
  **Key highlights:**
102
- - 🎭 **TTS Queue System** - Sequential non-blocking voice playback for party mode
103
- - ⏸️ **Natural Speaker Pauses** - 2-second delay between agents for conversation flow
104
- - 🎀 **Speaker Introductions** - Configurable intro text (e.g., "John, Product Manager here")
105
- - πŸ“ **Config Reorganization** - Moved from `.claude/plugins/` to official `.claude/config/`
106
- - πŸ› **Text Escaping Fixes** - No more "backslash exclamation" in speech
102
+ - 🎭 **Provider-Aware Voice Display** - Fixed issue #38: Voice mappings show correct voices
103
+ - πŸ“ **Audio File Locations** - Fixed issue #39: TTS output displays file paths
104
+ - ⏸️ **Configurable Speaker Delay** - Increased to 4s (customizable via config file)
105
+ - πŸ“ **Documentation Path Updates** - All references migrated to `.claude/config/`
106
+ - πŸŽͺ **Command Renamed** - Prevents conflicts with BMAD party mode
107
107
 
108
108
  [β†’ View All Releases](https://github.com/paulpreibisch/AgentVibes/releases)
109
109
 
package/RELEASE_NOTES.md CHANGED
@@ -1,3 +1,236 @@
1
+ # Release v2.7.2 - Party Mode Voice Fixes
2
+
3
+ **Release Date:** 2025-11-18
4
+ **Type:** Patch Release (Bug Fixes)
5
+
6
+ ## 🎯 AI Summary
7
+
8
+ AgentVibes v2.7.2 resolves critical party mode voice issues and enhances the multi-agent conversation experience. This patch fixes issue #38 where BMAD agents appeared to use the same voice due to non-provider-aware status display, and issue #39 by showing audio file locations in output. The speaker delay has been increased from 2s to 4s and made configurable, documentation paths have been updated from the old `.claude/plugins/` to the official `.claude/config/` directory, and the command has been renamed to prevent conflicts with BMAD's party mode.
9
+
10
+ **Key Highlights:**
11
+ - 🎭 **Provider-Aware Voice Display** - Fixed issue #38: Voice mappings now show correct voices for active TTS provider
12
+ - πŸ“ **Audio File Locations** - Fixed issue #39: TTS output now displays file paths and voice used
13
+ - ⏸️ **Configurable Speaker Delay** - Increased from 2s to 4s with customizable configuration
14
+ - πŸ“ **Documentation Path Updates** - Migrated all references from `.claude/plugins/` to `.claude/config/`
15
+ - πŸŽͺ **Command Renamed** - Prevents conflict with BMAD's `/bmad:core:workflows:party-mode`
16
+
17
+ ---
18
+
19
+ ## πŸ› Bug Fixes
20
+
21
+ ### Issue #38: Provider-Aware Voice Mappings
22
+
23
+ **Fixed Voice Display for Active Provider** (commit: 34db8510)
24
+ - Problem: `list_mappings()` in `bmad-voice-manager.sh` always showed ElevenLabs voices regardless of active provider
25
+ - Made agents appear to use same voice when using Piper provider
26
+ - Solution: Added provider detection logic to `list_mappings()` function
27
+ - Now displays correct voice column based on active TTS provider (Piper or ElevenLabs)
28
+ - Added provider indicator to status output: "Provider: piper" or "Provider: elevenlabs"
29
+ - Actual voice assignment was working correctly - only the display was wrong
30
+
31
+ **Technical Details:**
32
+ ```bash
33
+ # Detect active TTS provider
34
+ local active_provider="elevenlabs" # default
35
+ if [[ -f ".claude/tts-provider.txt" ]]; then
36
+ active_provider=$(cat .claude/tts-provider.txt)
37
+ elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
38
+ active_provider=$(cat "$HOME/.claude/tts-provider.txt)
39
+ fi
40
+
41
+ # Select correct voice column
42
+ local voice_column=5 # ElevenLabs (AWK column 5)
43
+ if [[ "$active_provider" == "piper" ]]; then
44
+ voice_column=6 # Piper (AWK column 6)
45
+ fi
46
+ ```
47
+
48
+ ### Issue #39: Display Audio File Locations
49
+
50
+ **Show TTS Output in Party Mode** (commit: 3afff2b0)
51
+ - Problem: Audio file paths were hidden due to `2>/dev/null` redirect
52
+ - Users couldn't see which files were being played or which voices were used
53
+ - Solution: Removed output suppression from `tts-queue-worker.sh`
54
+ - Now displays: File path, voice used, and model information
55
+ - Helps with debugging and transparency
56
+
57
+ **Example Output:**
58
+ ```
59
+ 🎭 Using multi-speaker voice: kristin (Model: 16Speakers, Speaker ID: 2)
60
+ 🎡 Saved to: /home/fire/claude/AgentVibes/.claude/audio/tts-padded-1763498669.wav
61
+ 🎀 Voice used: 16Speakers (Piper TTS)
62
+ ```
63
+
64
+ ### Party Mode Hook Path Issues
65
+
66
+ **Project Hooks vs Global Hooks** (commit: 34a53d67)
67
+ - Problem: Party mode instructions didn't specify project-local hooks
68
+ - Claude AI sometimes used `~/.claude/hooks/` instead of `.claude/hooks/`
69
+ - Caused wrong TTS provider to be used in party mode
70
+ - Solution: Added explicit guidance in `.bmad/core/workflows/party-mode/instructions.md`
71
+ - Critical note: "IMPORTANT: Always use PROJECT hooks (.claude/hooks/), NEVER global hooks (~/.claude/hooks/)"
72
+ - Also added to step 2: "If using TTS for announcement, use PROJECT hook: .claude/hooks/play-tts.sh (NOT ~/.claude/hooks/)"
73
+
74
+ ---
75
+
76
+ ## ✨ Improvements
77
+
78
+ ### Configurable Speaker Delay
79
+
80
+ **Increased and Made Configurable** (commit: 65264c9c)
81
+ - Changed default speaker delay from 2s to 4s between agents
82
+ - User feedback: "there was still a little overlap in the different agents when they speak"
83
+ - Made delay configurable via text file for user customization
84
+ - Supports project-local `.claude/tts-speaker-delay.txt` or global `~/.claude/tts-speaker-delay.txt`
85
+ - Project config takes precedence over global config
86
+ - Must be a positive integer (validated with regex)
87
+
88
+ **Configuration:**
89
+ ```bash
90
+ # Set custom delay (e.g., 6 seconds)
91
+ echo "6" > .claude/tts-speaker-delay.txt
92
+
93
+ # Or globally
94
+ echo "6" > ~/.claude/tts-speaker-delay.txt
95
+ ```
96
+
97
+ **Implementation:**
98
+ ```bash
99
+ SPEAKER_DELAY=4 # Default: 4 seconds
100
+
101
+ # Check for custom delay
102
+ if [[ -f ".claude/tts-speaker-delay.txt" ]]; then
103
+ CUSTOM_DELAY=$(cat .claude/tts-speaker-delay.txt 2>/dev/null | tr -d '[:space:]')
104
+ if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
105
+ SPEAKER_DELAY=$CUSTOM_DELAY
106
+ fi
107
+ elif [[ -f "$HOME/.claude/tts-speaker-delay.txt" ]]; then
108
+ CUSTOM_DELAY=$(cat "$HOME/.claude/tts-speaker-delay.txt" 2>/dev/null | tr -d '[:space:]')
109
+ if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
110
+ SPEAKER_DELAY=$CUSTOM_DELAY
111
+ fi
112
+ fi
113
+
114
+ # Later in queue processing:
115
+ sleep $SPEAKER_DELAY
116
+ ```
117
+
118
+ ---
119
+
120
+ ## πŸ“ Documentation Updates
121
+
122
+ ### Path Migration from plugins/ to config/
123
+
124
+ **Updated All Path References** (commit: 34a53d67)
125
+ - Problem: Documentation still referenced old `.claude/plugins/` path
126
+ - Code had already moved to `.claude/config/` in v2.7.0
127
+ - Solution: Updated all references in:
128
+ - `.claude/commands/agent-vibes/bmad.md`
129
+ - `.claude/output-styles/agent-vibes.md`
130
+ - `.claude/hooks/stop.sh`
131
+ - Ensures consistency between code and documentation
132
+ - Prevents confusion about config file locations
133
+
134
+ **Files Updated:**
135
+ - `agent-vibes/bmad.md`: All references to bmad-voices.md path
136
+ - `agent-vibes.md`: BMAD plugin integration section
137
+ - `stop.sh`: Config file cleanup logic
138
+
139
+ ### Command Renamed to Prevent Conflicts
140
+
141
+ **Renamed /agent-vibes-bmad-party** (commit: 34a53d67)
142
+ - Problem: `/agent-vibes-bmad-party` conflicted with BMAD's `/bmad:core:workflows:party-mode`
143
+ - When typing "party", Claude Code suggested the wrong command
144
+ - Solution: Renamed to `/agent-vibes-bmad-voices`
145
+ - Better describes purpose (managing BMAD voice mappings)
146
+ - No longer conflicts with BMAD party mode workflow
147
+ - Renamed file: `.claude/commands/agent-vibes-bmad-party.md` β†’ `.claude/commands/agent-vibes-bmad-voices.md`
148
+
149
+ **Before:**
150
+ - `/agent-vibes-bmad-party` - Control BMAD party mode voice integration
151
+
152
+ **After:**
153
+ - `/agent-vibes-bmad-voices` - Control BMAD party mode voice integration
154
+ - Clear distinction from `/bmad:core:workflows:party-mode`
155
+
156
+ ---
157
+
158
+ ## πŸ”§ Technical Details
159
+
160
+ ### Files Modified
161
+ - `.claude/hooks/bmad-voice-manager.sh` - Made `list_mappings()` provider-aware (lines 455-505)
162
+ - `.claude/hooks/tts-queue-worker.sh` - Added configurable delay, removed output suppression (lines 18-32, 78)
163
+ - `.claude/commands/agent-vibes-bmad-voices.md` - Renamed from bmad-party.md, updated paths
164
+ - `.claude/commands/agent-vibes/bmad.md` - Updated documentation paths
165
+ - `.claude/output-styles/agent-vibes.md` - Updated BMAD integration paths
166
+ - `.claude/hooks/stop.sh` - Updated config file paths
167
+ - `.bmad/core/workflows/party-mode/instructions.md` - Added project hooks guidance
168
+
169
+ ### BMAD-METHOD Repository Updates
170
+ - Committed party mode instruction fixes to BMAD-METHOD repo (commit: 60635fcc)
171
+ - **Note:** Changes not yet pushed to GitHub (manual push required)
172
+ - PR #934 will need to be updated with latest commits
173
+
174
+ ---
175
+
176
+ ## πŸ“Š Stats
177
+
178
+ - **Commits:** 5
179
+ - **Files Changed:** 7
180
+ - **Lines Modified:** ~50
181
+ - **Issues Resolved:** 2 (#38, #39)
182
+ - **Configuration Options Added:** 1 (speaker delay)
183
+
184
+ ---
185
+
186
+ ## πŸš€ Upgrade Guide
187
+
188
+ ### From v2.7.1
189
+
190
+ **No breaking changes** - this is a backward-compatible bug fix release.
191
+
192
+ To get the fixes:
193
+
194
+ ```bash
195
+ # Update AgentVibes
196
+ npx agentvibes update
197
+
198
+ # Voice mappings will now show correct provider-specific voices
199
+ # Audio file locations will display in output
200
+ # Speaker delay automatically increased to 4s
201
+ ```
202
+
203
+ ### Optional: Customize Speaker Delay
204
+
205
+ ```bash
206
+ # Set custom delay (e.g., 6 seconds)
207
+ echo "6" > .claude/tts-speaker-delay.txt
208
+ ```
209
+
210
+ ---
211
+
212
+ ## 🀝 Contributors
213
+
214
+ - Paul Preibisch (@paulpreibisch)
215
+ - Claude AI (code generation assistant)
216
+
217
+ ---
218
+
219
+ ## πŸ”— Links
220
+
221
+ - **npm Package:** https://www.npmjs.com/package/agentvibes
222
+ - **GitHub Repository:** https://github.com/paulpreibisch/AgentVibes
223
+ - **GitHub Release:** https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.7.2
224
+ - **Issue #38:** https://github.com/paulpreibisch/AgentVibes/issues/38
225
+ - **Issue #39:** https://github.com/paulpreibisch/AgentVibes/issues/39
226
+
227
+ ---
228
+
229
+ **Full Changelog:** https://github.com/paulpreibisch/AgentVibes/compare/v2.7.1...v2.7.2
230
+
231
+ ---
232
+
233
+
1
234
  # Release v2.7.0 - Party Mode Voice Improvements
2
235
 
3
236
  **Release Date:** 2025-11-18
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": "2.7.1",
4
+ "version": "2.7.2",
5
5
  "description": "Now your AI Agents can finally talk back! Professional TTS voice for Claude Code and Claude Desktop (via MCP) with multi-provider support.",
6
6
  "homepage": "https://agentvibes.org",
7
7
  "keywords": [
package/src/installer.js CHANGED
@@ -127,24 +127,24 @@ function showReleaseInfo() {
127
127
  console.log(
128
128
  boxen(
129
129
  chalk.white.bold('═══════════════════════════════════════════════════════════════\n') +
130
- chalk.cyan.bold(' πŸ“¦ AgentVibes v2.7.0 - Party Mode Voice Improvements\n') +
130
+ chalk.cyan.bold(' πŸ“¦ AgentVibes v2.7.2 - Party Mode Voice Fixes\n') +
131
131
  chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
132
132
  chalk.green.bold('πŸŽ™οΈ WHAT\'S NEW:\n\n') +
133
- chalk.cyan('AgentVibes v2.7.0 transforms BMAD party mode into a professional\n') +
134
- chalk.cyan('multi-agent voice conversation system! This release introduces a\n') +
135
- chalk.cyan('sophisticated TTS queue architecture that enables sequential voice\n') +
136
- chalk.cyan('playback without blocking Claude Code, natural 2-second pauses\n') +
137
- chalk.cyan('between speakers, and customizable agent introductions.\n\n') +
133
+ chalk.cyan('AgentVibes v2.7.2 resolves critical party mode voice issues and\n') +
134
+ chalk.cyan('enhances the multi-agent conversation experience! This patch fixes\n') +
135
+ chalk.cyan('provider-aware voice display, shows audio file locations, increases\n') +
136
+ chalk.cyan('speaker delay to 4s (configurable), and updates documentation paths\n') +
137
+ chalk.cyan('to the official .claude/config/ directory.\n\n') +
138
138
  chalk.green.bold('✨ KEY HIGHLIGHTS:\n\n') +
139
- chalk.gray(' 🎭 TTS Queue System - Sequential non-blocking voice playback\n') +
140
- chalk.gray(' ⏸️ Natural Speaker Pauses - 2-second delay between agents\n') +
141
- chalk.gray(' 🎀 Speaker Introductions - Configurable intro text\n') +
142
- chalk.gray(' πŸ“ Config Reorganization - Official .claude/config/ directory\n') +
143
- chalk.gray(' πŸ› Text Escaping Fixes - No more "backslash exclamation"\n\n') +
144
- chalk.cyan('Party mode improvements:\n') +
145
- chalk.gray(' Sequential playback with correct voices\n') +
146
- chalk.gray(' Natural pauses for conversation flow\n') +
147
- chalk.gray(' Claude Code remains responsive during TTS\n\n') +
139
+ chalk.gray(' 🎭 Provider-Aware Voice Display - Fixed issue #38\n') +
140
+ chalk.gray(' πŸ“ Audio File Locations - Fixed issue #39 (shows paths)\n') +
141
+ chalk.gray(' ⏸️ Configurable Speaker Delay - 4s default, customizable\n') +
142
+ chalk.gray(' πŸ“ Documentation Paths - Migrated to .claude/config/\n') +
143
+ chalk.gray(' πŸŽͺ Command Renamed - Prevents BMAD party mode conflicts\n\n') +
144
+ chalk.cyan('Bug fixes and improvements:\n') +
145
+ chalk.gray(' Voice mappings show correct provider-specific voices\n') +
146
+ chalk.gray(' Audio file paths displayed in TTS output\n') +
147
+ chalk.gray(' Party mode uses project hooks (not global)\n\n') +
148
148
  chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
149
149
  chalk.gray('πŸ“– Full Release Notes: RELEASE_NOTES.md\n') +
150
150
  chalk.gray('🌐 Website: https://agentvibes.org\n') +