-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
Dashboard: A2UI action-bridge capability — run canvas apps as dashboard widgets #101823
Copy link
Copy link
Open
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.Security boundary, credential, authz, sandbox, or sensitive-data risk.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.User-facing flow adds avoidable confusion or support burden without fully blocking progress.issue-rating: 🌊 off-meta tidepoolIssue quality rating does not apply to this item.Issue quality rating does not apply to this item.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.Security boundary, credential, authz, sandbox, or sensitive-data risk.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.User-facing flow adds avoidable confusion or support burden without fully blocking progress.issue-rating: 🌊 off-meta tidepoolIssue quality rating does not apply to this item.Issue quality rating does not apply to this item.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.
Type
Fields
Priority
None yet
Part of the Modular Dashboard roadmap — see the tracker #101136 (Flagship section). Builds on Wave 1 (#101093; PRs #101094 / #101097 / #101098).
Problem
There are two agent-UI threads in OpenClaw that don't yet meet: the canvas/A2UI surface (browser-reachable canvas apps — #66983, #68497) and the dashboard's sandboxed custom-widget host (#101098). Today an A2UI app can't live on a dashboard, and a dashboard widget can't speak A2UI — two different answers to "the agent renders UI".
What this adds
a2ui, and the parent bridge translates between the A2UI action protocol and the dashboard's postMessage bridge (data in, actions out — mapped onto the existinggetData/sendPrompt-class gates).How it'd be built
Protocol adapter in the trusted parent: extend
ui/src/lib/dashboard/bridge.tswith an A2UI translation layer (new inbound/outbound message mappings), gated by a manifest capability inextensions/dashboard/src/schema.ts/manifest.ts, honoring every existing sandbox invariant (opaque origin, identity filter, no direct gateway reach — actions route through the same capability gates). First step is a protocol read of the A2UI action bridge as shipped for canvas (#68497's WebSocket fallback shape) to pin the exact message set; the issue should be implemented against that, not a guess.References
Flagship — ecosystem convergence. Larger; sequenced after the protocol read.