Skip to content

Dashboard: A2UI action-bridge capability — run canvas apps as dashboard widgets #101823

Description

@100yenadmin

Run canvas / A2UI apps as dashboard widgets: one sandboxed host, two ecosystems unified.

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

  • An A2UI action-bridge capability for the custom-widget host: a widget manifest can declare a2ui, and the parent bridge translates between the A2UI action protocol and the dashboard's postMessage bridge (data in, actions out — mapped onto the existing getData/sendPrompt-class gates).
  • Existing canvas apps become installable dashboard widgets (approval-gated like any custom widget); dashboard widgets gain a documented, protocol-level way to be driven by agents.

How it'd be built

Protocol adapter in the trusted parent: extend ui/src/lib/dashboard/bridge.ts with an A2UI translation layer (new inbound/outbound message mappings), gated by a manifest capability in extensions/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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper 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.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.impact:ux-frictionUser-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.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions