agentvibes 2.12.4 โ 2.12.6
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/.claude/hooks/bmad-voice-manager.sh +21 -5
- package/.claude/hooks/play-tts.sh +12 -0
- package/.claude/hooks/tts-queue.sh +34 -6
- package/README.md +17 -10
- package/RELEASE_NOTES.md +320 -697
- package/mcp-server/install-deps.js +19 -0
- package/mcp-server/server.py +58 -36
- package/package.json +1 -1
- package/scripts/fix-audio-tunnel.sh +22 -6
- package/src/commands/bmad-voices.js +14 -1
- package/src/installer.js +157 -72
- package/test/unit/play-tts.bats +1 -1
- package/.bmad/_cfg/agent-manifest.csv +0 -11
- package/.bmad/_cfg/agent-voice-map.csv +0 -11
- package/.bmad/_cfg/agents/bmm-analyst.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-architect.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-dev.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-frame-expert.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-pm.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-sm.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-tea.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-tech-writer.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-ux-designer.customize.yaml +0 -42
- package/.bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
- package/.bmad/_cfg/files-manifest.csv +0 -243
- package/.bmad/_cfg/ides/claude-code.yaml +0 -6
- package/.bmad/_cfg/manifest.yaml +0 -9
- package/.bmad/_cfg/task-manifest.csv +0 -5
- package/.bmad/_cfg/tool-manifest.csv +0 -2
- package/.bmad/_cfg/workflow-manifest.csv +0 -38
- package/.bmad/bmm/README.md +0 -128
- package/.bmad/bmm/agents/analyst.md +0 -79
- package/.bmad/bmm/agents/analyst.md.backup-pre-tts +0 -75
- package/.bmad/bmm/agents/architect.md +0 -80
- package/.bmad/bmm/agents/dev.md +0 -70
- package/.bmad/bmm/agents/frame-expert.md +0 -72
- package/.bmad/bmm/agents/pm.md +0 -84
- package/.bmad/bmm/agents/sm.md +0 -93
- package/.bmad/bmm/agents/tea.md +0 -80
- package/.bmad/bmm/agents/tech-writer.md +0 -84
- package/.bmad/bmm/agents/ux-designer.md +0 -79
- package/.bmad/bmm/config.yaml +0 -17
- package/.bmad/bmm/docs/README.md +0 -236
- package/.bmad/bmm/docs/agents-guide.md +0 -1058
- package/.bmad/bmm/docs/brownfield-guide.md +0 -762
- package/.bmad/bmm/docs/enterprise-agentic-development.md +0 -686
- package/.bmad/bmm/docs/faq.md +0 -588
- package/.bmad/bmm/docs/glossary.md +0 -320
- package/.bmad/bmm/docs/party-mode.md +0 -224
- package/.bmad/bmm/docs/quick-spec-flow.md +0 -652
- package/.bmad/bmm/docs/quick-start.md +0 -376
- package/.bmad/bmm/docs/scale-adaptive-system.md +0 -612
- package/.bmad/bmm/docs/test-architecture.md +0 -396
- package/.bmad/bmm/docs/workflow-architecture-reference.md +0 -366
- package/.bmad/bmm/docs/workflow-document-project-reference.md +0 -489
- package/.bmad/bmm/docs/workflows-analysis.md +0 -370
- package/.bmad/bmm/docs/workflows-implementation.md +0 -286
- package/.bmad/bmm/docs/workflows-planning.md +0 -612
- package/.bmad/bmm/docs/workflows-solutioning.md +0 -554
- package/.bmad/bmm/teams/default-party.csv +0 -20
- package/.bmad/bmm/teams/team-fullstack.yaml +0 -13
- package/.bmad/bmm/testarch/knowledge/ci-burn-in.md +0 -675
- package/.bmad/bmm/testarch/knowledge/component-tdd.md +0 -486
- package/.bmad/bmm/testarch/knowledge/contract-testing.md +0 -957
- package/.bmad/bmm/testarch/knowledge/data-factories.md +0 -500
- package/.bmad/bmm/testarch/knowledge/email-auth.md +0 -721
- package/.bmad/bmm/testarch/knowledge/error-handling.md +0 -725
- package/.bmad/bmm/testarch/knowledge/feature-flags.md +0 -750
- package/.bmad/bmm/testarch/knowledge/fixture-architecture.md +0 -401
- package/.bmad/bmm/testarch/knowledge/network-first.md +0 -486
- package/.bmad/bmm/testarch/knowledge/nfr-criteria.md +0 -670
- package/.bmad/bmm/testarch/knowledge/playwright-config.md +0 -730
- package/.bmad/bmm/testarch/knowledge/probability-impact.md +0 -601
- package/.bmad/bmm/testarch/knowledge/risk-governance.md +0 -615
- package/.bmad/bmm/testarch/knowledge/selective-testing.md +0 -732
- package/.bmad/bmm/testarch/knowledge/selector-resilience.md +0 -527
- package/.bmad/bmm/testarch/knowledge/test-healing-patterns.md +0 -644
- package/.bmad/bmm/testarch/knowledge/test-levels-framework.md +0 -473
- package/.bmad/bmm/testarch/knowledge/test-priorities-matrix.md +0 -373
- package/.bmad/bmm/testarch/knowledge/test-quality.md +0 -664
- package/.bmad/bmm/testarch/knowledge/timing-debugging.md +0 -372
- package/.bmad/bmm/testarch/knowledge/visual-debugging.md +0 -524
- package/.bmad/bmm/testarch/tea-index.csv +0 -22
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -112
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -26
- package/.bmad/bmm/workflows/1-analysis/domain-research/instructions.md +0 -425
- package/.bmad/bmm/workflows/1-analysis/domain-research/template.md +0 -180
- package/.bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -28
- package/.bmad/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
- package/.bmad/bmm/workflows/1-analysis/product-brief/instructions.md +0 -524
- package/.bmad/bmm/workflows/1-analysis/product-brief/template.md +0 -181
- package/.bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -45
- package/.bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
- package/.bmad/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
- package/.bmad/bmm/workflows/1-analysis/research/checklist.md +0 -299
- package/.bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
- package/.bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -438
- package/.bmad/bmm/workflows/1-analysis/research/instructions-market.md +0 -675
- package/.bmad/bmm/workflows/1-analysis/research/instructions-router.md +0 -134
- package/.bmad/bmm/workflows/1-analysis/research/instructions-technical.md +0 -534
- package/.bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
- package/.bmad/bmm/workflows/1-analysis/research/template-market.md +0 -347
- package/.bmad/bmm/workflows/1-analysis/research/template-technical.md +0 -245
- package/.bmad/bmm/workflows/1-analysis/research/workflow.yaml +0 -44
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +0 -80
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +0 -616
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +0 -53
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1308
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -145
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -61
- package/.bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -346
- package/.bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +0 -13
- package/.bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -703
- package/.bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +0 -204
- package/.bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +0 -11
- package/.bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -52
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -217
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -74
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +0 -436
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -980
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -58
- package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -321
- package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
- package/.bmad/bmm/workflows/3-solutioning/architecture/checklist.md +0 -240
- package/.bmad/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -222
- package/.bmad/bmm/workflows/3-solutioning/architecture/instructions.md +0 -768
- package/.bmad/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -13
- package/.bmad/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -55
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +0 -169
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +0 -332
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/template.md +0 -146
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +0 -62
- package/.bmad/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
- package/.bmad/bmm/workflows/4-implementation/code-review/checklist.md +0 -22
- package/.bmad/bmm/workflows/4-implementation/code-review/instructions.md +0 -398
- package/.bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +0 -60
- package/.bmad/bmm/workflows/4-implementation/correct-course/checklist.md +0 -279
- package/.bmad/bmm/workflows/4-implementation/correct-course/instructions.md +0 -206
- package/.bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +0 -56
- package/.bmad/bmm/workflows/4-implementation/create-story/checklist.md +0 -240
- package/.bmad/bmm/workflows/4-implementation/create-story/instructions.md +0 -256
- package/.bmad/bmm/workflows/4-implementation/create-story/template.md +0 -51
- package/.bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +0 -71
- package/.bmad/bmm/workflows/4-implementation/dev-story/checklist.md +0 -38
- package/.bmad/bmm/workflows/4-implementation/dev-story/instructions.md +0 -267
- package/.bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -56
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -164
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -57
- package/.bmad/bmm/workflows/4-implementation/retrospective/instructions.md +0 -1443
- package/.bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +0 -56
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +0 -33
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +0 -234
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +0 -55
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +0 -49
- package/.bmad/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
- package/.bmad/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
- package/.bmad/bmm/workflows/4-implementation/story-context/instructions.md +0 -209
- package/.bmad/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -61
- package/.bmad/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
- package/.bmad/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -26
- package/.bmad/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
- package/.bmad/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -23
- package/.bmad/bmm/workflows/document-project/checklist.md +0 -245
- package/.bmad/bmm/workflows/document-project/documentation-requirements.csv +0 -12
- package/.bmad/bmm/workflows/document-project/instructions.md +0 -222
- package/.bmad/bmm/workflows/document-project/templates/deep-dive-template.md +0 -345
- package/.bmad/bmm/workflows/document-project/templates/index-template.md +0 -169
- package/.bmad/bmm/workflows/document-project/templates/project-overview-template.md +0 -103
- package/.bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -160
- package/.bmad/bmm/workflows/document-project/templates/source-tree-template.md +0 -135
- package/.bmad/bmm/workflows/document-project/workflow.yaml +0 -29
- package/.bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -298
- package/.bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
- package/.bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -1106
- package/.bmad/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +0 -127
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-library.json +0 -90
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +0 -127
- package/.bmad/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +0 -79
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/checklist.md +0 -39
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/instructions.md +0 -131
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +0 -23
- package/.bmad/bmm/workflows/frame-expert/create-diagram/checklist.md +0 -43
- package/.bmad/bmm/workflows/frame-expert/create-diagram/instructions.md +0 -142
- package/.bmad/bmm/workflows/frame-expert/create-diagram/workflow.yaml +0 -24
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/checklist.md +0 -49
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/instructions.md +0 -242
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +0 -27
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/checklist.md +0 -38
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/instructions.md +0 -133
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +0 -23
- package/.bmad/bmm/workflows/techdoc/documentation-standards.md +0 -262
- package/.bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -363
- package/.bmad/bmm/workflows/testarch/atdd/checklist.md +0 -373
- package/.bmad/bmm/workflows/testarch/atdd/instructions.md +0 -785
- package/.bmad/bmm/workflows/testarch/atdd/workflow.yaml +0 -45
- package/.bmad/bmm/workflows/testarch/automate/checklist.md +0 -580
- package/.bmad/bmm/workflows/testarch/automate/instructions.md +0 -1303
- package/.bmad/bmm/workflows/testarch/automate/workflow.yaml +0 -52
- package/.bmad/bmm/workflows/testarch/ci/checklist.md +0 -246
- package/.bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -165
- package/.bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -128
- package/.bmad/bmm/workflows/testarch/ci/instructions.md +0 -517
- package/.bmad/bmm/workflows/testarch/ci/workflow.yaml +0 -45
- package/.bmad/bmm/workflows/testarch/framework/checklist.md +0 -321
- package/.bmad/bmm/workflows/testarch/framework/instructions.md +0 -455
- package/.bmad/bmm/workflows/testarch/framework/workflow.yaml +0 -47
- package/.bmad/bmm/workflows/testarch/nfr-assess/checklist.md +0 -405
- package/.bmad/bmm/workflows/testarch/nfr-assess/instructions.md +0 -722
- package/.bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -443
- package/.bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +0 -47
- package/.bmad/bmm/workflows/testarch/test-design/checklist.md +0 -234
- package/.bmad/bmm/workflows/testarch/test-design/instructions.md +0 -782
- package/.bmad/bmm/workflows/testarch/test-design/test-design-template.md +0 -285
- package/.bmad/bmm/workflows/testarch/test-design/workflow.yaml +0 -48
- package/.bmad/bmm/workflows/testarch/test-review/checklist.md +0 -470
- package/.bmad/bmm/workflows/testarch/test-review/instructions.md +0 -608
- package/.bmad/bmm/workflows/testarch/test-review/test-review-template.md +0 -388
- package/.bmad/bmm/workflows/testarch/test-review/workflow.yaml +0 -46
- package/.bmad/bmm/workflows/testarch/trace/checklist.md +0 -654
- package/.bmad/bmm/workflows/testarch/trace/instructions.md +0 -1045
- package/.bmad/bmm/workflows/testarch/trace/trace-template.md +0 -673
- package/.bmad/bmm/workflows/testarch/trace/workflow.yaml +0 -55
- package/.bmad/bmm/workflows/workflow-status/init/instructions.md +0 -334
- package/.bmad/bmm/workflows/workflow-status/init/workflow.yaml +0 -28
- package/.bmad/bmm/workflows/workflow-status/instructions.md +0 -388
- package/.bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +0 -138
- package/.bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +0 -126
- package/.bmad/bmm/workflows/workflow-status/paths/game-design.yaml +0 -52
- package/.bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -122
- package/.bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -113
- package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
- package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
- package/.bmad/bmm/workflows/workflow-status/project-levels.yaml +0 -59
- package/.bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -24
- package/.bmad/bmm/workflows/workflow-status/workflow.yaml +0 -28
- package/.bmad/core/agents/bmad-master.md +0 -72
- package/.bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -113
- package/.bmad/core/config.yaml +0 -11
- package/.bmad/core/tasks/adv-elicit-methods.csv +0 -39
- package/.bmad/core/tasks/advanced-elicitation-methods.csv +0 -21
- package/.bmad/core/tasks/advanced-elicitation.xml +0 -106
- package/.bmad/core/tasks/index-docs.xml +0 -65
- package/.bmad/core/tasks/validate-workflow.xml +0 -89
- package/.bmad/core/tasks/workflow.xml +0 -270
- package/.bmad/core/tools/shard-doc.xml +0 -109
- package/.bmad/core/workflows/brainstorming/README.md +0 -261
- package/.bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
- package/.bmad/core/workflows/brainstorming/instructions.md +0 -315
- package/.bmad/core/workflows/brainstorming/template.md +0 -106
- package/.bmad/core/workflows/brainstorming/workflow.yaml +0 -38
- package/.bmad/core/workflows/party-mode/instructions.md +0 -203
- package/.bmad/core/workflows/party-mode/workflow.yaml +0 -28
- package/.bmad/docs/claude-code-instructions.md +0 -25
- package/.claude/commands/BMad/analyst.md +0 -88
- package/.claude/commands/BMad/architect.md +0 -89
- package/.claude/commands/BMad/bmad-master.md +0 -114
- package/.claude/commands/BMad/bmad-orchestrator.md +0 -151
- package/.claude/commands/BMad/dev.md +0 -85
- package/.claude/commands/BMad/pm.md +0 -88
- package/.claude/commands/BMad/po.md +0 -83
- package/.claude/commands/BMad/qa.md +0 -91
- package/.claude/commands/BMad/sm.md +0 -69
- package/.claude/commands/BMad/tasks/advanced-elicitation.md +0 -123
- package/.claude/commands/BMad/tasks/apply-qa-fixes.md +0 -154
- package/.claude/commands/BMad/tasks/brownfield-create-epic.md +0 -166
- package/.claude/commands/BMad/tasks/brownfield-create-story.md +0 -153
- package/.claude/commands/BMad/tasks/correct-course.md +0 -76
- package/.claude/commands/BMad/tasks/create-brownfield-story.md +0 -318
- package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +0 -284
- package/.claude/commands/BMad/tasks/create-doc.md +0 -107
- package/.claude/commands/BMad/tasks/create-next-story.md +0 -118
- package/.claude/commands/BMad/tasks/document-project.md +0 -349
- package/.claude/commands/BMad/tasks/execute-checklist.md +0 -92
- package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +0 -142
- package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +0 -57
- package/.claude/commands/BMad/tasks/index-docs.md +0 -179
- package/.claude/commands/BMad/tasks/kb-mode-interaction.md +0 -81
- package/.claude/commands/BMad/tasks/nfr-assess.md +0 -349
- package/.claude/commands/BMad/tasks/qa-gate.md +0 -167
- package/.claude/commands/BMad/tasks/review-story.md +0 -320
- package/.claude/commands/BMad/tasks/risk-profile.md +0 -359
- package/.claude/commands/BMad/tasks/shard-doc.md +0 -191
- package/.claude/commands/BMad/tasks/test-design.md +0 -180
- package/.claude/commands/BMad/tasks/trace-requirements.md +0 -270
- package/.claude/commands/BMad/tasks/validate-next-story.md +0 -140
- package/.claude/commands/BMad/ux-expert.md +0 -73
- package/.claude/commands/bmad/bmm/agents/analyst.md +0 -14
- package/.claude/commands/bmad/bmm/agents/architect.md +0 -14
- package/.claude/commands/bmad/bmm/agents/dev.md +0 -14
- package/.claude/commands/bmad/bmm/agents/frame-expert.md +0 -14
- package/.claude/commands/bmad/bmm/agents/pm.md +0 -14
- package/.claude/commands/bmad/bmm/agents/sm.md +0 -14
- package/.claude/commands/bmad/bmm/agents/tea.md +0 -14
- package/.claude/commands/bmad/bmm/agents/tech-writer.md +0 -14
- package/.claude/commands/bmad/bmm/agents/ux-designer.md +0 -14
- package/.claude/commands/bmad/bmm/workflows/architecture.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/code-review.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/correct-course.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-dataflow.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-diagram.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-flowchart.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-story.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-wireframe.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/dev-story.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/document-project.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/domain-research.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/implementation-readiness.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/prd.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/product-brief.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/research.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/retrospective.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/story-context.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/story-done.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/story-ready.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/tech-spec.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/workflow-init.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/workflow-status.md +0 -13
- package/.claude/commands/bmad/core/agents/bmad-master.md +0 -14
- package/.claude/commands/bmad/core/tasks/advanced-elicitation.md +0 -9
- package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
- package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
- package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -13
- package/.claude/commands/bmad/core/workflows/party-mode.md +0 -13
- package/.claude/github-star-reminder.txt +0 -1
- package/.claude/hooks/bmad-party-manager.sh +0 -225
- package/.claude/hooks/stop.sh +0 -221
- package/.claude/piper-voices-dir.txt +0 -1
- package/.mcp.json +0 -88
- package/RELEASE_NOTES_v2.4.0_DRAFT.md +0 -116
- package/RELEASE_NOTES_v2.4.1_DRAFT.md +0 -61
- package/docs/2025-11-15_15-14-33.snagx +0 -0
- package/docs/Screenshot 2025-11-15 151325.png +0 -0
- package/docs/Screenshot 2025-11-15 151432.png +0 -0
- package/docs/macos-piper-issue.md +0 -172
- package/docs/stargazer-cms-prd.md +0 -1918
- package/docs/whatsapp-plugin-github-issue.md +0 -393
- package/docs/whatsapp-tts-plugin-feasibility.md +0 -418
- package/docs/whatsapp-tts-standalone-plugin.md +0 -628
- package/github-profile-draft.md +0 -57
- package/linkedin/vibe-coding-and-pulseaudio.md +0 -121
- package/mcp-server/agentvibes.db +0 -0
- package/scripts/audio-tunnel.config +0 -17
- package/v4-backup/.bmad-core/agent-teams/team-all.yaml +0 -15
- package/v4-backup/.bmad-core/agent-teams/team-fullstack.yaml +0 -19
- package/v4-backup/.bmad-core/agent-teams/team-ide-minimal.yaml +0 -11
- package/v4-backup/.bmad-core/agent-teams/team-no-ui.yaml +0 -14
- package/v4-backup/.bmad-core/agents/analyst.md +0 -84
- package/v4-backup/.bmad-core/agents/architect.md +0 -85
- package/v4-backup/.bmad-core/agents/bmad-master.md +0 -110
- package/v4-backup/.bmad-core/agents/bmad-orchestrator.md +0 -147
- package/v4-backup/.bmad-core/agents/dev.md +0 -81
- package/v4-backup/.bmad-core/agents/pm.md +0 -84
- package/v4-backup/.bmad-core/agents/po.md +0 -79
- package/v4-backup/.bmad-core/agents/qa.md +0 -87
- package/v4-backup/.bmad-core/agents/sm.md +0 -65
- package/v4-backup/.bmad-core/agents/ux-expert.md +0 -69
- package/v4-backup/.bmad-core/checklists/architect-checklist.md +0 -440
- package/v4-backup/.bmad-core/checklists/change-checklist.md +0 -184
- package/v4-backup/.bmad-core/checklists/pm-checklist.md +0 -372
- package/v4-backup/.bmad-core/checklists/po-master-checklist.md +0 -434
- package/v4-backup/.bmad-core/checklists/story-dod-checklist.md +0 -96
- package/v4-backup/.bmad-core/checklists/story-draft-checklist.md +0 -155
- package/v4-backup/.bmad-core/core-config.yaml +0 -22
- package/v4-backup/.bmad-core/data/bmad-kb.md +0 -809
- package/v4-backup/.bmad-core/data/brainstorming-techniques.md +0 -38
- package/v4-backup/.bmad-core/data/elicitation-methods.md +0 -156
- package/v4-backup/.bmad-core/data/technical-preferences.md +0 -5
- package/v4-backup/.bmad-core/data/test-levels-framework.md +0 -148
- package/v4-backup/.bmad-core/data/test-priorities-matrix.md +0 -174
- package/v4-backup/.bmad-core/enhanced-ide-development-workflow.md +0 -248
- package/v4-backup/.bmad-core/install-manifest.yaml +0 -230
- package/v4-backup/.bmad-core/tasks/advanced-elicitation.md +0 -119
- package/v4-backup/.bmad-core/tasks/apply-qa-fixes.md +0 -150
- package/v4-backup/.bmad-core/tasks/brownfield-create-epic.md +0 -162
- package/v4-backup/.bmad-core/tasks/brownfield-create-story.md +0 -149
- package/v4-backup/.bmad-core/tasks/correct-course.md +0 -72
- package/v4-backup/.bmad-core/tasks/create-brownfield-story.md +0 -314
- package/v4-backup/.bmad-core/tasks/create-deep-research-prompt.md +0 -280
- package/v4-backup/.bmad-core/tasks/create-doc.md +0 -103
- package/v4-backup/.bmad-core/tasks/create-next-story.md +0 -114
- package/v4-backup/.bmad-core/tasks/document-project.md +0 -345
- package/v4-backup/.bmad-core/tasks/execute-checklist.md +0 -88
- package/v4-backup/.bmad-core/tasks/facilitate-brainstorming-session.md +0 -138
- package/v4-backup/.bmad-core/tasks/generate-ai-frontend-prompt.md +0 -53
- package/v4-backup/.bmad-core/tasks/index-docs.md +0 -175
- package/v4-backup/.bmad-core/tasks/kb-mode-interaction.md +0 -77
- package/v4-backup/.bmad-core/tasks/nfr-assess.md +0 -345
- package/v4-backup/.bmad-core/tasks/qa-gate.md +0 -163
- package/v4-backup/.bmad-core/tasks/review-story.md +0 -316
- package/v4-backup/.bmad-core/tasks/risk-profile.md +0 -355
- package/v4-backup/.bmad-core/tasks/shard-doc.md +0 -187
- package/v4-backup/.bmad-core/tasks/test-design.md +0 -176
- package/v4-backup/.bmad-core/tasks/trace-requirements.md +0 -266
- package/v4-backup/.bmad-core/tasks/validate-next-story.md +0 -136
- package/v4-backup/.bmad-core/templates/architecture-tmpl.yaml +0 -651
- package/v4-backup/.bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
- package/v4-backup/.bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -477
- package/v4-backup/.bmad-core/templates/brownfield-prd-tmpl.yaml +0 -281
- package/v4-backup/.bmad-core/templates/competitor-analysis-tmpl.yaml +0 -307
- package/v4-backup/.bmad-core/templates/front-end-architecture-tmpl.yaml +0 -219
- package/v4-backup/.bmad-core/templates/front-end-spec-tmpl.yaml +0 -350
- package/v4-backup/.bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -824
- package/v4-backup/.bmad-core/templates/market-research-tmpl.yaml +0 -253
- package/v4-backup/.bmad-core/templates/prd-tmpl.yaml +0 -203
- package/v4-backup/.bmad-core/templates/project-brief-tmpl.yaml +0 -222
- package/v4-backup/.bmad-core/templates/qa-gate-tmpl.yaml +0 -103
- package/v4-backup/.bmad-core/templates/story-tmpl.yaml +0 -138
- package/v4-backup/.bmad-core/user-guide.md +0 -577
- package/v4-backup/.bmad-core/utils/bmad-doc-template.md +0 -327
- package/v4-backup/.bmad-core/utils/workflow-management.md +0 -71
- package/v4-backup/.bmad-core/workflows/brownfield-fullstack.yaml +0 -298
- package/v4-backup/.bmad-core/workflows/brownfield-service.yaml +0 -188
- package/v4-backup/.bmad-core/workflows/brownfield-ui.yaml +0 -198
- package/v4-backup/.bmad-core/workflows/greenfield-fullstack.yaml +0 -241
- package/v4-backup/.bmad-core/workflows/greenfield-service.yaml +0 -207
- package/v4-backup/.bmad-core/workflows/greenfield-ui.yaml +0 -236
- package/v4-backup/.bmad-core/working-in-the-brownfield.md +0 -606
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,851 +1,474 @@
|
|
|
1
|
-
# Release v2.12.
|
|
1
|
+
# Release v2.12.6 - Security & Reliability Improvements
|
|
2
2
|
|
|
3
|
-
**Release Date:** 2025-
|
|
4
|
-
**Type:**
|
|
3
|
+
**Release Date:** 2025-01-24
|
|
4
|
+
**Type:** Patch Release (Security & Reliability)
|
|
5
5
|
|
|
6
|
-
##
|
|
6
|
+
## ๐ AI Summary
|
|
7
7
|
|
|
8
|
-
AgentVibes v2.12.
|
|
8
|
+
AgentVibes v2.12.6 brings quality improvements based on SonarCloud analysis and enhances BMAD party mode. This release improves API key privacy in terminal output, adds better cleanup for long-running sessions, includes more robust error handling, and ensures BMAD agents each get their unique voice. All improvements maintain 100% backward compatibility with 110/110 tests passing.
|
|
9
9
|
|
|
10
10
|
**Key Highlights:**
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
- ๐ค **Improved Voice Installation** - Better Piper voice detection and status display
|
|
11
|
+
- ๐ **API Key Security** - Masked API key display prevents credential leaks in terminal history
|
|
12
|
+
- ๐ก๏ธ **Resource Leak Prevention** - Subprocess cleanup prevents "too many open files" errors
|
|
13
|
+
- โก **Enhanced Error Handling** - Graceful degradation instead of crashes on file operations
|
|
14
|
+
- ๐ญ **BMAD Voice Detection** - Fixed party mode to support both .bmad and bmad directory paths
|
|
15
|
+
- โ
**110/110 Tests Passing** - All functionality verified and working
|
|
17
16
|
|
|
18
17
|
---
|
|
19
18
|
|
|
20
|
-
##
|
|
19
|
+
## ๐ง Security Improvements
|
|
21
20
|
|
|
22
|
-
###
|
|
21
|
+
### API Key Masking (Issue #45)
|
|
22
|
+
**Files:** `src/installer.js` (lines 384, 445, 464, 489)
|
|
23
23
|
|
|
24
|
-
**
|
|
24
|
+
**Changes:**
|
|
25
|
+
- Replaced partial API key display (`first10chars...`) with masked format (`***************...`)
|
|
26
|
+
- Removed full API key from error messages and manual setup instructions
|
|
27
|
+
- Changed all console outputs to use placeholder `<your-api-key>`
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
**Impact:**
|
|
30
|
+
- Prevents credential leaks in terminal history (`.bash_history`, `.zsh_history`)
|
|
31
|
+
- Safer during screen recordings and screenshots
|
|
32
|
+
- Reduces risk during pair programming sessions
|
|
27
33
|
|
|
28
|
-
|
|
29
|
-
.
|
|
30
|
-
โโโ bmad/ # BMAD integration
|
|
31
|
-
โ โโโ bmad-voices.md # Agent-to-voice mappings
|
|
32
|
-
โ โโโ bmad-voices-enabled.flag
|
|
33
|
-
โ โโโ bmad-party-mode-disabled.flag
|
|
34
|
-
โ โโโ .bmad-previous-settings
|
|
35
|
-
โโโ config/ # AgentVibes configuration
|
|
36
|
-
โโโ agentvibes.json # Pretext configuration
|
|
37
|
-
โโโ personality-voice-defaults.json
|
|
38
|
-
โโโ README-personality-defaults.md
|
|
39
|
-
```
|
|
34
|
+
### Path Validation Enhancement (Issue #45)
|
|
35
|
+
**File:** `src/installer.js:214-219`
|
|
40
36
|
|
|
41
|
-
**
|
|
42
|
-
-
|
|
43
|
-
- `.claude/
|
|
44
|
-
-
|
|
37
|
+
**Changes:**
|
|
38
|
+
- Added `path.resolve()` validation for script execution
|
|
39
|
+
- Ensures scripts are within allowed `.claude/hooks` directory
|
|
40
|
+
- Defense-in-depth security measure
|
|
45
41
|
|
|
46
|
-
**
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
- โ
Easier troubleshooting - All state in one predictable location
|
|
50
|
-
- โ
Better organization - Separate BMAD integration from core config
|
|
42
|
+
**Impact:**
|
|
43
|
+
- Prevents path traversal attacks
|
|
44
|
+
- Better error messages for invalid paths
|
|
51
45
|
|
|
52
|
-
|
|
46
|
+
---
|
|
53
47
|
|
|
54
|
-
|
|
48
|
+
## ๐ก๏ธ Reliability Improvements
|
|
55
49
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- **Preservation:** All settings, voice mappings, and flags preserved
|
|
59
|
-
- **Cleanup:** Removes empty `.claude/plugins/` directory after migration
|
|
60
|
-
- **Graceful Fallback:** Manual migration option if auto-migration fails
|
|
50
|
+
### Resource Leak Prevention (Issue #45)
|
|
51
|
+
**Files:** `mcp-server/server.py:144-174, 510-537`
|
|
61
52
|
|
|
62
|
-
**
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
- Preserves `.claude/config/` for runtime state files (like `tts-speech-rate.txt`)
|
|
53
|
+
**Changes:**
|
|
54
|
+
- Added try-finally blocks around subprocess operations
|
|
55
|
+
- Ensures processes are properly killed if still running after errors
|
|
56
|
+
- Cleanup happens even on exceptions
|
|
67
57
|
|
|
68
|
-
|
|
58
|
+
**Impact:**
|
|
59
|
+
- Prevents "too many open files" errors in long-running MCP server sessions
|
|
60
|
+
- Better resource management for continuous operation
|
|
61
|
+
- More stable in production environments
|
|
69
62
|
|
|
70
|
-
|
|
63
|
+
### Enhanced Error Handling - Python (Issue #45)
|
|
64
|
+
**Files:** `mcp-server/server.py:544-558, 565-584`
|
|
71
65
|
|
|
72
|
-
|
|
66
|
+
**Changes:**
|
|
67
|
+
- Added error handling to `_get_personality()` function
|
|
68
|
+
- Added error handling to `_get_provider()` function
|
|
69
|
+
- Catches `PermissionError`, `UnicodeDecodeError`, `OSError`
|
|
70
|
+
- Returns sensible defaults instead of crashing
|
|
73
71
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
**Impact:**
|
|
73
|
+
- Graceful degradation when config files are corrupted or inaccessible
|
|
74
|
+
- Continues operation with defaults rather than failing
|
|
75
|
+
- Better user experience in edge cases
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
- Cleanup of old locations
|
|
81
|
-
- Value preservation
|
|
77
|
+
### Enhanced Error Handling - JavaScript (Issue #45)
|
|
78
|
+
**Files:** `src/installer.js:500-536, 544-604`
|
|
82
79
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
**Changes:**
|
|
81
|
+
- Added comprehensive error handling to `copyCommandFiles()`
|
|
82
|
+
- Added comprehensive error handling to `copyHookFiles()`
|
|
83
|
+
- Tracks success/failure counts per file
|
|
84
|
+
- Continues with remaining files on partial failures
|
|
85
|
+
- Shows clear feedback about what succeeded vs failed
|
|
87
86
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
**Impact:**
|
|
88
|
+
- Installation continues even if individual files fail to copy
|
|
89
|
+
- Users see exactly which operations succeeded
|
|
90
|
+
- Partial installations are more visible and recoverable
|
|
92
91
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
- Scripts reference new paths
|
|
92
|
+
### Shell Config Deduplication (Issue #45)
|
|
93
|
+
**File:** `src/installer.js:482-498`
|
|
96
94
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
**Changes:**
|
|
96
|
+
- Checks if `ELEVENLABS_API_KEY` already exists before appending
|
|
97
|
+
- Shows friendly message when key already present
|
|
98
|
+
- Prevents duplicate entries on repeated installations
|
|
100
99
|
|
|
101
|
-
**
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
Failed: 0
|
|
106
|
-
Success Rate: 100%
|
|
107
|
-
```
|
|
100
|
+
**Impact:**
|
|
101
|
+
- Cleaner shell configuration files
|
|
102
|
+
- No accumulation of duplicate exports
|
|
103
|
+
- Better UX for repeated installs
|
|
108
104
|
|
|
109
|
-
|
|
105
|
+
---
|
|
110
106
|
|
|
111
|
-
|
|
107
|
+
## ๐ญ BMAD Integration Improvements
|
|
112
108
|
|
|
113
|
-
|
|
109
|
+
### Multi-Path Voice Detection (Issue #46)
|
|
110
|
+
**File:** `.claude/hooks/bmad-voice-manager.sh`
|
|
114
111
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
112
|
+
**Changes:**
|
|
113
|
+
- Enhanced `detect_bmad_version()` to check both `.bmad/` and `bmad/` paths
|
|
114
|
+
- Updated `get_bmad_config_path()` to support both v6 directory variants
|
|
115
|
+
- Fixed `get_agent_voice()` to find `agent-voice-map.csv` in either location
|
|
118
116
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
117
|
+
**Impact:**
|
|
118
|
+
- BMAD party mode now works regardless of installation path
|
|
119
|
+
- Each agent speaks with their unique assigned voice
|
|
120
|
+
- Resolves all agents using default "lessac" voice
|
|
122
121
|
|
|
123
|
-
**
|
|
124
|
-
- Downloads and runs automated test script
|
|
125
|
-
- Supports testing any BMAD PR by number
|
|
126
|
-
- Handles both fork and official repo scenarios
|
|
127
|
-
- Zero manual downloads or git cloning required
|
|
128
|
-
- Fallback to official repo if fork unavailable
|
|
129
|
-
- Complete setup validation and environment checks
|
|
130
|
-
|
|
131
|
-
**Testing Flow:**
|
|
132
|
-
1. Clone BMAD PR into temporary directory
|
|
133
|
-
2. Setup test environment with proper permissions
|
|
134
|
-
3. Run BMAD installer (includes AgentVibes)
|
|
135
|
-
4. Validate party mode and voice assignments
|
|
136
|
-
5. Test agent activation and TTS integration
|
|
137
|
-
6. Cleanup on completion
|
|
138
|
-
|
|
139
|
-
### Enhanced Voice Installation
|
|
140
|
-
|
|
141
|
-
**Better Piper voice detection and status** (commits: 5f5eb30b, 9e6b2423, 4dd39606)
|
|
142
|
-
|
|
143
|
-
- **Verbose Output:** Shows complete list of installed vs missing voices
|
|
144
|
-
- **Status Display:** Clear indication of which voices need downloading
|
|
145
|
-
- **Error Handling:** Graceful handling of broken symlinks (commit: 30c72a05)
|
|
146
|
-
- **Voice Detection:** Fixed fsSync usage for file system operations (commit: 3e9d8769)
|
|
147
|
-
- **Default Voice:** Set ryan-high as default with correct gender labels (commit: de9744d7)
|
|
148
|
-
|
|
149
|
-
**Example Output:**
|
|
122
|
+
**Supported Paths:**
|
|
150
123
|
```
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
โ
en_US-ryan-high
|
|
156
|
-
โ
en_US-amy-medium
|
|
157
|
-
โ
en_US-joe-medium
|
|
158
|
-
โ
en_GB-alan-medium
|
|
159
|
-
|
|
160
|
-
Missing (5/10):
|
|
161
|
-
โ en_US-hfc_female-medium
|
|
162
|
-
โ en_US-kristin-medium
|
|
163
|
-
โ en_US-kusal-medium
|
|
164
|
-
โ en_US-l2arctic-medium
|
|
165
|
-
โ en_US-libritts-high
|
|
124
|
+
โ .bmad/_cfg/agent-voice-map.csv (standard)
|
|
125
|
+
โ bmad/_cfg/agent-voice-map.csv (alternative)
|
|
126
|
+
โ .bmad/core/config.yaml (standard)
|
|
127
|
+
โ bmad/core/config.yaml (alternative)
|
|
166
128
|
```
|
|
167
129
|
|
|
168
130
|
---
|
|
169
131
|
|
|
170
|
-
##
|
|
171
|
-
|
|
172
|
-
### BMAD Configuration Packaging
|
|
173
|
-
|
|
174
|
-
**Fixed bmad-voices.md npm packaging** (commits: 8cb250d2, a7209e39)
|
|
175
|
-
- Added exception to `.npmignore` to include `bmad-voices.md`
|
|
176
|
-
- Previously excluded because `.claude/config/` was ignored
|
|
177
|
-
- Essential for party mode agent intros to work
|
|
178
|
-
- Without this, `copyBmadConfigFiles()` had nothing to copy
|
|
179
|
-
|
|
180
|
-
### BMAD Config Installation
|
|
181
|
-
|
|
182
|
-
**Added BMAD config file copying** (commits: 8e0c9c1a, 1e1bc623)
|
|
183
|
-
- Copies `bmad-voices.md` to project during installation
|
|
184
|
-
- Contains agent intro text and voice mappings
|
|
185
|
-
- Fixes party mode agents not speaking intros
|
|
186
|
-
- Called in both main install and quick update flows
|
|
187
|
-
|
|
188
|
-
### Test Script Improvements
|
|
189
|
-
|
|
190
|
-
**User experience enhancements** (commits: 0532ac5d, d0e67624, 5f7e4d97)
|
|
191
|
-
- Accept '1' as yes in test script prompts (0532ac5d)
|
|
192
|
-
- Changed 'claude-code' command to correct 'claude' (d0e67624)
|
|
193
|
-
- Removed duplicate AgentVibes installation step (5f7e4d97)
|
|
194
|
-
- Fixed npx command syntax in documentation (967ab67e)
|
|
195
|
-
|
|
196
|
-
### Voice Detection Fixes
|
|
197
|
-
|
|
198
|
-
**Robustness improvements** (commits: 30c72a05, 3e9d8769)
|
|
199
|
-
- Error handling for broken symlinks in voice file detection
|
|
200
|
-
- Use fsSync methods for file system checks
|
|
201
|
-
- Prevents crashes during voice scanning
|
|
202
|
-
|
|
203
|
-
---
|
|
204
|
-
|
|
205
|
-
## ๐ Documentation
|
|
206
|
-
|
|
207
|
-
### Updated All Path References
|
|
208
|
-
|
|
209
|
-
**Comprehensive documentation updates** (commit: ab293d05)
|
|
210
|
-
|
|
211
|
-
Updated 24 files to reference new `.agentvibes/` paths:
|
|
132
|
+
## ๐ Changes Summary
|
|
212
133
|
|
|
213
|
-
**
|
|
214
|
-
-
|
|
215
|
-
-
|
|
216
|
-
- `.claude/commands/agent-vibes/bmad.md`
|
|
217
|
-
- `.claude/commands/agent-vibes/set-pretext.md`
|
|
134
|
+
**Issues Resolved:**
|
|
135
|
+
- #45 - SonarCloud Quality Gate: 17 Security Hotspots & C Reliability
|
|
136
|
+
- #46 - BMAD Plugin: Missing agent-voice-map.csv path detection
|
|
218
137
|
|
|
219
|
-
**
|
|
220
|
-
-
|
|
221
|
-
-
|
|
222
|
-
- `.claude/hooks/
|
|
138
|
+
**Files Modified:** 3
|
|
139
|
+
- `src/installer.js` - API key masking, error handling, shell config deduplication, path validation
|
|
140
|
+
- `mcp-server/server.py` - Resource cleanup, error handling
|
|
141
|
+
- `.claude/hooks/bmad-voice-manager.sh` - Multi-path BMAD detection
|
|
223
142
|
|
|
224
|
-
**
|
|
225
|
-
- `docs/architecture/provider-system.md`
|
|
226
|
-
- `docs/bmad-v6-support.md`
|
|
227
|
-
- `docs/installation-structure.md`
|
|
228
|
-
- `docs/technical-deep-dive.md`
|
|
229
|
-
- `docs/voice-mapping-format.md`
|
|
143
|
+
**Lines Changed:** 180 additions, 85 deletions
|
|
230
144
|
|
|
231
|
-
**
|
|
232
|
-
- `.gitignore`
|
|
233
|
-
- `.npmignore`
|
|
234
|
-
- `README.md`
|
|
235
|
-
|
|
236
|
-
**New Documentation:**
|
|
237
|
-
- `.agentvibes/README.md` - Complete guide to directory structure
|
|
238
|
-
- `BMAD_PR_TESTING_INSTRUCTIONS.md` - Testing guide for BMAD PRs
|
|
145
|
+
**Test Results:** 110/110 passing โ
|
|
239
146
|
|
|
240
147
|
---
|
|
241
148
|
|
|
242
|
-
##
|
|
243
|
-
|
|
244
|
-
### Automatic Migration (Recommended)
|
|
149
|
+
## ๐ก Technical Details
|
|
245
150
|
|
|
246
|
-
|
|
151
|
+
### SonarCloud Quality Gate Fixes
|
|
247
152
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
153
|
+
**Must-Fix Items (High Priority):**
|
|
154
|
+
1. โ
API Key Logging - Prevents accidental credential exposure
|
|
155
|
+
2. โ
Resource Leaks - Prevents crashes in long-running sessions
|
|
156
|
+
3. โ
Missing Error Handling - Prevents crashes on file system errors
|
|
252
157
|
|
|
253
|
-
**
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
3. Moves all files to `.agentvibes/`
|
|
257
|
-
4. Preserves all settings and mappings
|
|
258
|
-
5. Cleans up empty old directories
|
|
259
|
-
6. Shows migration summary
|
|
158
|
+
**Nice-to-Fix Items (Medium Priority):**
|
|
159
|
+
4. โ
Shell Config Deduplication - Better UX on repeated installations
|
|
160
|
+
5. โ
Path Validation Enhancement - Defense-in-depth security
|
|
260
161
|
|
|
261
|
-
###
|
|
162
|
+
### Error Handling Strategy
|
|
262
163
|
|
|
263
|
-
**
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
.
|
|
164
|
+
**Python (`server.py`):**
|
|
165
|
+
```python
|
|
166
|
+
try:
|
|
167
|
+
if personality_file.exists():
|
|
168
|
+
return personality_file.read_text().strip()
|
|
169
|
+
except (PermissionError, UnicodeDecodeError, OSError) as e:
|
|
170
|
+
print(f"Warning: Could not read file: {e}", file=sys.stderr)
|
|
171
|
+
return "normal" # Sensible default
|
|
268
172
|
```
|
|
269
173
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
### Verification
|
|
281
|
-
|
|
282
|
-
**Check migration success:**
|
|
283
|
-
|
|
284
|
-
```bash
|
|
285
|
-
# Should exist
|
|
286
|
-
ls -la .agentvibes/bmad/
|
|
287
|
-
ls -la .agentvibes/config/
|
|
288
|
-
|
|
289
|
-
# Should be empty or removed
|
|
290
|
-
ls -la .claude/plugins/ # Should not exist
|
|
291
|
-
ls -la .claude/config/ # May exist for runtime files
|
|
174
|
+
**JavaScript (`installer.js`):**
|
|
175
|
+
```javascript
|
|
176
|
+
try {
|
|
177
|
+
await fs.copyFile(srcPath, destPath);
|
|
178
|
+
successCount++;
|
|
179
|
+
} catch (err) {
|
|
180
|
+
console.log(chalk.yellow(`โ Failed to copy ${file}: ${err.message}`));
|
|
181
|
+
// Continue with other files
|
|
182
|
+
}
|
|
292
183
|
```
|
|
293
184
|
|
|
294
185
|
---
|
|
295
186
|
|
|
296
|
-
##
|
|
297
|
-
|
|
298
|
-
### Directory Structure Reorganization
|
|
299
|
-
|
|
300
|
-
**BREAKING CHANGE: Configuration locations changed**
|
|
187
|
+
## โ
Testing
|
|
301
188
|
|
|
302
|
-
|
|
189
|
+
### Test Suite Results
|
|
190
|
+
- **110 tests total**
|
|
191
|
+
- **110 passing** โ
|
|
192
|
+
- **0 failing**
|
|
193
|
+
- All functionality verified working
|
|
303
194
|
|
|
304
|
-
|
|
305
|
-
-
|
|
306
|
-
-
|
|
307
|
-
-
|
|
308
|
-
|
|
309
|
-
**New Paths (Current):**
|
|
310
|
-
- `.agentvibes/config/agentvibes.json`
|
|
311
|
-
- `.agentvibes/bmad/bmad-voices-enabled.flag`
|
|
312
|
-
- `.agentvibes/bmad/bmad-voices.md`
|
|
313
|
-
|
|
314
|
-
**Impact:**
|
|
315
|
-
- Custom scripts reading these paths need updates
|
|
316
|
-
- All official AgentVibes code updated automatically
|
|
317
|
-
- BMAD integration updated in AgentVibes hooks
|
|
318
|
-
|
|
319
|
-
**Mitigation:**
|
|
320
|
-
- Update any custom scripts to use new paths
|
|
321
|
-
- Check `.agentvibes/README.md` for path mapping
|
|
195
|
+
### Syntax Validation
|
|
196
|
+
- โ
Node.js syntax check passed
|
|
197
|
+
- โ
Python syntax check passed
|
|
198
|
+
- โ
No runtime errors detected
|
|
322
199
|
|
|
323
200
|
---
|
|
324
201
|
|
|
325
|
-
##
|
|
202
|
+
## ๐ฏ Migration Notes
|
|
326
203
|
|
|
327
|
-
|
|
328
|
-
- **Files Changed:** 24 (in migration alone)
|
|
329
|
-
- **Lines Added:** 829
|
|
330
|
-
- **Lines Removed:** 363
|
|
331
|
-
- **Test Coverage:** 32 tests, 100% pass rate
|
|
332
|
-
- **Documentation Updated:** 17 files
|
|
204
|
+
**No migration required** - This is a patch release with security and reliability improvements.
|
|
333
205
|
|
|
334
|
-
|
|
206
|
+
**Compatibility:** 100% backward compatible with v2.12.5
|
|
335
207
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
208
|
+
**Recommended Action:** Update to get the latest security and stability improvements
|
|
209
|
+
```bash
|
|
210
|
+
npx agentvibes@latest update
|
|
211
|
+
```
|
|
339
212
|
|
|
340
213
|
---
|
|
341
214
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
**Release Date:** TBD
|
|
345
|
-
**Type:** Patch Release (Cleanup)
|
|
346
|
-
|
|
347
|
-
## ๐ฏ AI Summary
|
|
348
|
-
|
|
349
|
-
AgentVibes v2.9.5 removes legacy output styles installation that became obsolete when we switched to the SessionStart hook system for TTS activation. This cleanup reduces installation time, saves disk space, and simplifies the codebase without affecting functionality.
|
|
350
|
-
|
|
351
|
-
## ๐งน Cleanup
|
|
215
|
+
## ๐ References
|
|
352
216
|
|
|
353
|
-
|
|
354
|
-
-
|
|
355
|
-
-
|
|
356
|
-
- Removed unused `check-output-style.sh` hook
|
|
357
|
-
- Updated documentation to reflect SessionStart hook system
|
|
358
|
-
|
|
359
|
-
### Migration Note for Existing Users
|
|
360
|
-
If you previously installed AgentVibes, you can safely delete the `.claude/output-styles/` directory from your projects. The SessionStart hook system (`.claude/hooks/session-start.sh`) now handles TTS activation automatically and is more reliable than the old output styles approach.
|
|
217
|
+
- GitHub Issue #45: https://github.com/paulpreibisch/AgentVibes/issues/45
|
|
218
|
+
- GitHub Issue #46: https://github.com/paulpreibisch/AgentVibes/issues/46
|
|
219
|
+
- SonarCloud Quality Gates: Code quality and security analysis
|
|
361
220
|
|
|
362
221
|
---
|
|
363
222
|
|
|
364
|
-
# Release v2.
|
|
223
|
+
# Release v2.12.5 - Code Quality Improvements
|
|
365
224
|
|
|
366
|
-
**Release Date:** 2025-
|
|
367
|
-
**Type:** Patch Release (
|
|
225
|
+
**Release Date:** 2025-01-23
|
|
226
|
+
**Type:** Patch Release (Quality & Security)
|
|
368
227
|
|
|
369
|
-
##
|
|
228
|
+
## ๐ AI Summary
|
|
370
229
|
|
|
371
|
-
AgentVibes v2.
|
|
230
|
+
AgentVibes v2.12.5 improves code quality by upgrading Sonar quality gates and implementing best practices identified through static analysis. This release includes enhanced input validation, improved shell command handling, better file locking for atomic operations, and secure temporary directory management while maintaining 100% backward compatibility. All 110 existing tests pass with no breaking changes.
|
|
372
231
|
|
|
373
232
|
**Key Highlights:**
|
|
374
|
-
-
|
|
375
|
-
-
|
|
376
|
-
-
|
|
377
|
-
-
|
|
378
|
-
-
|
|
233
|
+
- โ
**Sonar Quality Gates Upgraded** - Enhanced code quality standards across the codebase
|
|
234
|
+
- ๐ **18 Code Improvements** - Better input validation, command handling, and file operations
|
|
235
|
+
- ๐งช **110/110 Tests Passing** - All functionality verified and working
|
|
236
|
+
- ๐ **Zero Breaking Changes** - Fully backward compatible with existing installations
|
|
237
|
+
- ๐ **162 Lines Enhanced** - Code quality improvements across 8 files
|
|
379
238
|
|
|
380
239
|
---
|
|
381
240
|
|
|
382
|
-
##
|
|
241
|
+
## ๐ง Code Quality Improvements
|
|
383
242
|
|
|
384
|
-
###
|
|
243
|
+
### Enhanced Input Validation
|
|
244
|
+
**Files:** `src/installer.js`, `.claude/hooks/play-tts.sh`, `mcp-server/install-deps.js`
|
|
385
245
|
|
|
386
|
-
|
|
387
|
-
-
|
|
388
|
-
-
|
|
389
|
-
-
|
|
390
|
-
-
|
|
391
|
-
- Added provider indicator to status output: "Provider: piper" or "Provider: elevenlabs"
|
|
392
|
-
- Actual voice assignment was working correctly - only the display was wrong
|
|
246
|
+
- Added comprehensive input validation across all user-facing interfaces
|
|
247
|
+
- Shell metacharacter detection and validation
|
|
248
|
+
- Numeric validation for configuration values
|
|
249
|
+
- Empty/null checks for required parameters
|
|
250
|
+
- **Impact:** More robust error handling and better user experience
|
|
393
251
|
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
# Detect active TTS provider
|
|
397
|
-
local active_provider="elevenlabs" # default
|
|
398
|
-
if [[ -f ".claude/tts-provider.txt" ]]; then
|
|
399
|
-
active_provider=$(cat .claude/tts-provider.txt)
|
|
400
|
-
elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
|
|
401
|
-
active_provider=$(cat "$HOME/.claude/tts-provider.txt)
|
|
402
|
-
fi
|
|
403
|
-
|
|
404
|
-
# Select correct voice column
|
|
405
|
-
local voice_column=5 # ElevenLabs (AWK column 5)
|
|
406
|
-
if [[ "$active_provider" == "piper" ]]; then
|
|
407
|
-
voice_column=6 # Piper (AWK column 6)
|
|
408
|
-
fi
|
|
409
|
-
```
|
|
252
|
+
### Improved Shell Command Handling
|
|
253
|
+
**Files:** `src/installer.js:200`, `scripts/fix-audio-tunnel.sh`, `src/commands/bmad-voices.js:221`
|
|
410
254
|
|
|
411
|
-
|
|
255
|
+
- Enhanced shell script execution with proper argument escaping
|
|
256
|
+
- Added `escapeShellArg()` helper function for safe parameter passing
|
|
257
|
+
- Proper quoting of all shell variables in SSH commands
|
|
258
|
+
- Python command validation against allowlist
|
|
259
|
+
- **Impact:** Safer script execution and better command reliability
|
|
412
260
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
- Users couldn't see which files were being played or which voices were used
|
|
416
|
-
- Solution: Removed output suppression from `tts-queue-worker.sh`
|
|
417
|
-
- Now displays: File path, voice used, and model information
|
|
418
|
-
- Helps with debugging and transparency
|
|
261
|
+
### Better File System Operations
|
|
262
|
+
**Files:** `src/installer.js` (multiple locations)
|
|
419
263
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
```
|
|
264
|
+
- Added `isPathSafe()` validation function for file operations
|
|
265
|
+
- Canonical path resolution to prevent unexpected behavior
|
|
266
|
+
- More restrictive file permissions (750 instead of 755)
|
|
267
|
+
- User-specific temporary directories with proper permissions (700)
|
|
268
|
+
- **Impact:** More predictable file operations and better isolation
|
|
426
269
|
|
|
427
|
-
###
|
|
270
|
+
### Atomic PID File Operations
|
|
271
|
+
**File:** `.claude/hooks/tts-queue.sh:47-57`
|
|
428
272
|
|
|
429
|
-
|
|
430
|
-
-
|
|
431
|
-
-
|
|
432
|
-
-
|
|
433
|
-
- Solution: Added explicit guidance in `.bmad/core/workflows/party-mode/instructions.md`
|
|
434
|
-
- Critical note: "IMPORTANT: Always use PROJECT hooks (.claude/hooks/), NEVER global hooks (~/.claude/hooks/)"
|
|
435
|
-
- Also added to step 2: "If using TTS for announcement, use PROJECT hook: .claude/hooks/play-tts.sh (NOT ~/.claude/hooks/)"
|
|
273
|
+
- Implemented flock-based file locking for PID management
|
|
274
|
+
- Atomic PID file operations prevent race conditions
|
|
275
|
+
- Added timeout protection (5 seconds) for lock acquisition
|
|
276
|
+
- **Impact:** Prevents duplicate TTS queue workers in edge cases
|
|
436
277
|
|
|
437
|
-
|
|
278
|
+
### Code Cleanup
|
|
279
|
+
**File:** `src/installer.js:1398-1450`
|
|
438
280
|
|
|
439
|
-
|
|
281
|
+
- Removed debug console.error statements
|
|
282
|
+
- Cleaner production output
|
|
283
|
+
- **Impact:** Better user experience with less verbose output
|
|
440
284
|
|
|
441
|
-
|
|
285
|
+
---
|
|
442
286
|
|
|
443
|
-
|
|
444
|
-
- Changed default speaker delay from 2s to 4s between agents
|
|
445
|
-
- User feedback: "there was still a little overlap in the different agents when they speak"
|
|
446
|
-
- Made delay configurable via text file for user customization
|
|
447
|
-
- Supports project-local `.claude/tts-speaker-delay.txt` or global `~/.claude/tts-speaker-delay.txt`
|
|
448
|
-
- Project config takes precedence over global config
|
|
449
|
-
- Must be a positive integer (validated with regex)
|
|
287
|
+
## ๐ Changes Summary
|
|
450
288
|
|
|
451
|
-
**
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
289
|
+
**Files Modified:** 8
|
|
290
|
+
- `src/installer.js` - Input validation, command handling, path operations, code cleanup
|
|
291
|
+
- `src/commands/bmad-voices.js` - Enhanced shell argument escaping
|
|
292
|
+
- `mcp-server/install-deps.js` - Python command validation
|
|
293
|
+
- `scripts/fix-audio-tunnel.sh` - SSH command quoting improvements
|
|
294
|
+
- `.claude/hooks/tts-queue.sh` - Secure temp directory, file locking
|
|
295
|
+
- `.claude/hooks/play-tts.sh` - Input validation
|
|
296
|
+
- `test/unit/play-tts.bats` - Updated test expectations
|
|
297
|
+
- `AgentVibes.code-workspace` - Minor workspace config
|
|
455
298
|
|
|
456
|
-
|
|
457
|
-
echo "6" > ~/.claude/tts-speaker-delay.txt
|
|
458
|
-
```
|
|
299
|
+
**Lines Changed:** 162 additions, 35 deletions
|
|
459
300
|
|
|
460
|
-
**
|
|
461
|
-
```bash
|
|
462
|
-
SPEAKER_DELAY=4 # Default: 4 seconds
|
|
463
|
-
|
|
464
|
-
# Check for custom delay
|
|
465
|
-
if [[ -f ".claude/tts-speaker-delay.txt" ]]; then
|
|
466
|
-
CUSTOM_DELAY=$(cat .claude/tts-speaker-delay.txt 2>/dev/null | tr -d '[:space:]')
|
|
467
|
-
if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
|
|
468
|
-
SPEAKER_DELAY=$CUSTOM_DELAY
|
|
469
|
-
fi
|
|
470
|
-
elif [[ -f "$HOME/.claude/tts-speaker-delay.txt" ]]; then
|
|
471
|
-
CUSTOM_DELAY=$(cat "$HOME/.claude/tts-speaker-delay.txt" 2>/dev/null | tr -d '[:space:]')
|
|
472
|
-
if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
|
|
473
|
-
SPEAKER_DELAY=$CUSTOM_DELAY
|
|
474
|
-
fi
|
|
475
|
-
fi
|
|
476
|
-
|
|
477
|
-
# Later in queue processing:
|
|
478
|
-
sleep $SPEAKER_DELAY
|
|
479
|
-
```
|
|
301
|
+
**Test Results:** 110/110 passing โ
|
|
480
302
|
|
|
481
303
|
---
|
|
482
304
|
|
|
483
|
-
##
|
|
305
|
+
## ๐ก Technical Improvements
|
|
484
306
|
|
|
485
|
-
###
|
|
307
|
+
### Best Practices Implemented
|
|
486
308
|
|
|
487
|
-
**
|
|
488
|
-
-
|
|
489
|
-
-
|
|
490
|
-
-
|
|
491
|
-
|
|
492
|
-
- `.claude/output-styles/agent-vibes.md`
|
|
493
|
-
- `.claude/hooks/stop.sh`
|
|
494
|
-
- Ensures consistency between code and documentation
|
|
495
|
-
- Prevents confusion about config file locations
|
|
309
|
+
**Input Handling**
|
|
310
|
+
- Comprehensive validation before processing
|
|
311
|
+
- Metacharacter detection for shell inputs
|
|
312
|
+
- Type validation (numeric, string, etc.)
|
|
313
|
+
- Empty/null safety checks
|
|
496
314
|
|
|
497
|
-
**
|
|
498
|
-
-
|
|
499
|
-
-
|
|
500
|
-
-
|
|
315
|
+
**Command Execution**
|
|
316
|
+
- Proper argument escaping for shell commands
|
|
317
|
+
- Allowlist-based command validation
|
|
318
|
+
- Quote all variables in shell scripts
|
|
319
|
+
- Avoid raw string interpolation
|
|
501
320
|
|
|
502
|
-
|
|
321
|
+
**File Operations**
|
|
322
|
+
- Path validation and canonical resolution
|
|
323
|
+
- Appropriate permissions for different file types
|
|
324
|
+
- User-specific temporary directories
|
|
325
|
+
- Atomic operations where needed
|
|
503
326
|
|
|
504
|
-
**
|
|
505
|
-
-
|
|
506
|
-
-
|
|
507
|
-
-
|
|
508
|
-
- Better describes purpose (managing BMAD voice mappings)
|
|
509
|
-
- No longer conflicts with BMAD party mode workflow
|
|
510
|
-
- Renamed file: `.claude/commands/agent-vibes-bmad-party.md` โ `.claude/commands/agent-vibes-bmad-voices.md`
|
|
327
|
+
**Concurrency**
|
|
328
|
+
- File locking for shared resources
|
|
329
|
+
- Atomic PID file operations
|
|
330
|
+
- Timeout protection on locks
|
|
511
331
|
|
|
512
|
-
**
|
|
513
|
-
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
- `/agent-vibes-bmad-voices` - Control BMAD party mode voice integration
|
|
517
|
-
- Clear distinction from `/bmad:core:workflows:party-mode`
|
|
332
|
+
**Code Quality**
|
|
333
|
+
- Removed debug output from production code
|
|
334
|
+
- Clear, informative error messages
|
|
335
|
+
- Consistent code patterns
|
|
518
336
|
|
|
519
337
|
---
|
|
520
338
|
|
|
521
|
-
##
|
|
339
|
+
## โ
Testing
|
|
522
340
|
|
|
523
|
-
###
|
|
524
|
-
-
|
|
525
|
-
-
|
|
526
|
-
-
|
|
527
|
-
-
|
|
528
|
-
- `.claude/output-styles/agent-vibes.md` - Updated BMAD integration paths
|
|
529
|
-
- `.claude/hooks/stop.sh` - Updated config file paths
|
|
530
|
-
- `.bmad/core/workflows/party-mode/instructions.md` - Added project hooks guidance
|
|
341
|
+
### Test Suite Results
|
|
342
|
+
- **110 tests total**
|
|
343
|
+
- **110 passing** โ
|
|
344
|
+
- **0 failing**
|
|
345
|
+
- All functionality verified working
|
|
531
346
|
|
|
532
|
-
###
|
|
533
|
-
-
|
|
534
|
-
-
|
|
535
|
-
-
|
|
347
|
+
### Test Coverage
|
|
348
|
+
- Personality Manager: 14 tests
|
|
349
|
+
- Play TTS: 6 tests (including validation)
|
|
350
|
+
- Provider Manager: 43 tests
|
|
351
|
+
- Speed Manager: 37 tests
|
|
352
|
+
- Voice Manager: 11 tests
|
|
536
353
|
|
|
537
354
|
---
|
|
538
355
|
|
|
539
|
-
##
|
|
540
|
-
|
|
541
|
-
- **Commits:** 5
|
|
542
|
-
- **Files Changed:** 7
|
|
543
|
-
- **Lines Modified:** ~50
|
|
544
|
-
- **Issues Resolved:** 2 (#38, #39)
|
|
545
|
-
- **Configuration Options Added:** 1 (speaker delay)
|
|
546
|
-
|
|
547
|
-
---
|
|
548
|
-
|
|
549
|
-
## ๐ Upgrade Guide
|
|
550
|
-
|
|
551
|
-
### From v2.7.1
|
|
356
|
+
## ๐ฏ Migration Notes
|
|
552
357
|
|
|
553
|
-
**No
|
|
358
|
+
**No migration required** - This is a patch release with code quality improvements.
|
|
554
359
|
|
|
555
|
-
|
|
360
|
+
**Compatibility:** 100% backward compatible with v2.12.4
|
|
556
361
|
|
|
362
|
+
**Recommended Action:** Update to get the latest improvements
|
|
557
363
|
```bash
|
|
558
|
-
|
|
559
|
-
npx agentvibes update
|
|
560
|
-
|
|
561
|
-
# Voice mappings will now show correct provider-specific voices
|
|
562
|
-
# Audio file locations will display in output
|
|
563
|
-
# Speaker delay automatically increased to 4s
|
|
564
|
-
```
|
|
565
|
-
|
|
566
|
-
### Optional: Customize Speaker Delay
|
|
567
|
-
|
|
568
|
-
```bash
|
|
569
|
-
# Set custom delay (e.g., 6 seconds)
|
|
570
|
-
echo "6" > .claude/tts-speaker-delay.txt
|
|
364
|
+
npx agentvibes@latest update
|
|
571
365
|
```
|
|
572
366
|
|
|
573
367
|
---
|
|
574
368
|
|
|
575
|
-
##
|
|
576
|
-
|
|
577
|
-
- Paul Preibisch (@paulpreibisch)
|
|
578
|
-
- Claude AI (code generation assistant)
|
|
579
|
-
|
|
580
|
-
---
|
|
581
|
-
|
|
582
|
-
## ๐ Links
|
|
369
|
+
## ๐ References
|
|
583
370
|
|
|
584
|
-
-
|
|
585
|
-
-
|
|
586
|
-
- **GitHub Release:** https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.7.2
|
|
587
|
-
- **Issue #38:** https://github.com/paulpreibisch/AgentVibes/issues/38
|
|
588
|
-
- **Issue #39:** https://github.com/paulpreibisch/AgentVibes/issues/39
|
|
371
|
+
- GitHub Issue #44: https://github.com/paulpreibisch/AgentVibes/issues/44
|
|
372
|
+
- Sonar Quality Gates: Code quality and best practices analysis
|
|
589
373
|
|
|
590
374
|
---
|
|
591
375
|
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
---
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
# Release v2.7.0 - Party Mode Voice Improvements
|
|
376
|
+
# Release v2.12.0 - .agentvibes/ Directory Migration
|
|
598
377
|
|
|
599
|
-
**Release Date:** 2025-11-
|
|
600
|
-
**Type:** Minor Release (
|
|
378
|
+
**Release Date:** 2025-11-20
|
|
379
|
+
**Type:** Minor Release (Breaking Change - Automatic Migration)
|
|
601
380
|
|
|
602
381
|
## ๐ฏ AI Summary
|
|
603
382
|
|
|
604
|
-
AgentVibes v2.
|
|
383
|
+
AgentVibes v2.12.0 introduces a comprehensive directory reorganization, migrating all AgentVibes-specific configuration from `.claude/config/` and `.claude/plugins/` to a dedicated `.agentvibes/` directory. This eliminates namespace confusion with Claude Code's official directories and provides a clear, predictable location for all AgentVibes state. The migration is fully automatic during upgradeโusers simply run `npx agentvibes@latest update` and their configuration is seamlessly moved. This release also includes extensive BMAD testing improvements with the new `npx test-bmad-pr` command and comprehensive Piper voice installation enhancements.
|
|
605
384
|
|
|
606
385
|
**Key Highlights:**
|
|
607
|
-
-
|
|
608
|
-
-
|
|
609
|
-
-
|
|
610
|
-
-
|
|
611
|
-
-
|
|
612
|
-
|
|
613
|
-
---
|
|
614
|
-
|
|
615
|
-
## โจ New Features
|
|
616
|
-
|
|
617
|
-
### TTS Queue System for Party Mode
|
|
618
|
-
|
|
619
|
-
**Non-Blocking Sequential Playback** (commit: b4c7dd71)
|
|
620
|
-
- New `tts-queue.sh` and `tts-queue-worker.sh` background queue system
|
|
621
|
-
- Agents queue TTS requests and return immediately (non-blocking)
|
|
622
|
-
- Queue worker plays audio sequentially in the background
|
|
623
|
-
- Claude Code continues at full speed while voices play in order
|
|
624
|
-
- Base64 encoding handles special characters safely (apostrophes, quotes, etc.)
|
|
625
|
-
- Auto-starting worker with 5-second idle timeout
|
|
626
|
-
- Prevents audio overlap in multi-agent party mode discussions
|
|
627
|
-
|
|
628
|
-
**Benefits:**
|
|
629
|
-
```
|
|
630
|
-
Before: Agent 1 text โ [WAIT 3s] โ Agent 2 text โ [WAIT 3s] โ Agent 3 text
|
|
631
|
-
After: Agent 1, 2, 3 text (instant) โ [Audio plays sequentially in background]
|
|
632
|
-
```
|
|
633
|
-
|
|
634
|
-
### Natural Conversation Flow
|
|
635
|
-
|
|
636
|
-
**2-Second Pause Between Speakers** (commit: b4c7dd71)
|
|
637
|
-
- Automatic pause added after each agent finishes speaking
|
|
638
|
-
- Gives users time to process what was said before next agent speaks
|
|
639
|
-
- Creates natural conversation rhythm in party mode
|
|
640
|
-
- Implemented in queue worker for consistent timing
|
|
641
|
-
|
|
642
|
-
### Customizable Speaker Introductions
|
|
643
|
-
|
|
644
|
-
**Agent Identification System** (commit: b4c7dd71)
|
|
645
|
-
- New "Intro" column in voice mapping table
|
|
646
|
-
- Default introductions for all 10 BMAD agents:
|
|
647
|
-
- "John, Product Manager here"
|
|
648
|
-
- "Mary, Business Analyst here"
|
|
649
|
-
- "Winston, Architect here"
|
|
650
|
-
- And 7 more specialized intros
|
|
651
|
-
- Intro text automatically prepended before dialogue
|
|
652
|
-
- Fully customizable via markdown table
|
|
653
|
-
- Leave blank to disable intro for specific agents
|
|
654
|
-
- New `get-intro` command in `bmad-voice-manager.sh`
|
|
655
|
-
|
|
656
|
-
---
|
|
657
|
-
|
|
658
|
-
## ๐ง Configuration Improvements
|
|
659
|
-
|
|
660
|
-
### Official Config Directory Migration
|
|
661
|
-
|
|
662
|
-
**Moved to .claude/config/** (commit: b4c7dd71)
|
|
663
|
-
- Migrated `bmad-voices.md` from `.claude/plugins/` to `.claude/config/`
|
|
664
|
-
- Moved `bmad-voices-enabled.flag` to config directory
|
|
665
|
-
- Updated all references in `bmad-voice-manager.sh`
|
|
666
|
-
- Aligns with Claude Code's official directory structure
|
|
667
|
-
- Avoids potential conflicts with future plugin system
|
|
668
|
-
|
|
669
|
-
**Why This Matters:**
|
|
670
|
-
- `.claude/config/` is the official location for configuration files
|
|
671
|
-
- `.claude/plugins/` was never an official Claude Code directory
|
|
672
|
-
- Better organization alongside `agentvibes.json`
|
|
673
|
-
- Future-proof against official plugin system conflicts
|
|
674
|
-
|
|
675
|
-
---
|
|
676
|
-
|
|
677
|
-
## ๐ Bug Fixes
|
|
678
|
-
|
|
679
|
-
### Text Escaping Issues
|
|
680
|
-
|
|
681
|
-
**Backslash Escaping Fix** (commit: b4c7dd71)
|
|
682
|
-
- Fixed: TTS would speak "backslash exclamation" when text contained `\!`
|
|
683
|
-
- Solution: Added defensive stripping in `play-tts.sh` lines 49-52
|
|
684
|
-
- Removes `\!` and `\$` escape sequences before TTS
|
|
685
|
-
- Clean speech output without unwanted "backslash" words
|
|
686
|
-
- Also applied to `bmad-speak.sh` for BMAD agent dialogue
|
|
687
|
-
|
|
688
|
-
### Voice Mapping Column Numbers
|
|
689
|
-
|
|
690
|
-
**AWK Column Parsing** (commit: b4c7dd71)
|
|
691
|
-
- Fixed: Voice lookups after adding Intro column
|
|
692
|
-
- AWK pipe-delimited parsing has empty $1, shifted all columns
|
|
693
|
-
- Updated all column references in `bmad-voice-manager.sh`:
|
|
694
|
-
- Voice columns: 5 (ElevenLabs), 6 (Piper)
|
|
695
|
-
- Intro column: 4
|
|
696
|
-
- Personality column: 7
|
|
697
|
-
- Voice selection now works correctly with new table structure
|
|
698
|
-
|
|
699
|
-
---
|
|
700
|
-
|
|
701
|
-
## ๐ Documentation
|
|
702
|
-
|
|
703
|
-
### TTS Queue Architecture
|
|
704
|
-
|
|
705
|
-
**New Documentation** (commit: b4c7dd71)
|
|
706
|
-
- Added comprehensive `README-TTS-QUEUE.md` (135 lines)
|
|
707
|
-
- Architecture diagrams and flow explanations
|
|
708
|
-
- Queue file format and worker lifecycle details
|
|
709
|
-
- Troubleshooting guide for common issues
|
|
710
|
-
- Performance benefits comparison (before/after)
|
|
711
|
-
- Thread safety and auto-restart behavior
|
|
712
|
-
|
|
713
|
-
### Voice Configuration Guide
|
|
714
|
-
|
|
715
|
-
**Updated Table Format** (commit: b4c7dd71)
|
|
716
|
-
- Documented new 6-column format with Intro field
|
|
717
|
-
- Clear instructions for editing introductions
|
|
718
|
-
- Examples of customizing agent identification
|
|
719
|
-
- Explanation of leaving Intro blank to disable
|
|
720
|
-
|
|
721
|
-
---
|
|
722
|
-
|
|
723
|
-
## ๐ง Technical Details
|
|
724
|
-
|
|
725
|
-
### Files Added
|
|
726
|
-
- `.claude/hooks/tts-queue.sh` (105 lines) - Queue manager for TTS requests
|
|
727
|
-
- `.claude/hooks/tts-queue-worker.sh` (68 lines) - Background sequential audio player
|
|
728
|
-
- `.claude/hooks/README-TTS-QUEUE.md` (135 lines) - Queue system documentation
|
|
729
|
-
- `.claude/config/bmad-voices.md` (moved from plugins)
|
|
730
|
-
- `.claude/config/bmad-voices-enabled.flag` (moved from plugins)
|
|
731
|
-
|
|
732
|
-
### Files Modified
|
|
733
|
-
- `.claude/hooks/bmad-speak.sh` - Display name mapping, intro support, queue integration
|
|
734
|
-
- `.claude/hooks/bmad-voice-manager.sh` - Config path update, intro functions, column fixes
|
|
735
|
-
- `.claude/hooks/play-tts.sh` - Backslash escaping fix
|
|
736
|
-
|
|
737
|
-
### Files Removed
|
|
738
|
-
- `.claude/plugins/bmad-voices.md` (moved to config)
|
|
739
|
-
|
|
740
|
-
### Queue System Architecture
|
|
741
|
-
|
|
742
|
-
**Queue File Format** (Base64 encoded):
|
|
743
|
-
```bash
|
|
744
|
-
TEXT_B64=<base64-encoded-text>
|
|
745
|
-
VOICE_B64=<base64-encoded-voice-name>
|
|
746
|
-
```
|
|
747
|
-
|
|
748
|
-
**Worker Lifecycle:**
|
|
749
|
-
1. Auto-starts when first item added to empty queue
|
|
750
|
-
2. Processes oldest items first (timestamp-sorted)
|
|
751
|
-
3. Blocks during audio playback (lock mechanism)
|
|
752
|
-
4. Adds 2-second pause after each item
|
|
753
|
-
5. Auto-exits after 5 seconds idle
|
|
754
|
-
|
|
755
|
-
**Thread Safety:**
|
|
756
|
-
- Queue items use nanosecond timestamps for uniqueness
|
|
757
|
-
- Audio lock file prevents simultaneous playback
|
|
758
|
-
- Worker PID tracking prevents multiple workers
|
|
759
|
-
|
|
760
|
-
---
|
|
761
|
-
|
|
762
|
-
## ๐ Stats
|
|
763
|
-
|
|
764
|
-
- **Commits:** 1
|
|
765
|
-
- **Files Changed:** 8
|
|
766
|
-
- **Lines Added:** 420
|
|
767
|
-
- **Lines Removed:** 50
|
|
768
|
-
- **New Scripts:** 2 (queue manager + worker)
|
|
769
|
-
- **Documentation:** 1 comprehensive guide
|
|
386
|
+
- ๐ **Dedicated .agentvibes/ Directory** - Clear namespace separation from Claude Code
|
|
387
|
+
- ๐ **Automatic Migration** - Seamless upgrade from .claude/config/ and .claude/plugins/
|
|
388
|
+
- โ
**100% Backward Compatible** - No manual intervention required
|
|
389
|
+
- ๐งช **32 Passing Tests** - Comprehensive test suite validates all migration scenarios
|
|
390
|
+
- ๐ญ **BMAD Testing Made Easy** - New `npx test-bmad-pr` command for one-line testing
|
|
391
|
+
- ๐ค **Improved Voice Installation** - Better Piper voice detection and status display
|
|
770
392
|
|
|
771
393
|
---
|
|
772
394
|
|
|
773
|
-
## ๐
|
|
774
|
-
|
|
775
|
-
### From v2.6.0
|
|
395
|
+
## ๐ Major Features
|
|
776
396
|
|
|
777
|
-
|
|
397
|
+
### Dedicated .agentvibes/ Directory Structure
|
|
778
398
|
|
|
779
|
-
|
|
399
|
+
**Complete namespace reorganization** (commits: ab293d05, 04f2f97d, 99134216)
|
|
780
400
|
|
|
781
|
-
|
|
782
|
-
# Update AgentVibes
|
|
783
|
-
npx agentvibes update
|
|
401
|
+
The `.agentvibes/` directory replaces scattered configuration across `.claude/config/` and `.claude/plugins/`:
|
|
784
402
|
|
|
785
|
-
# Party mode will automatically use the queue system
|
|
786
|
-
# Voice introductions work immediately with defaults
|
|
787
|
-
# Config files automatically migrated to .claude/config/
|
|
788
403
|
```
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
404
|
+
.agentvibes/
|
|
405
|
+
โโโ bmad/ # BMAD integration
|
|
406
|
+
โ โโโ bmad-voices.md # Agent-to-voice mappings
|
|
407
|
+
โ โโโ bmad-voices-enabled.flag
|
|
408
|
+
โ โโโ bmad-party-mode-disabled.flag
|
|
409
|
+
โ โโโ .bmad-previous-settings
|
|
410
|
+
โโโ config/ # AgentVibes configuration
|
|
411
|
+
โโโ agentvibes.json # Pretext configuration
|
|
412
|
+
โโโ personality-voice-defaults.json
|
|
413
|
+
โโโ README-personality-defaults.md
|
|
798
414
|
```
|
|
799
415
|
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
## ๐ก Usage Examples
|
|
805
|
-
|
|
806
|
-
### Queue Status Commands
|
|
807
|
-
|
|
808
|
-
```bash
|
|
809
|
-
# Check queue status
|
|
810
|
-
bash .claude/hooks/tts-queue.sh status
|
|
811
|
-
|
|
812
|
-
# Clear all pending TTS (emergency stop)
|
|
813
|
-
bash .claude/hooks/tts-queue.sh clear
|
|
814
|
-
```
|
|
416
|
+
**Migration Paths:**
|
|
417
|
+
- `.claude/config/agentvibes.json` โ `.agentvibes/config/agentvibes.json`
|
|
418
|
+
- `.claude/plugins/bmad-voices-enabled.flag` โ `.agentvibes/bmad/bmad-voices-enabled.flag`
|
|
419
|
+
- `.claude/config/bmad-voices.md` โ `.agentvibes/bmad/bmad-voices.md`
|
|
815
420
|
|
|
816
|
-
|
|
421
|
+
**Benefits:**
|
|
422
|
+
- โ
Clear ownership - `.agentvibes/` is obviously AgentVibes-managed
|
|
423
|
+
- โ
No collision risk - Claude Code may add official plugins in the future
|
|
424
|
+
- โ
Easier troubleshooting - All state in one predictable location
|
|
425
|
+
- โ
Better organization - Separate BMAD integration from core config
|
|
817
426
|
|
|
818
|
-
|
|
427
|
+
### Automatic Migration System
|
|
819
428
|
|
|
820
|
-
**
|
|
821
|
-
- All voices spoke simultaneously (overlapping audio)
|
|
822
|
-
- No natural pauses between speakers
|
|
823
|
-
- No identification of which agent is speaking
|
|
429
|
+
**Seamless upgrade experience** (commit: ab293d05)
|
|
824
430
|
|
|
825
|
-
**
|
|
826
|
-
-
|
|
827
|
-
-
|
|
828
|
-
-
|
|
829
|
-
-
|
|
431
|
+
- **Detection:** Installer automatically detects old configuration on startup
|
|
432
|
+
- **Execution:** Runs `.claude/hooks/migrate-to-agentvibes.sh` automatically
|
|
433
|
+
- **Preservation:** All settings, voice mappings, and flags preserved
|
|
434
|
+
- **Cleanup:** Removes empty `.claude/plugins/` directory after migration
|
|
435
|
+
- **Graceful Fallback:** Manual migration option if auto-migration fails
|
|
830
436
|
|
|
831
|
-
|
|
437
|
+
**Migration Script Features:**
|
|
438
|
+
- Color-coded progress output
|
|
439
|
+
- File-by-file migration reporting
|
|
440
|
+
- Duplicate detection and handling
|
|
441
|
+
- Preserves `.claude/config/` for runtime state files (like `tts-speech-rate.txt`)
|
|
832
442
|
|
|
833
|
-
|
|
443
|
+
### Comprehensive Test Suite
|
|
834
444
|
|
|
835
|
-
|
|
836
|
-
- Claude AI (code generation assistant)
|
|
445
|
+
**32 passing tests across 6 scenarios** (commit: ab293d05)
|
|
837
446
|
|
|
838
|
-
|
|
447
|
+
Created `test-migration.sh` with full coverage:
|
|
839
448
|
|
|
840
|
-
|
|
449
|
+
1. **Fresh Install** (6 assertions)
|
|
450
|
+
- Verifies `.agentvibes/` created directly
|
|
451
|
+
- Ensures old directories NOT created
|
|
841
452
|
|
|
842
|
-
|
|
843
|
-
-
|
|
844
|
-
-
|
|
453
|
+
2. **Upgrade from v2.9.x** (9 assertions)
|
|
454
|
+
- Auto-migration of all config files
|
|
455
|
+
- Cleanup of old locations
|
|
456
|
+
- Value preservation
|
|
845
457
|
|
|
846
|
-
|
|
458
|
+
3. **Manual Migration** (4 assertions)
|
|
459
|
+
- Script execution
|
|
460
|
+
- File movement
|
|
461
|
+
- Old location cleanup
|
|
847
462
|
|
|
848
|
-
**
|
|
463
|
+
4. **BMAD Integration** (5 assertions)
|
|
464
|
+
- Voice mappings in new location
|
|
465
|
+
- Hook scripts read from new paths
|
|
466
|
+
- Party mode functionality
|
|
849
467
|
|
|
850
|
-
|
|
468
|
+
5. **Pretext Configuration** (3 assertions)
|
|
469
|
+
- Config in new location
|
|
470
|
+
- Scripts reference new paths
|
|
851
471
|
|
|
472
|
+
6. **No Old Config** (4 assertions)
|
|
473
|
+
- No errors when nothing to migrate
|
|
474
|
+
- Idempotent behavior
|