feat(model-suit): add expressive voice harness mappings to GLM-5.2 - #2138
Conversation
4090-CLAUDE built the expressive voice pipeline (voice_cast_on_sign.py, Flute-Gateway providers, BPM encoder, Kokoro CPU fallback). The GLM-5.2 suit now has 4 voice-specific harness mappings (12 total): - voice_synthesis: short persona-shaped text for voice casting (<=200 chars) - expressive_voice_cast: CHIT-sign-triggered Phase 0 pipeline (agent.graphiti.signed.v1 → voice_cast_on_sign → Flute expressive) - prosodic_bpm_encoding: BPM/prosody CGP v0.2 packets (bpm.encoded.v1) - persona_voice_resolution: FlOO$ persona → voice character mapping Temperature tuned per task: voice_synthesis at 0.9 (expressive), prosodic at 0.4 (deterministic rhythm), persona at 0.7 (balanced). 💘 Generated with Crush Assisted-by: Crush:glm-5.2
📝 WalkthroughWalkthroughThe GLM-5.2 model suit configuration adds four voice-related harness mappings with dedicated decoding parameters, system prompts, and notes for synthesis, casting, prosody, and persona resolution. ChangesGLM-5.2 voice harnesses
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
pmoves/configs/model-suits/glm-5.2.yaml (1)
91-117: 🗄️ Data Integrity & Integration | 🔵 TrivialRun the harness-consumer smoke path, not only YAML parsing.
pmoves/tools/kong_route_seeder.py:225-291ignoresharness_mappings, so successfulyaml.safe_loaddoes not validate these entries, their prompt references, or the documented voice/event/provider paths. Run the applicable harness-resolution and voice smoke targets and record the results in PR testing.As per coding guidelines, “Before pushing, run the applicable checks documented in
docs/LOCAL_CI_CHECKS.mdand record commands and output in the PR.”🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@pmoves/configs/model-suits/glm-5.2.yaml` around lines 91 - 117, Run the applicable harness-resolution and voice smoke targets that exercise the new voice_synthesis, expressive_voice_cast, prosodic_bpm_encoding, and persona_voice_resolution mappings through the harness consumer, rather than relying on YAML parsing alone. Follow the commands in docs/LOCAL_CI_CHECKS.md and record the executed commands and results in the PR testing notes.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@pmoves/configs/model-suits/glm-5.2.yaml`:
- Around line 91-117: Run the applicable harness-resolution and voice smoke
targets that exercise the new voice_synthesis, expressive_voice_cast,
prosodic_bpm_encoding, and persona_voice_resolution mappings through the harness
consumer, rather than relying on YAML parsing alone. Follow the commands in
docs/LOCAL_CI_CHECKS.md and record the executed commands and results in the PR
testing notes.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: ab577bf3-218b-44bf-ab72-3dc3ded6d90c
📒 Files selected for processing (1)
pmoves/configs/model-suits/glm-5.2.yaml
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b0f9185882
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| temperature: 0.9 | ||
| top_p: 0.95 | ||
| max_tokens: 256 | ||
| system_prompt: directive_companion |
There was a problem hiding this comment.
Use a registered voice prompt for GLM voice mappings
When GLM-5.2 is selected for voice_synthesis, this new mapping points at directive_companion, but that prompt ID is not registered anywhere in the repo (rg directive_companion only finds these additions) and the agent-card harness schema's allowed prompt identifiers omit it (pmoves/docs/specs/agent-card-architecture-v1.md:260-263); the existing voice harnesses use conversational_narrator or conversational_emotive. In any path that resolves system_prompt IDs for harness execution or validation, this makes the newly advertised GLM voice mapping fail or lose its voice-specific prompt.
Useful? React with 👍 / 👎.
Summary
The GLM-5.2 model suit had 8 coding-focused harness mappings but zero coverage for the expressive voice pipeline that 4090-CLAUDE built. This PR adds 4 voice-specific mappings (12 total).
New Harness Mappings
voice_synthesis/v1/voice/synthesize/audio)expressive_voice_castagent.graphiti.signed.v1→voice_cast_on_sign.py→ persona resolution → Flute expressive path (OmniVoice/UltimateTTS) or Kokoro CPU-floor fallbackprosodic_bpm_encodingbpm.encoded.v1(low temp for deterministic rhythmic structure)persona_voice_resolutionvoice_persona_bridge.resolve())Voice Pipeline Reference (4090-CLAUDE's work)
Providers:
omnivoice,ultimate_tts,kokoro,vibevoice,voicebox,cloning,whisperTesting
YAML parses clean. 12 harness mappings verified.
💘 Generated with Crush
Summary by CodeRabbit