Repository navigation
feat(cua): attach the managed Cua Driver to every provider session - #16528
Draft
juliusmarminge wants to merge 1 commit into
Draft
juliusmarminge wants to merge 1 commit into
juliusmarminge wants to merge 1 commit into
Conversation
juliusmarminge
added this pull request to stack #16533
October 6, 2026 17:44
Contributor
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
juliusmarminge
force-pushed
the
t3code/cua/2-providers
branch
from
October 6, 2026 19:37
81feccb to
39c4a19
Compare
This was referenced Oct 6, 2026
The session manager records the environment's running Cua Driver on each thread's MCP session, and every adapter attaches it as a stdio server named `cua-driver`: Claude, Cursor, the ACP family (Grok, Antigravity, Devin, the ACP registry), OpenCode 1.x, OpenCode 2 (per thread, like its T3 server), and Codex, whose own `cua-driver` config still wins. Pi has no MCP client, so T3's Pi extension bridges the stdio server and passes screenshots through as images. Sessions with the driver get a short <computer_use> block that keeps input in the background and asks the agent to leave the desktop as it found it. Ported from #10899 (Francesco Bonacci, Julius) and #15006 (Theo). Co-Authored-By: Francesco Bonacci <f@trycua.com> Co-Authored-By: Theo Browne <me@t3.gg> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
juliusmarminge
force-pushed
the
t3code/cua/2-providers
branch
from
October 6, 2026 20:54
39c4a19 to
79285b2
Compare
2 tasks done
kvnloo
added a commit
to kvnloo/t3code
that referenced
this pull request
Oct 12, 2026
The async child_process import permits concurrent Pi tool requests to spawn multiple clients after the driver exits. Share the pending start and initialization, reset handshake status on exit/close, and keep reconnect explicitly session-scoped. Fork-only CHECK candidate for Julius Marminge's existing pingdotgg#16528; source finding PER-1778. GPT-6 / ChatGPT under Kevin's direction; no upstream PR.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
With the driver running (previous layer), every provider now gets it as a stdio MCP server named
cua-driver:mcpServers; the query reopens when the set changesmcp_servers, unless the user's merged Codex config already definescua-driver(read once per directory withconfig/read); theirs winsmcpServersmcpServers, in both stdio and MCP-over-ACP listsmcp.add; the prompt mentions it only if the add succeededt3-codeserverSessions with the driver get a short
<computer_use>block: keep input in the background, escalate to foreground only when a background action did not land, and leave the desktop as found.#15006 skipped Codex, OpenCode 2, and Pi. #10899 only attached Codex. This covers all of them.
#15006 also ran a per-thread proxy so T3 could end Cua's session at every turn end. This stack drops it: Stop still ends the provider's turn, and Cua's own idle timeout hides the agent cursor.
Verification
<computer_use>block, and the existing Claude, Codex, Cursor, ACP, Grok, OpenCode, OpenCode 2, Pi, and session-manager suites (687 tests).list_apps, and reconnects after the driver exits.Built with Claude Opus 5.5 in T3 Code, through the Claude Code harness.
🤖 Generated with Claude Code