fix(conformance): report restricted Unix producer exit status - #163
Merged
Conversation
Verify child exit diagnostics on Linux and Darwin completion paths: 62 focused tests passed, 19 platform/validator skips; shell syntax and diff checks passed. The following authority commit will bind these exact bytes before full verification and publication.
Bind the signed behavior commit and exact script/workflow objects. Precommit verification: 562 normal and 418 heavy tests passed; only the expected producer-versus-harness HEAD check requires this distinct authority commit. Typecheck, lint, build, shell syntax, and independent object review passed.
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The new test suite invokes bash without skipping on Windows and uses an overly strict indexOf() assertion, which can cause avoidable cross-platform test failures and brittleness.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR improves Phase 1 conformance diagnostics on Unix by reporting a restricted producer’s non-zero exit status immediately after wait, before containment drain/cleanup can overwrite the failure signal, and updates the lock/authority metadata that pins the trusted harness bytes.
Changes:
- Emit a new stderr line with the restricted producer’s numeric exit status right after
wait. - Update harness authority revision/tree and pinned blob/SHA-256 metadata across the lock file, tests, docs, and the trusted workflow.
- Add a regression test that executes the real completion block and asserts stderr ordering and continued cleanup behavior.
File summaries
| File | Description |
|---|---|
src/unix-producer-exit-status.test.ts |
New regression test that runs the extracted supervisor completion block and asserts stderr ordering for failure/success paths. |
scripts/unix-producer-supervisor.sh |
Prints the restricted producer’s non-zero exit status immediately after wait and before containment drain. |
src/phase1-conformance-lock.test.ts |
Updates expected harness authority revision/tree and pinned file blob/SHA-256 values. |
phase1-conformance.lock.json |
Updates harness revision and harnessAuthority revision/tree plus pinned blob/SHA-256 values. |
docs/phase1-conformance.md |
Updates documented SHA-256/size metadata and documents the new Unix supervisor stderr behavior. |
.github/workflows/client-v1-conformance.yml |
Updates expected supervisor script size/SHA-256 in the trusted workflow verifier logic. |
Review details
- Files reviewed: 6/6 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Preserve current Cave timestamp diagnostics and resolve metadata conflicts. Verified 103 focused tests passed, 61 existing platform/validator skips; shell syntax and staged diff checks passed. Bind this combined behavior in the following authority commit.
Verify all 25 authority files and 10 production deltas from the signed merge revision; typecheck, lint, and diff checks passed. The combined behavior passed 103 focused tests before binding.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Report a restricted Unix producer's nonzero exit status immediately after
wait, before containment drain. Preserve the numeric status if cleanup later fails while retaining containment checks, the final failure guard, and bounded producer diagnostics. Windows already forwards child output and remains unchanged.Update the trusted script digest, documented metadata, and immutable harness authority. The authority binds signed combined behavior
4a700bce4217536b294fd2d2c58f579459685484; preserve that commit in repository history when landing. Current main's Cave timestamp diagnostics are retained.Regression tests execute the real completion block on Linux and Darwin branches. Address review by skipping this Bash-only suite on Windows and accepting a source match at index zero.
Validation on final head:
This is diagnostic improvement, not a fix for the protected run's producer failures. A subsequent SDK validator rebind is required before protected dispatch consumes the merged producer.