Expand description
What a transport: process harness needs beyond what the capsule’s class gives every command,
and where the capsule manifest allows it.
A process driver’s describe().harness-needs names the host directories and hosts the harness
reaches on its own — Claude Code’s config folder, its inference host — the environment half
being required-env. Each need is granted only where the capsule manifest also allows it:
a path by capabilities.harness.paths, a host by capabilities.network.allow. A need the
manifest does not allow refuses the launch with E_CAP_021; nothing is
spawned.
What is granted is the driver’s path at the driver’s access, never the wider manifest entry,
and a granted path goes through the same host-folder checks as an operator host_paths entry
(crate::host_paths::resolve_host_paths) and never carries Execute. The resolution is
computed once at staging, set on the policy’s report, and recomputed identically by
mur run --explain-scope (read-only, exit 0 even when a need is refused).
Structs§
- Harness
Binary Info - The resolved harness binary, for the report and the enforcement derivation.
- Harness
Binary Report - The resolved harness binary and, for a
#!script, the interpreter its first line names. - Harness
EnvReport - One
required-envvariable’s row. - Harness
Grants - The resolved harness grant for one session: the report
--explain-scopeandsession_start.effective_grantscarry, the host paths to add to the harness’s enforcement, and the refusal (E-CAP-021) when any need the manifest does not allow, or a granted path resolving to a refused location, was found. - Harness
Host Report - One host need’s row.
- Harness
Path Report - One path need’s row: what the driver asked for, where it resolved, and whether it was granted.
- Harness
Report - The
harnesskey of acrate::containment::ScopeReport: the driver, the harness binary and its interpreter, and each path, host and env need with its status.nullon a capsule whose transport is notprocess.
Functions§
- render_
harness_ block - The
Process harness (<driver>)blockmur run --explain-scopeprints: the binary and its interpreter, then each path need (need → path (access), allowed by <entry>for a granted one, or its status and reason), each host need and each required env variable. Starts with a header and ends with a newline. - resolve_
harness_ grants - Resolves a session’s harness grants: the allow rule against the manifest, then the host-folder
checks for each allowed path, collecting every disallowed or refused need into one
E-CAP-021refusal. - unresolved_
report - The
harnessreport for--explain-scopewhen the driver could not be read: every list empty,unresolvednaming why.