M-6a: Voice events bridged through API surface (no audio-graph change) #127

Open
opened 2026-05-12 19:37:24 +00:00 by KofTwentyTwo · 0 comments
KofTwentyTwo commented 2026-05-12 19:37:24 +00:00 (Migrated from github.com)

Goal

M-6a — Voice events: voiceStateChanged, audioLevelChanged, wakeWordDetected, sttTranscriptPartial/Final, ttsStarted, ttsEnded, voiceDegraded. Bridge from existing emit paths. No audio-graph change in M-6a.

Scope

  • 8 events bridged through API
  • Existing emit paths in VoiceController route to Voice+Adapter
  • No timing changes

Files

  • packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Voice+Adapter.swift
  • packages/Voice/Sources/Voice/VoiceController.swift — emit bridge

Acceptance

  • All 8 events observable via JarvisHost.events
  • No regression in existing voice paths
  • Event payload codable

Test

S-VOICE-002..004 (event surface coverage).

Parent epic

#10

Source

.planning/architecture/JARVIS-API-MIGRATION-PLAN.md §2.7 (M-6.2)

## Goal M-6a — Voice events: voiceStateChanged, audioLevelChanged, wakeWordDetected, sttTranscriptPartial/Final, ttsStarted, ttsEnded, voiceDegraded. Bridge from existing emit paths. No audio-graph change in M-6a. ## Scope - 8 events bridged through API - Existing emit paths in `VoiceController` route to `Voice+Adapter` - No timing changes ## Files - `packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Voice+Adapter.swift` - `packages/Voice/Sources/Voice/VoiceController.swift` — emit bridge ## Acceptance - [ ] All 8 events observable via JarvisHost.events - [ ] No regression in existing voice paths - [ ] Event payload codable ## Test `S-VOICE-002..004` (event surface coverage). ## Parent epic #10 ## Source `.planning/architecture/JARVIS-API-MIGRATION-PLAN.md` §2.7 (M-6.2)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/Jarvis#127