Skip to content

feat(live): add reviewed voice input and streaming tutor speech - #263

Merged
PouyanJay merged 11 commits into
mainfrom
feat/live-phase4-voice
Sep 14, 2026
Merged

PouyanJay merged 11 commits into
mainfrom
feat/live-phase4-voice

Conversation

@PouyanJay

@PouyanJay PouyanJay commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Adds optional voice to Live sessions and simulator practice. Learners record, review or edit the transcript in the existing composer, and send through the unchanged assessment path. Current tutor turns and validated simulator reactions stream through ElevenLabs George with interruptible playback.

Voice uses owner/source fencing, atomic durable admission, private 24-hour replay, conservative reservation limits, tenant BYOK, and measured usage. Raw microphone audio is never persisted; uncertain paid work is never automatically retried. The default-off rollout flag stays inside the existing human-gated production deployment.

Validation:

  • 3,280 Python tests, 1,811 web tests, 32 real database/Storage/API tests, and 23 Copilot runtime tests; lint, typecheck, build, schema and independent Python/test/style/UI/security reviews passed.
  • Real Chromium → Copilot → authenticated fixture API → ElevenLabs session passed through simulator interaction, reviewed dictation, assessment and goodbye: three TTS calls, one STT call; first PCM 237–269 ms and transcription 837 ms. No automatic answer or duplicate paid admission.
  • Mobile permission denial, interruption, stale sources, eight-replica admission, restart/replay and private retention variants passed. Browser CI now installs the runtime dependencies needed by the actual Copilot test.

Evaluation evidence records synthetic-input limitations, measured usage and unknown actual billed cost. Physical microphone/listening acceptance and production verification remain release checks in #262; the human deployment gate is unchanged. Existing Live reload behavior starts a new session and does not resubmit old voice work.

Refs #220, #254, #255, #256, #257, #258, #259, #260, #261, #262.

@PouyanJay
PouyanJay merged commit 152965a into main Sep 14, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant