Skip to content

feat(model-suit): add expressive voice harness mappings to GLM-5.2 - #2138

Merged
POWERFULMOVES merged 1 commit into
mainfrom
feat/glm52-voice-harness-mappings
Jul 16, 2026
Merged

POWERFULMOVES merged 1 commit into
mainfrom
feat/glm52-voice-harness-mappings

Conversation

@POWERFULMOVES

@POWERFULMOVES POWERFULMOVES commented Jul 16, 2026

Copy link
Copy Markdown
Owner

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

Mapping Temp Purpose
voice_synthesis 0.9 Short persona-shaped text for voice casting (<=200 chars, Flute-Gateway /v1/voice/synthesize/audio)
expressive_voice_cast 0.8 CHIT-sign-triggered Phase 0: agent.graphiti.signed.v1voice_cast_on_sign.py → persona resolution → Flute expressive path (OmniVoice/UltimateTTS) or Kokoro CPU-floor fallback
prosodic_bpm_encoding 0.4 BPM/prosody CGP v0.2 packets published to bpm.encoded.v1 (low temp for deterministic rhythmic structure)
persona_voice_resolution 0.7 FlOO$ persona → voice character mapping (voice_persona_bridge.resolve())

Voice Pipeline Reference (4090-CLAUDE's work)

CHIT sign_trail.py → agent.graphiti.signed.v1
  → voice_cast_on_sign.py (payload discriminator: glyph + agent_id)
    → voice_persona_bridge.resolve() → intent + persona_id
      → Flute-Gateway /v1/voice/synthesize/audio (expressive)
        OR Kokoro CPU fallback (standalone, independent process)
          → WAV output + optional ffmpeg atempo recovery

Providers: omnivoice, ultimate_tts, kokoro, vibevoice, voicebox, cloning, whisper

Testing

YAML parses clean. 12 harness mappings verified.

💘 Generated with Crush

Summary by CodeRabbit

  • New Features
    • Added configuration support for voice synthesis, expressive voice casting, prosodic BPM encoding, and persona voice resolution.
    • Introduced dedicated generation settings and guidance for more consistent voice routing, casting, and prosody outputs.

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
@github-actions github-actions Bot added the config pmoves/config(s)/ changes label Jul 16, 2026
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The 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.

Changes

GLM-5.2 voice harnesses

Layer / File(s) Summary
Voice harness configuration
pmoves/configs/model-suits/glm-5.2.yaml
Adds voice_synthesis, expressive_voice_cast, prosodic_bpm_encoding, and persona_voice_resolution mappings with tuned generation settings, system prompts, and processing notes.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately describes the main change: adding expressive voice harness mappings to GLM-5.2.
Description check ✅ Passed The description covers the change and testing, but it doesn't fully follow the template's bullet-list, command, and checklist details.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/glm52-voice-harness-mappings

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
pmoves/configs/model-suits/glm-5.2.yaml (1)

91-117: 🗄️ Data Integrity & Integration | 🔵 Trivial

Run the harness-consumer smoke path, not only YAML parsing.

pmoves/tools/kong_route_seeder.py:225-291 ignores harness_mappings, so successful yaml.safe_load does 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.md and 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

📥 Commits

Reviewing files that changed from the base of the PR and between e58a59a and b0f9185.

📒 Files selected for processing (1)
  • pmoves/configs/model-suits/glm-5.2.yaml

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@POWERFULMOVES
POWERFULMOVES merged commit 30b3e22 into main Jul 16, 2026
32 checks passed
@POWERFULMOVES
POWERFULMOVES deleted the feat/glm52-voice-harness-mappings branch July 16, 2026 00:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config pmoves/config(s)/ changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant