feat(ui): render MCP Apps in dashboard widgets#111585
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 19, 2026, 11:02 PM ET / July 20, 2026, 03:02 UTC. Summary PR surface: Source +888, Tests +1225, Other +67. Total +2180 across 37 files. Reproducibility: not applicable. this is a feature PR, not a report of broken established behavior. The relevant validation path is an after-fix persisted-widget flow through the real Gateway rather than a current-main failure reproduction. Review metrics: 1 noteworthy metric.
Stored data model 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: Accept or narrow the durable-dashboard-MCP-App product direction as one feature series, land the backend prerequisite first, then rebase this UI PR and prove a persisted widget through a real Gateway with its required exact-head checks green. Do we have a high-confidence way to reproduce the issue? Not applicable: this is a feature PR, not a report of broken established behavior. The relevant validation path is an after-fix persisted-widget flow through the real Gateway rather than a current-main failure reproduction. Is this the best way to solve the issue? Unclear. The UI/provider/handler split is internally coherent, but the best permanent solution depends on maintainer acceptance of the durable MCP App dashboard contract and proof against the real backend prerequisite. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against eb3a600571fd. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +888, Tests +1225, Other +67. Total +2180 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 (1 earlier review cycle)
|
|
Closing as superseded in feature scope by #111524, merged as Fresh-main audit confirms that main already contains pinned MCP App rendering, provider dedupe, read-only Gateway enforcement, lease remint, and live resize/host-context propagation. After retargeting, this PR now duplicates the backend plus renderer work across 37 files ( The remaining renderer work is narrower and is being prepared from fresh main: near-viewport materialization to respect lease capacity, fixed board height, observer cleanup, a hard expiry watchdog, offscreen renewal behavior, and focused Chromium proof. No Gateway, protocol, storage, or chat-pinning changes belong in that follow-up. Reopen only if current main is shown to lack the merged renderer surface itself; lifecycle refinements belong in the fresh follow-up. |
Depends on #111552.
What Problem This Solves
Dashboard widgets persisted as MCP Apps cannot yet render in the Control UI, recover from expired source leases, or preserve AppBridge teardown while cells leave the board.
Why This Change Was Made
This adds the renderer/lifecycle half of dashboard MCP Apps. Near-visible cells resolve a Gateway-owned app-view lease and render it through the existing
<mcp-app-view>and sandbox; the cell alone owns visibility, proactive renewal, expiry/stale recovery, and teardown sequencing, while the provider only deduplicates identical materialization requests.The scope intentionally excludes transcript pinning, new pin contracts, channels, and alternate sandbox/bridge implementations. Pending and rejected widgets retain read-only resource rendering beneath their grant notice; the Gateway remains authoritative for every interactive capability.
User Impact
Users can view persisted MCP Apps in dashboard cells, resize them with correct host-context propagation, and retry or remove stale apps. Large boards materialize only visible or near-visible app leases instead of eagerly minting every cell.
Evidence
7ed78c78627cd8940ec9c4e72b7225061fe06684: 78 component/provider tests passed.git diff --check: passed.pnpm check:changed: pending required CI/Testbox recovery. Blacksmith leasetbx_01kxya9dzpzyr8384dsvhv21k7remained capacity-queued and was stopped; its queued Actions run was cancelled before the repository command began. Direct AWS fallback was blocked before allocation by unavailable broker access. No broad fan-out was run locally. This PR is not merge-ready until exact-head CI is green after feat(dashboard): persist MCP Apps as board widgets #111552.AI-assisted implementation and review; no agent transcript included.