Repository navigation
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1435.
Result
An explicitly requested voice send finishes for its original session even if the operator navigates away while transcription or delivery is pending. The voice resolver fetches current session activity and permission settings when transcription finishes, resumes inactive targets before delivery, and avoids reusing render-time activity. Background completion respects the operator's current page.
Standard and realtime sends preserve source and destination follow-up drafts on success and failure, including new text identical to the submitted draft. Session-scoped edit revisions distinguish a fresh follow-up from an unchanged persisted baseline; resumed transfers sample live composer text when persistence completes. Failed delivery restores the retryable transcript without reviving intentionally deleted text.
Realtime finalization owns the already-locked ElevenLabs Scribe client connection until a committed transcript, bounded fallback, or error. Ordinary recording cancellation still closes it. The current upstream composer layout retains both the large Stop control and the compact voice Send path, alongside existing rich-input flushing, attachments, scheduling, and delivery-mode guards.
Voice sends carry a client
localId, like ordinary sends. Without one, shared Codex assigned the turn a randomclientUserMessageIdand echoed the user message back under it; the hub could not dedupe the echo, so every voice message appeared twice in Codex sessions.The direct-send callback also refreshes when empty attachment hydration completes, so its visible eligibility and the invoked recording action remain consistent.
Validation — 2026-10-18
f13a1aaea. Root typecheck and the complete Web suite passed: 3,439 tests.sendVoiceMessageregression coverage asserts a distinctlocal-*id per send; dictation tests now require a localId instead ofnull. Production evidence before the fix: each dictated Codex message was stored as awebapprow withlocalId: nullfollowed by an identicalcliecho.Validation — 2026-10-14
5847b034einto the existing branch while retaining its previous head as an ancestor.Live transcription-provider finalization remains unverified.
AI disclosure: Codex assisted with integration, regression tests, and verification.