fix(voice-call): preserve per-call agent routing#77763
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 8, 2026, 1:59 AM ET / 05:59 UTC. Summary PR surface: Source +226, Tests +491, Docs +27. Total +744 across 37 files. Reproducibility: yes. Source inspection of current main shows Google Meet and Voice Call drop the initiating agent before call creation and downstream response/realtime paths resolve the agent from Voice Call config defaults. Review metrics: 3 noteworthy metrics.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Land only after redacted current-head real behavior proof demonstrates distinct per-agent Voice Call or Google Meet routing and maintainers accept the scoped Gateway runtime API. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection of current main shows Google Meet and Voice Call drop the initiating agent before call creation and downstream response/realtime paths resolve the agent from Voice Call config defaults. Is this the best way to solve the issue? Yes for code direction. Freezing the agent on call creation and deriving trusted Gateway identity from plugin runtime scope is the maintainable owner-boundary fix, but real behavior proof and maintainer acceptance of the merge risks remain. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 8cbcc41ccbb9. Label changesLabel justifications:
Evidence reviewedPR surface: Source +226, Tests +491, Docs +27. Total +744 across 37 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (2 earlier review cycles) |
c0f6a9c to
989bedb
Compare
989bedb to
ce03055
Compare
|
This pull request has been automatically marked as stale due to inactivity. |
Co-authored-by: Tran Quang <[email protected]>
ce03055 to
4d1c586
Compare
|
Land-ready maintainer pass completed and merged. What changed:
Exact proof on Blacksmith Testbox:
Hosted exact-head proof for Live Google Meet proof gap: the configured OAuth doctor reached Google and returned Landed as Thanks @quangtran88 for the report and initial implementation. |
|
Merged via squash.
|
* fix(voice-call): preserve per-call agent routing Co-authored-by: Tran Quang <[email protected]> * chore: keep release notes in PR metadata --------- Co-authored-by: Peter Steinberger <[email protected]> Co-authored-by: Peter Steinberger <[email protected]>
* fix(voice-call): preserve per-call agent routing Co-authored-by: Tran Quang <[email protected]> * chore: keep release notes in PR metadata --------- Co-authored-by: Peter Steinberger <[email protected]> Co-authored-by: Peter Steinberger <[email protected]>
What Problem This Solves
Fixes per-agent routing for Google Meet and direct Voice Call sessions. Multi-agent installations previously lost the invoking agent at tool and Gateway boundaries, so calls could speak, transcribe, or consult as the configured default agent instead of the caller's agent.
Closes #77753.
Why This Change Was Made
Agent identity is now resolved once when a call is created and frozen on its
CallRecord. Response generation, realtime instructions, realtime consults, Google Meet transports, and Voice Call actions all consume that same canonical identity.Google Meet uses a constrained trusted in-process Gateway runtime for per-agent dispatch. External callers cannot spoof
agentId; explicit remote Gateway URLs remain authoritative; ambiguous non-default-agent remote or standalone routing fails closed instead of silently falling back to the wrong agent.User Impact
Evidence
pnpm check:changed: passed, including core/extension typechecks, lint, policy guards, and import-cycle checks.pnpm build: passed, including plugin SDK exports, runtime postbuild overlays, CLI metadata, and UI packaging.Thanks @quangtran88 for the report and original implementation.