Skip to content

feat(cua-driver): add private loopback envelope HTTP carrier - #3653

Merged
f-trycua merged 28 commits into
mainfrom
feat/driver-private-http-20260907
Sep 9, 2026
Merged

feat(cua-driver): add private loopback envelope HTTP carrier#3653
f-trycua merged 28 commits into
mainfrom
feat/driver-private-http-20260907

Conversation

@f-trycua

@f-trycua f-trycua commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Main-branch landing checkpoint

This PR remains the private, opt-in loopback envelope carrier after #3651. The endpoint is disabled by default, is not itself authenticated, and is not exposed as a public service. Fleet image/service wiring and publication remain separate work; no installed image is qualified by merging this code.

The assembled follow-on candidate 43a332a66d8379b4fb9330c6a96f0654cc4afea1 passes the full Linux matrix, Windows unit/compile, and contract/binding tests. The explicit trusted-launcher permission-mode correction #3664 is included in the complete accessor landing #3654, alongside lifecycle fix #3655.

The earlier progress notes below preserve their original checkpoints, not a release or rollout claim.

Scope

Private unary HTTP carrier for the typed Driver stack. Refs #2512. Stacked on #3651; receiver foundation #3650 and scoped contract #3647.

Default-disabled listener on 127.0.0.1 only, with explicit CUA_DRIVER_ENVELOPE_HTTP_PORT opt-in. This endpoint is not an authentication boundary. A later guest image/service change must forward through the existing authorized private Fleet route; no exposure or new credential scheme is added here.

Behavior

  • Unary create/exchange/cancel/close routes; generation header validated on every connection-specific request.
  • Host-created Standard session, finite lifetime, no wire-supplied permission options or manifests.
  • Strict bounded HTTP parsing via httparse (already in lockfile, now direct dependency).
  • 64 connection entries, idle reaping, 32-exchange try-admission, capacity for cancel/close.
  • 16 MiB response cap; oversize results close the session and report unknown completion.
  • Session-only close; existing daemon, MCP, computer-server, and Fleet resource lifecycle unchanged.

Validation

At carrier implementation 704add5:

  • 8 focused synthetic carrier tests pass (parser, limits, generation, raw results, close/reaping, cancellation under exchange load, oversized response).
  • cargo check -p cua-driver --locked passes.
  • Targeted formatting and git diff --check pass.

Combined with reviewed bridge eef8602 at carrier head 5e704fb: all eight focused carrier tests pass on this final combined head. Parent bridge lifecycle fixes are synchronized. CI is still running. The consuming Sandbox accessor is stacked as #3654.

Remaining gates

No live listener was launched outside synthetic tests; no installed tooling or image was changed. Exact-candidate native guest control, Fleet proxy isolation, legacy server compatibility, and cleanup are not yet proven. This is not a runnable released Fleet tutorial.

Keep draft and unmerged. Rollback is to leave the new opt-in unset; existing routes are unchanged. No merge/deploy/image-publication authority is inferred.

Latest verification

Final carrier head 122ef30 synchronizes the public Python ActionTarget export/test from #3651. The Rust carrier is unchanged from the eight-test passing 5e704fb checkpoint. Final-head CI is rerunning. Consuming Sandbox accessor: #3654. Keep draft and unmerged; private image/service wiring and real guest proof remain outstanding.

@f-trycua
f-trycua marked this pull request as ready for review September 9, 2026 02:53
@f-trycua
f-trycua requested a review from injaneity as a code owner September 9, 2026 02:53
@f-trycua
f-trycua changed the base branch from feat/driver-python-channel-20260907 to main September 9, 2026 03:08
@f-trycua
f-trycua merged commit c5898ef into main Sep 9, 2026
29 checks passed
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.

1 participant