Skip to content

fix(agent-server): fence stale Insider voice answers - #6114

Draft
smolpaws wants to merge 2 commits into
OpenHands:feat/insider-voice-realtimefrom
smolpaws:fix/insider-stale-speech
Draft

smolpaws wants to merge 2 commits into
OpenHands:feat/insider-voice-realtimefrom
smolpaws:fix/insider-stale-speech

Conversation

@smolpaws

Copy link
Copy Markdown
Contributor

Summary

Stacked on the existing Voice draft #5180. Companion App PR: enyst/insider#4. Bead smolpaws-vstale.

  • Fence pending spoken results after newer speech.
  • Avoid speaking another saved turn's result when typed input arrives during submission or completion.
  • Keep saved answers intact; do not infer playback completion from queued speech.

No API schema, Codex pin, tool permissions, approval handling or run-admission changes. Steering is a separate follow-up.

Verification

52 relay/router tests, 1 existing live-socket voice route test, Ruff, targeted Pyright, and diff checks pass. New regressions failed before implementation. Protocol fixtures use a real subprocess, not a live provider. No microphone, login, paid calls or deployment.

Evidence and protocol limits. The pinned protocol cannot revoke queued speech or identify its input; browser local suppression remains necessary.

@smolpaws

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@smolpaws

Copy link
Copy Markdown
Contributor Author

Codex source re-review found a delivery race: newer input could arrive while appendSpeech waited for the subprocess write lock. Added a failing real-child-protocol regression, then moved the final generation check inside the lock immediately before the write. Superseded speech is not sent; saved work is unchanged. Now 53 relay/router tests pass; Ruff and targeted Pyright pass. No live provider or deployment. Transcript boundaries and the V3 browser interruption signal remain separate follow-ups.

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.

2 participants