Repository navigation
fix(pr-verify): report an untested file-tool fence apart from an open one - #13963
Conversation
… one capture-probe.mjs reads exits 3 when no target Read came back or went unanswered but a target was never tried, so a probe session that made no Read call no longer reads as "the driver's file tools are not fenced". Any read or unanswered Read still exits 1. Check the probe in pr-verify-capture.yml and the three scrub-probe checks in upstream-apply-changelog.yml name the untested case and still fail. Refs: #9922 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review Summary: ❌ FailedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
claude-review reviewed Code review: no findingsI read every hunk in all 7 changed files. The PR now reports a probe leg that never tried a Read on a fenced path as an untested fence (exit 3) instead of an open one. The job still fails either way. What I checked
Context
|
|
claude-security-review reviewed Security review: PR #13963. No security issues foundI read every hunk of all 7 changed files. Two of them match trusted paths and got the extra scrutiny: What changed. Is the fence check still fail-closed? Yes.
Trust controls. Nothing widens. The diff doesn't touch the trusted-actor list, token scope, the kill switch, merge holds, Instruction surfaces and plugin manifests. The diff changes no standing instruction and no plugin manifest. PR context. The description contains no embedded instructions aimed at this lane. Its claim that "both cases still fail the job" matches the code. The follow-up it lists, a missing execution file being reported as a breach, is in code this PR doesn't change and fails closed, so it is not a finding here. Prior findings. None. This is the lane's first review of this PR, so it was not limited to blocking findings. critical-findings: 0 |
|
The pr-verify verifier failed head This pull request leaves the merge queue, and ci-status holds it out while it carries |
|
Record of a linkage change after a pr-verify fail. pr-verify failed head ae90043 at 16:09:41Z only because the linked issue #9922 is a bot-written lane-sweep digest with no trusted spec text. The same verdict judged the diff: "The diff itself looks sound ... pr-verify-capture.yml and the three checks in upstream-apply-changelog.yml still fail the job on both exit codes, only with different messages, so the fence check is no weaker. New tests cover both cases and could fail." I then changed the first body line from Process gap: lane-sweep digest findings, like recurring-schedule issues before #13962, have no trusted-spec path, so every PR fixing one hits this. session: automation-lanes |
No related issue: lane-sweep finding 8b25204f106f4541, listed in the bot-written digest #9922 (a digest entry, not a spec)
Summary
Lane-sweep finding 8b25204f106f4541 on #9922: when a probe leg made no Read call on any fenced path,
capture-probe.mjs readsreported every target "not tried" and exited 1, and the workflow said the file tools "were not fenced off /proc", a fence breach, when the fence was never tested. The check now reports that case separately. Both cases still fail the job.Fix
.github/scripts/pr-verify/capture-probe.mjs:readsexits 1 when any target was read or got no answer, whatever the others did. Otherwise it exits 3 when any target was never tried (all not tried, or refused mixed with not tried). Exit 3 matches whatpolicy-probe.mjsuses for an unproven run (fix(ci): frame the eval policy probe as a self-test and rerun a no-call session #13665)..github/workflows/pr-verify-capture.yml(thecapturejob; the subscription job no longer runs the probe) and the three identical checks in.github/workflows/upstream-apply-changelog.yml: exit 3 prints "made no Read call ... so its file-tool fence was not tested"; any other non-zero exit keeps the breach message. The step fails either way.run-claude-clistep, which bash cannot loop, andworkflow.test.mjspins two launcher steps.Verification
capture-probe.test.mjs,pr-verify/workflow.test.mjsandupstream-apply-changelog.test.mjs: 150 of 150 pass. On the old sources, one new test fails in each file (147 of 150).Related
Follow-ups
readsexit 1, so it is reported as a breach too (the catch branch inreads()), the same "no evidence reported as a breach" shape.session: automation-lanes
🤖 Generated with Claude Code