Skip to content

docs: propose RFC 2562 self-hosted paired multi-host Driver - #2563

Open
skyzea1 wants to merge 3 commits into
trycua:mainfrom
skyzea1:docs/rfc-2562-self-hosted-paired-multi-host
Open

docs: propose RFC 2562 self-hosted paired multi-host Driver#2563
skyzea1 wants to merge 3 commits into
trycua:mainfrom
skyzea1:docs/rfc-2562-self-hosted-paired-multi-host

Conversation

@skyzea1

@skyzea1 skyzea1 commented Jul 25, 2026

Copy link
Copy Markdown

Summary

Review focus

  • Whether PairedHost should share exact generated remote envelopes with Fleet ([RFC]: Converge Cua Driver across Sandbox, Lume, Fleet, and Cua-Bench #2512), differing only by credential issuer
  • Pairing ceremony + scope model adequacy
  • Bind/auth defaults and danger flags
  • Phase A tool subset gate (screenshot/click/type first)
  • Naming (paired-agent vs alternatives)
  • Windows interactive session / macOS TCC / Linux session placement gates

Tracking

Validation

  • Follows rfcs/0000-template.md structure and rfcs/README.md lifecycle (status: review)
  • Filename rfcs/2562-*.md matches discussion issue number
  • Links related RFCs/issues; no credentials or private data
  • Maintainer review period per RFC process

Note on release metadata

Title uses docs: intentionally — RFC text only, no cua-driver code release.

skyzea1 added 2 commits July 25, 2026 10:54
Add an RFC for a PairedHost remote connection backend so controllers can
drive other physical PCs after explicit pairing, reusing the typed
CuaDriver contract (aligned with trycua#2512/trycua#2513 and RFCs 2447/2549).

Discussion: trycua#2562
@f-trycua

Copy link
Copy Markdown
Collaborator

I pushed a maintainer edit that preserves the original contributor commits and turns the security-sensitive parts of the proposal into reviewable decisions.

The revision now:

  • states the exact dependency boundary with RFC 2549: this RFC adds a paired physical-host backend and does not redefine runtime/session authorization;
  • reuses standard, bounded, unrestricted, and SessionManifest instead of creating a parallel remote-scope model;
  • makes authorization a target-enforced intersection of runtime ceiling, pairing grant, immutable connection-bound session, policy, and protected consent;
  • keeps unrestricted remote operation possible only after explicit target launch-time danger acknowledgement plus an explicit target-local pairing grant;
  • specifies a standards-based v1 ceremony: a single-use ≥128-bit QR/copy-paste payload, TLS 1.3 mutual raw-public-key authentication, ALPN, and TLS exporter channel binding; a future short typed code must use SPAKE2+;
  • makes pairing and host selection administrative operations, never model-facing MCP tools; each MCP server is pinned to one host;
  • requires a persistent target-local indicator and Stop control while attached;
  • defines revoke, reconnect, stale-handle, and unknown mutating-action behavior without claiming exactly-once execution after crashes;
  • separates Cua responsibilities from harness responsibilities and explains how Hermes/Pi/custom SDK users, Claude Code/Codex MCP users, OpenClaw node fabrics, and Fleet-style custom carriers fit;
  • adds protocol/platform spikes and substantially stronger cross-platform acceptance tests.

I intentionally left status: review. The remaining questions are product/API choices (multi-controller default, naming, indicator UX, SDK spelling, first stream carrier, and persistent-grant expiry), not missing security boundaries.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants