Skip to content

Fix realtime V3 transcript reconciliation for handoffs - #46922

Merged
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/961729281f61b95fd3e0c5cc3ec72512987980b3
Sep 21, 2026
Merged

copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/961729281f61b95fd3e0c5cc3ec72512987980b3

Conversation

@copyberry

@copyberry copyberry Bot commented Sep 21, 2026 •

Copy link
Copy Markdown

Fix realtime V3 transcript reconciliation for handoffs

Why

Interleaved speaker transcripts can fragment handoff context, and delayed final transcripts can overwrite newer speech.

What changed

  • Reconcile V3 transcript deltas and finals with the latest entry for the same speaker.
  • Replace accumulated text only when the final transcript extends it, preserving newer speech when a final arrives late.
  • Start a new entry after each completed utterance, keeping repeated speech and final-only turns distinct even when empty deltas arrive.
  • Preserve live transcript notifications and legacy protocol behavior.

Testing

Add unit coverage for interleaved speakers across reconnects, either completion order, repeated utterances, final-only turns, and empty deltas. Add app-server integration coverage for expanded and delayed finals, checking live notifications and reconciled handoff context.

## Why

Interleaved speaker transcripts can fragment handoff context, and delayed final transcripts can overwrite newer speech.

## What changed

- Reconcile V3 transcript deltas and finals with the latest entry for the same speaker.
- Replace accumulated text only when the final transcript extends it, preserving newer speech when a final arrives late.
- Start a new entry after each completed utterance, keeping repeated speech and final-only turns distinct even when empty deltas arrive.
- Preserve live transcript notifications and legacy protocol behavior.

## Testing

Add unit coverage for interleaved speakers across reconnects, either completion order, repeated utterances, final-only turns, and empty deltas. Add app-server integration coverage for expanded and delayed finals, checking live notifications and reconciled handoff context.

GitOrigin-RevId: 961729281f61b95fd3e0c5cc3ec72512987980b3
@copyberry
copyberry Bot force-pushed the copyberry/codex-internal-to-codex-oss/961729281f61b95fd3e0c5cc3ec72512987980b3 branch from 80ca385 to d1e3f9d Compare September 21, 2026 02:02
@copyberry
copyberry Bot merged commit d1e3f9d into main Sep 21, 2026
1 check passed
@copyberry
copyberry Bot deleted the copyberry/codex-internal-to-codex-oss/961729281f61b95fd3e0c5cc3ec72512987980b3 branch September 21, 2026 02:02
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 21, 2026
@elfege
elfege deployed to issue-triage September 21, 2026 02:09 — with GitHub Actions Active
@elfege
elfege deployed to issue-triage September 21, 2026 02:09 — with GitHub Actions Active
@elfege
elfege deployed to issue-triage September 21, 2026 02:09 — with GitHub Actions Active
@elfege
elfege deployed to issue-triage September 21, 2026 02:09 — with GitHub Actions Active
@elfege
elfege deployed to issue-triage September 21, 2026 02:09 — with GitHub Actions Active
@elfege
elfege deployed to issue-triage September 21, 2026 02:09 — with GitHub Actions Active
@elfege
elfege deployed to issue-triage September 21, 2026 02:10 — with GitHub Actions Active
@sxcooler
sxcooler deployed to issue-triage September 21, 2026 02:25 — with GitHub Actions Active
@sxcooler
sxcooler deployed to issue-triage September 21, 2026 02:25 — with GitHub Actions Active
@sxcooler
sxcooler deployed to issue-triage September 21, 2026 02:25 — with GitHub Actions Active
@sxcooler
sxcooler deployed to issue-triage September 21, 2026 02:26 — with GitHub Actions Active

This branch was successfully deployed

1 active deployment
issue-triage — d1e3f9df Deployed Sep 21, 2026 by viajeconpuntos via Translate non-English issue #14286
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants