Repository navigation
feat(panel): support T3 Code with a browser panel placement - #89
Merged
Merged
Conversation
Cards marked themselves data-workspace whenever the server had a panel, but only an inline panel registers mobile_open_performance_recording. A browser panel, as Claude's server uses, gave cards an Open in Mobile Dev action that asked the agent to call a tool that does not exist. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…'s Baguette foregroundSimulatorPid ran Baguette from beside the server, but Claude's package downloads Baguette into the panel runtime instead. Its check failed, and the error blamed the selected Xcode, so Logs could not follow the foreground app and Performance found no app in Claude Code and Claude Desktop. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
T3 Code renders MCP Apps in the chat but asks the user to confirm every app tool call that is not read-only, so the inline panel prompts on each frame poll and tap. Its Codex advertises the same MCP Apps support as Codex desktop, so the server cannot tell the hosts apart. MOBILE_DEV_PANEL=browser gives the Codex and shared servers the same panel as Claude's server. The opening tools carry no ui.resourceUri and return a loopback browser page instead. Codex's manifest forwards the variable. Defaults are unchanged, an unknown value logs a warning, and the package smoke checks both placements. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agents in T3 Code left the panel's link in the chat or tried a computer-use tool. Tell them to open the page with the host's own browser or preview tool, to keep the tab open, to treat a floating preview as shown, and to drive Mobile Dev's devices with its own device_* tools. The Claude skill names T3 Code's preview_open and its separate Device panel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@thiagobrez is attempting to deploy a commit to the Margelo Team on Vercel. A member of the Team first needs to authorize it. |
thiagobrez
force-pushed
the
feat/t3-code
branch
2 times, most recently
from
November 5, 2026 13:49
ff9ce76 to
b8faa96
Compare
thiagobrez
marked this pull request as ready for review
November 5, 2026 14:11
T3 Code runs the Claude Code and Codex plugins. Claude threads work as they are. Codex threads need MOBILE_DEV_PANEL=browser on T3 Code's Codex instance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
thiagobrez
force-pushed
the
feat/t3-code
branch
from
November 5, 2026 15:06
b8faa96 to
e49f77b
Compare
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
hannojg
self-requested a review
November 5, 2026 16:07
hannojg
approved these changes
Nov 5, 2026
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.
Why
T3 Code runs Claude Code and Codex and renders MCP Apps in the chat. Claude threads already open Mobile Dev's browser page in T3 Code's Browser, though Logs and Performance needed the foreground fix below. Codex threads did not work. T3 Code asks the user to confirm every app tool call that is not read-only, so the inline panel prompts on each device-list poll and on each tap. The panel raised 57 prompts in about a minute before any input. T3 Code's Codex advertises the same MCP Apps support as Codex desktop, so the server cannot tell the two hosts apart.
What changed
MOBILE_DEV_PANEL=browsergives the Codex and shared servers the browser panel that Claude's server uses. Codex's.mcp.jsonforwards the variable, and T3 Code users set it on their Codex provider. Defaults stay the same. An unknown value logs a warning.device_*tools.mobile_open_performance_recordingis not registered.Scope
device_*tools share names with Mobile Dev's. The website's install picker lists T3 Code.Tradeoffs
Blast Radius
With the variable unset, each server registers the same tools as
main. Claude's cards lose an Open in Mobile Dev action that never worked there, and Claude's server now finds the foreground app through its downloaded Baguette.Verification
337c5858c3, iOS 27 simulator. Claude Haiku 5.5 and Codex GPT-6-Astra threads opened the panel withpreview_open, docked it, and drove the test app. Claude recorded CPU and memory into an inline card. A feature pass covered input, the device picker, app tools, device settings, logs, storage, App Flow, TraceSift detection, panel context, and an Android H.264 stream.MOBILE_DEV_PANEL: the panel opens in the sidebar as before, taps reach the app, Performance and Logs follow the foreground app, and a recording card's Open in Mobile Dev opens the recording in the workspace.npm test(1238 pass, 1 opt-in skip),npm run test:package(now also checks the browser placement),npm run test:claude, andnpm run check:mcp-budget(108 tools, unchanged).tracesift init. The pass ran with T3 Code's own Device panel turned off.Media
Codex thread in T3 Code, before and after
MOBILE_DEV_PANEL=browser:Codex desktop with this branch, default placement:
Website install picker with T3 Code:
Claude thread in T3 Code with the docked panel and a CPU and memory recording card:
The test driver drove T3 Code over CDP, and each connection briefly forced light mode, so the videos leave those frames out.
Before: Codex inline panel, where the prompt returns after every Confirm:
before-codex-inline-prompts.mp4
After: Codex opens the browser panel with
preview_open, then it is docked (2× speed):after-codex-browser-panel.mp4
Claude thread: open, dock, tap in the app, and Logs:
claude-open-tap-logs.mp4
Claude thread: CPU and memory recording into an inline card (2× speed):
claude-panel-and-recording.mp4
🤖 Generated with Claude Code