beamfall-shadow

command
v0.8.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 24, 2026 License: AGPL-3.0, AGPL-3.0-or-later Imports: 24 Imported by: 0

README

Beamfall shadow harness

Private experimental developer tooling for a bounded direct observation of an explicitly selected, separately versioned external analyzer artifact. It is NO_SUPPORT, NO_CORVINT_CORE_LAUNCH, and NO_ADMISSION_NO_EXACT_VERIFIER_NO_AUTHORITY. It is not a registry, lock, package, Core command, or supported Beamfall integration.

The caller provides one canonical beamfall-shadow-dogfood/2 manifest. Its outer closed registry row names plugin/release/version, external dogfood family, language, framework, toolchain, toolchain version, frozen-candidate family mapping, input family, artifact, and SHA-256. The manifest is not part of the frozen analyzer request. Unknown or mixed tuple fields, noncanonical manifests, symlinks/hardlinks, replacement, and digest drift fail closed. Rows without one of the frozen four-family mappings emit a bound NOT_RUN receipt and never start an artifact. The caller reads at least two explicit logical paths from --target-repo at --target-rev, constructs canonical bounded bytes, privately stages the exact selected artifact, then starts it with an empty environment, fresh empty 0700 working directory, no arguments, and a process group. The child receives only the already-verified artifact descriptor on a platform with a supported descriptor-execution primitive. Darwin has no accepted primitive for arbitrary artifacts: uchg is mutable by the same UID, so Darwin fails UNSUPPORTED_EXECUTION_AUTHORITY before candidate process start. The receipt is required at a new absolute path under a private directory and is never written to stdout. It contains only identities, digests, counts, statuses, timings, and rusage; it contains no source bodies, absolute paths, environment values, command text, or raw stderr.

Run only against a clean, reviewed, immutable candidate revision:

go run ./tools/beamfall-shadow \
  --plugin-manifest /absolute/private/plugin.json \
  --target-repo /path/to/beamfall --target-rev COMMIT \
  --input src/component.tsx --input src/component.test.tsx \
  --receipt /absolute/private-directory/receipt.json

network and repository_read_denial remain NOT_OBSERVED: the harness is not an OS security sandbox. The receipt's harness_executable_digest hashes this harness executable itself, never Corvint Core; process-group states claim GROUP_EMPTY_OBSERVED for the original group only — a descendant that leaves the group (setsid) is adopted and outside that observation. A receipt labels non-Linux containment PROCESS_GROUP_ONLY; detached descendants remain outside that proof boundary.

On Linux, the harness and wrapper both establish and immediately query PR_SET_CHILD_SUBREAPER / PR_GET_CHILD_SUBREAPER before starting the candidate-facing process group. A failed set or probe is UNSUPPORTED_EXECUTION_AUTHORITY; it starts no candidate. For a containerized observation, use Docker's init and kernel boundaries explicitly:

docker run --rm --init --network=none --read-only \
  --tmpfs /tmp:rw,exec,nosuid,nodev,size=512m \
  --mount type=bind,src=/absolute/corvint,dst=/corvint,readonly \
  --mount type=bind,src=/absolute/beamfall,dst=/beamfall,readonly \
  --mount type=bind,src=/absolute/private-receipts,dst=/receipts \
  IMAGE go run ./tools/beamfall-shadow \
  --plugin-manifest /receipts/plugin.json --target-repo /beamfall --receipt /receipts/receipt.json ...

--init is required to provide container PID-1 reaping; the in-process subreaper probe remains mandatory and is not satisfied by a caller flag or this documentation. --network=none, read-only repository mounts, and a private writable receipt mount constrain the container boundary only; they do not turn the shadow harness into a supported integration or an OS sandbox.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
fixtures
beamfall-shadow-wrapper is intentionally tiny: it gives run.sh a portable process-group signal and reaping boundary around `go run`.
beamfall-shadow-wrapper is intentionally tiny: it gives run.sh a portable process-group signal and reaping boundary around `go run`.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL