rfc#25: default, pluggable Computer Use with CUA - #45
Conversation
|
I reviewed the current head, 1. Add an embedded protected-consent and indicator adapterThe bounded existing-profile flow is incomplete against Cua 0.10.0. A bounded manifest can pre-approve the exact browser resource, but Please add a Cua upstream prerequisite for an authenticated host adapter over the inherited connection. It should bind the daemon instance, request digest, provider generation, policy hashes, execution lease, Cua session, operation, expiry, and exact browser resource. It also needs indicator activation, deactivation, Stop, and asynchronous revocation. The manifest restart and the protected provider solve separate problems. Restarting loads the new immutable exact-resource manifest. The provider activates and revokes the persistent indicator after the new daemon starts. Cua tracker: trycua/cua#2411 2. Destroy broadened authority on every run exitExact-profile approval creates a process-level immutable manifest. Calling Normal completion, failure, cancellation, timeout, node or Gateway disconnect, provider crash, local Stop, and OpenClaw session clear should invoke one idempotent release path that:
Please bind this authority to a unique execution or lease id. A durable OpenClaw chat/session id can survive several agent executions and should not own native authority. It would also help to separate provider ready from run authorized. Artifact, backend, permissions, private transport, and probes can be ready while no run owns a bounded manifest. Tools become callable only after run authorization succeeds. Interaction ladder and ownershipThe RFC should state Cua's actual verify-then-escalate ladder:
The model should select each rung using the version-matched Cua skill. The Gateway should admit or reject the exact model-selected call. It should never encode Suggested RFC wording:
Live schemas and verdict handlingThe reviewed plugin catalog should set the maximum allowed surface. The installed driver's live Please reject unsupported semantic branches rather than removing arguments silently. This also needs regression coverage for a schema-supported The model guidance and tests should preserve this result precedence:
This prevents duplicate clicks, text, submissions, and other side effects. Platform and resource gates
Cua upstream trackersWe created four focused Cua issues so this RFC and its implementation plan can depend on explicit upstream contracts:
The implementation plan should add the protected-provider work as a separate Wave 0 dependency or include it explicitly in With these changes, the responsibility split remains clear: Cua reports native evidence, the model chooses the next action, the Gateway applies host/session/resource/policy admission, and Cua executes while enforcing its own session, delivery, capture-scope, reference, and consent rules. |
|
@f-trycua Thanks — I fully addressed the Cua 0.10.0 contract review in 8f15e2d. I first verified the underlying Cua contracts at the RFC's pinned Here is exactly how each requested change is covered:
The acceptance matrix now directly tests ready-without-authorization, execution identity, protected activation/revocation, every release trigger, live-schema behavior, standalone |
|
Rewrote RFC 0025 in 7697219 around the architecture that has now landed in OpenClaw. The primary decision is to keep the built-in The rewrite also adds explicit local-Gateway, remote-Gateway, Windows companion, Linux, macOS, Peekaboo-selection, artifact, resource, protected-browser, onboarding, security, and packaged-acceptance flows. All 49 published CUA MCP tools are accounted for without making host maintenance operations public model actions. The previous native-MCP provider proposal is preserved for comparison in Validation: |
CUA sessionized authorization follow-upFollowing the latest RFC rewrite, we are refining CUA's permission model so The proposed CUA model is: A trusted host creates the authorization session and receives an action object Existing CUA callers keep their current behavior through a compatibility Each session owns its grants, browser bindings, manifest, expiry, revocation, This seems compatible with the RFC's statement that each OpenClaw execution
Knowledge of the activity-session label never grants the authorization Could you review whether the following mapping checks the boxes for OpenClaw?
There is one topology question we would especially like your review on. The If OpenClaw keeps one bounded compatibility-mode daemon per execution, it does Current CUA tracking:
The foundation and RFC are still under review, and the direct SDK session API |
|
Codex review: found issues before merge. Reviewed July 31, 2026, 12:05 AM ET / 04:05 UTC. ClawSweeper reviewWhat this changesAdds RFC 0025 and a phased plan for making CUA a selectable default Computer Use provider while retaining OpenClaw’s existing screen snapshot and node action route. Merge readinessKeep open for maintainer review. This member-authored RFC proposes a new default Computer Use provider and now needs its security-sensitive authority topology reconciled with the July 30 CUA update before acceptance. Likely related people: RomneyDa (high confidence) for the RFC direction, and f-trycua (medium confidence) for the upstream CUA contract boundary. Priority: P3 Review scores
Verification
How this fits togetherOpenClaw’s built-in Computer Use tool sends snapshots and approved actions through the Gateway to a selected desktop node. That node chooses a local provider such as CUA or Peekaboo, which performs native desktop actions and returns observations, verification, and artifacts. flowchart LR
Model[Agent model] --> Tool[Built-in Computer Use tool]
Tool --> Gateway[Gateway policy and routing]
Gateway --> Node[Selected desktop node]
Node --> Provider[CUA or Peekaboo provider]
Provider --> Desktop[Native desktop and browser]
Provider --> Result[Observations and verification]
Result --> Gateway
Gateway --> Model
Decision needed
Why: The choice determines the permanent provider boundary, authority lifecycle, compatibility posture, and security guarantees; it cannot be resolved by a mechanical documentation edit alone. Before merge
Findings
Agent review detailsSecurityNeeds attention: The RFC documents a native-action authorization boundary whose upstream topology has materially changed, so the security design needs reconciliation before acceptance. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Update the RFC and implementation plan to choose a direct SDK or private-worker CUA topology, bind one trusted CUA session to each execution lease, and retain explicit v1-node and Peekaboo compatibility before maintainers decide whether to adopt the roadmap. Do we have a high-confidence way to reproduce the issue? Not applicable: this is a design RFC, not a report of a currently failing runtime behavior. Is this the best way to solve the issue? Unclear: retaining the existing Gateway-to-node route is a focused direction, but the documented CUA authority topology predates the shipped upstream trusted-session design and should be revised before approval. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: unclear because the file could not be read completely. Codex review notes: model internal, reasoning high; reviewed against c876de6210bf. LabelsLabel justifications:
EvidenceSecurity concerns:
What I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (5 earlier review cycles)
|
|
Thanks for the review. One premise has changed since this was posted: the Cua authorization topology is now shipped. Cua Driver 0.14.1 includes:
The recommended OpenClaw mapping is now: The model should not choose Cua's permission mode, runtime, transport, native session identifier, or resource paths. The public Cua session label is only for display and lifecycle correlation. OpenClaw should use the direct SDK runtime by default, or a private worker when process and crash isolation are required. Relevant shipped work:
Two focused Cua integration items remain and are being addressed:
Could the RFC now:
That should resolve the topology blocker while keeping OpenClaw's Gateway policy as the outer authority ceiling. |
|
The Cua-side implementation discussed above is now ready for review in trycua/cua#2702, with the complete macOS, Windows, Linux, generated-binding, docs, and Nix CI matrix green. The provider-facing contract now includes:
Could the OpenClaw maintainers review whether this now satisfies the RFC's Cua provider, resource-policy, and authorization-boundary requirements? The remaining |
What Problem This Solves
OpenClaw has now landed a capability-based Computer Use route: the built-in
computertool usesscreen.snapshotand the dangerouscomputer.actnode command, macOS fulfills it with embedded Peekaboo, and the bundledcua-computerplugin provides an experimental Windows/Linux CUA fulfiller. The current CUA adapter maps only eight MCP tools to desktop-coordinate actions, so it loses most of CUA's semantic observation, background delivery, browser targeting, verification, session, recording, and skill behavior.This RFC defines how CUA becomes the default, full-featured provider without replacing the landed route or reimplementing CUA's native driver in OpenClaw.
Design Constraints
screen.snapshot+computer.actas the one Gateway-to-node Computer Use route.OpenClaw.appdirectly spawn CUA embedded mode so macOS TCC remains attributed to OpenClaw.computer.actwith versioned typed targets, semantic observations, delivery modes, verification, browser, scope, and recording actions rather than forwarding raw CUA MCP tools.Why This Change Was Made
The original RFC proposed a dedicated
computer.provider.call.v1route that projected CUA's native MCP catalog through a node-hosted provider runtime. Peter's landed work established a simpler and stronger portable boundary before that proposal could be implemented.The rewritten RFC therefore:
computer.actas the stable provider boundary and specifies an additive v2 contract;The previous native-MCP proposal and its implementation plan are preserved under
rfcs/0025/alternative-node-mcp-approach.mdandrfcs/0025/alternative-node-mcp-implementation-plan.mdfor comparison.User Impact
No runtime behavior changes with this RFC alone. If accepted and implemented, users receive CUA as the recommended Computer Use provider across supported desktop hosts, OpenClaw-owned macOS permission attribution, richer semantic and browser automation, explicit provider selection, and host-aware setup and diagnostics. Existing v1 nodes and Peekaboo remain supported.
Evidence
mainata8537805bd9, including the built-in computer tool, node-host plugin registry, macOS native fulfiller, app-owned TypeScript node worker, and bundled CUA plugin.mainatb8a0f32a06c, the published 0.10 49-tool MCP reference, canonical skill, embedded process model, browser/background contract, permission policy, and generated 14-tool portable manifest.git diff --check, and byte-for-byte preservation of the previous RFC/plan apart from their explanatory notes and moved relative link.rfcs/0025/implementation-plan.md.AI-assisted: the architecture and source contracts were researched and the RFC was drafted with Codex; the resulting proposal and tradeoffs were reviewed directly.