Repository navigation
Closed
Labels
Next improvementCapabilities, composition, evidence and usability after the reviewed-PR MVP.Capabilities, composition, evidence and usability after the reviewed-PR MVP.enhancementNew feature or requestNew feature or request
Description
Second slice of #43: a coding run blocked only by the sandbox goes on to the Lab's checks instead of stopping the Molecule.
Problem
When a sandboxed harness finishes its edits but its own verification is denied by the sandbox (a cache it can't write, ps, a local socket), it can only report blocked. The Molecule then stops before the Lab's independent checks, which run outside the harness sandbox and would usually pass. --continuation checks-only is refused too, because it needs a completed coding outcome. The operator has to retire the Molecule and run everything again. Seen with Codex on forgecell-trial Issue #3 (mol-3-9fd6dbd16593acd6266fa447).
Decisions
- New coding outcome
environment-blocked. It is added to the coding outcome schema next tocompleted,blocked,scope-changeandno-change. A harness reports it only when the in-scope edits are complete and the only thing that failed was its own verification, because the sandbox denied a resource outside the workspace.reasonmust name the denied resource and operation, for examplego test: open ~/Library/Caches/go-build/...: operation not permitted.pathsmust be empty. - The coding instruction says when to use it, in the calibrated tone of the existing rules. Use
environment-blockedwhen the edits are done and verification was denied only by the sandbox. Useblockedwhen the work itself can't be finished. Never retry outside the sandbox or ask for wider permissions. - The Lab treats it like
completedfor one thing only: going on to independent checks. The checks run, and the gate and review run as for a completed outcome. The ledger, the gate summary and the delivery PR body mark the attempt asenvironment-blockedand quote the denial, so a reviewer sees that the harness didn't verify its own work. Nothing else treats it as success: no automatic retry, and no change to the scope checks. --continuation checks-onlyaccepts it as it acceptscompleted.- Protocol bump. The outcome schema and the coding instruction are part of the adapter contract, so bump
AdapterProtocolVersionby one from whatever main has when this is planned, and pin the new digest. Earlier pins keep their values. - Out of scope: detecting denials automatically from harness output. The harness declares it, and the Lab's checks are the real verification.
Acceptance
DecodeCodingOutcomeacceptsenvironment-blockedwith a non-empty reason and empty paths, and rejects it with paths.- A Molecule whose coding attempt reports
environment-blockedgoes on to run the approved checks. When they pass, the Molecule is waiting for review, like a completed attempt, and the ledger and gate summary show the denial. blocked,unknownandscope-changebehave exactly as today.--continuation checks-onlyworks after anenvironment-blockedattempt.- The delivery PR body states that the harness's own verification was blocked by the sandbox and quotes the reason.
- The pinned contract digest moves to the new protocol version.
Metadata
Metadata
Assignees
Labels
Next improvementCapabilities, composition, evidence and usability after the reviewed-PR MVP.Capabilities, composition, evidence and usability after the reviewed-PR MVP.enhancementNew feature or requestNew feature or request
Activity
Let a coding run blocked only by the sandbox go on to the Lab's checks (
DanielNetzer commentedon Nov 8, 2026
Fixed in #405.