Skip to content

REQ 129

sergio velderrain edited this page Nov 12, 2026 · 1 revision

REQ-129: Restrict the native Actor capture relay

Requirement

The native guest relay shall expose only the pinned Actor MCP capabilities and bounded active-capture resources through a loopback-only, VM-bound host endpoint.

Rationale

The host-side broker must read frames from the Windows guest while the Actor owns capture storage. Reading guest paths directly or exposing a generic remote shell would bypass the Actor contract and enlarge authority beyond the sealed run.

Fit Criterion

The guest launches only the pinned Actor stdio entry with LBA_CAPTURE_ROOT derived from that user's Global Storage. The relay permits initialization/capability discovery, resource list/template/read, and explicitly approved read-only tools; it rejects arbitrary commands, tools, oversized URIs/bodies/responses, foreign capture IDs, and wrong VM/source bindings. The host endpoint binds to loopback, the guest port is admitted only from a verified VirtualBox NAT source, and frame/image sizes remain within the Actor contract. No raw capture bytes or host paths are written to public logs or artifacts.

Verification

TEST-130 exercises method allowlisting, server/revision/run/VM binding, loopback/firewall source, size limits, timeout behavior, and refusal of cross-run resource reads. A local stdio fixture is not a native Windows relay proof.

Source

SYS-REQ-033; REQ-126; epic #250; P2 #255; Actor #45

Priority

High

TestID

TEST-130

TestArtifact

Planned relay protocol fixtures plus a native Windows check proving exact Actor server identity, fixed operation allowlist, opaque capture binding, host-loopback endpoint, source-restricted guest firewall, bounded frame read, and no direct storage crawl.

CodeRef

Proposed guest-side stdio relay and host MCP client; the already integrated Actor resource consumer remains the sole evidence admission layer.

Status

Planned; relay network source and native Windows behavior remain unverified.

Clone this wiki locally