Sandbox Profile Enforcement
May 25, 2026 ยท View on GitHub
Status: implemented for
psionic-sandboxprofile-bound local execution and refusal receipts.
psionic-sandbox executes bounded jobs only through a declared
ProviderSandboxProfile. The profile is the authority for execution class,
network policy, filesystem policy, timeout limit, artifact policy, and secret
policy.
Enforcement
execute_sandbox_job rejects a request before runtime start when:
- the requested execution class does not match the profile;
- the requested timeout exceeds the profile timeout limit;
- requested CPU, memory, or disk limits exceed the profile;
- requested network policy differs from the declared profile policy;
- requested filesystem policy differs from the declared profile policy;
- the profile forbids injected environment or secret material;
- expected output paths escape the workspace.
Policy refusals return ProviderSandboxExecutionReceipt with
final_state = rejected and termination_reason = policy_rejected.
Receipt Evidence
Every execution receipt now carries both the declared profile boundary and the request boundary:
profile_idprofile_digestdeclared_network_policyrequested_network_policydeclared_filesystem_policyrequested_filesystem_policydeclared_timeout_limit_srequested_timeout_sartifact_output_policysecret_policy
This lets schedulers and settlement layers verify that a job ran under the declared sandbox profile or was refused before it could escape that profile.
Boundary
Psionic owns runtime profile enforcement and execution evidence. Higher-level assignment admission, workroom policy, user acceptance, and settlement remain outside this repo.