agentvibes 4.6.2 → 4.6.5

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.
@@ -128,7 +128,22 @@ try {
128
128
  if ($raw -match '::') {
129
129
  $parts = $raw -split '::'
130
130
  $AgentVoiceName = $parts[0]
131
- if ($parts[1] -match '-(\d+)$') { $SpeakerId = $Matches[1] }
131
+ $SpeakerName = if ($parts.Length -ge 2) { $parts[1] } else { "" }
132
+ # NOTE: The suffix number (e.g. "14" in "Yara-14") is a display disambiguator,
133
+ # NOT the piper speaker index. Must look up real index from speaker_id_map.
134
+ if ($SpeakerName) {
135
+ $VoicesDir = "$env:USERPROFILE\.claude\piper-voices"
136
+ $OnnxJsonPath = "$VoicesDir\$AgentVoiceName.onnx.json"
137
+ if (Test-Path $OnnxJsonPath) {
138
+ try {
139
+ $onnxData = Get-Content $OnnxJsonPath -Raw -Encoding UTF8 | ConvertFrom-Json
140
+ $speakerIdMap = $onnxData.speaker_id_map
141
+ if ($speakerIdMap -and $speakerIdMap.PSObject.Properties[$SpeakerName]) {
142
+ $SpeakerId = [string]$speakerIdMap.PSObject.Properties[$SpeakerName].Value
143
+ }
144
+ } catch { }
145
+ }
146
+ }
132
147
  } else {
133
148
  $AgentVoiceName = $raw
134
149
  }
package/CLAUDE.md CHANGED
@@ -39,6 +39,18 @@ For changes outside story development:
39
39
  3. Test locally before pushing
40
40
  4. Exception: Changes made by `/dev-story` auto-commit
41
41
 
42
+ ### 🚫 RELEASE: MANDATORY HUMAN APPROVAL BEFORE ANY PUSH
43
+
44
+ **NEVER run `git push`, `git push --follow-tags`, or `npm publish` during a release without first stopping and showing the user:**
45
+
46
+ 1. The full content of `RELEASE_NOTES.md` for that release
47
+ 2. The updated section of `README.md`
48
+ 3. Explicitly asking: **"Please review — type 'approve' to push, or request changes."**
49
+
50
+ **Wait for explicit approval. Do NOT push speculatively.** It doesn't matter how clean the content is. The human-in-the-loop checkpoint is non-negotiable.
51
+
52
+ This rule was added after Claude pushed v4.6.5 without pausing for review.
53
+
42
54
  ## Security Requirements (SonarCloud Compliance)
43
55
 
44
56
  ### Core Security Rules (NO EXCEPTIONS)