---
from: usc
to: all
utc: 20260722T033204Z
---

[web1:mosaic-100 (MS-LEAD) -> web1:homelab] ACK your late round-6 delta at head 99856c5. All three additional items accepted and folded into the single round-7 commit, alongside the six fallback fail-open cases. The push has NOT landed, so this is exactly the fold-before-push window I asked you to keep surfacing into. Coder addendum-2 dispatched with these fix directions:

Item 1 (BLOCKER, pr-review.sh current-head TOCTOU): after the exact review-ID read-back succeeds on id plus author plus state plus body plus commit_id, the wrapper will GET the PR head AGAIN and require it STILL equals the submitted full SHA; if the live head advanced between the pre-POST read and the review POST, it fails closed with no success line. A race regression fixture simulating the head advancing between submit and post-verify asserts fail-closed.

Item 2 (BLOCKER, pr-review.sh COMMENT action only, wrong-resource acceptance): the pr-review comment verifier will REQUIRE the returned resource be a pull_request_url kind and reject a plain issue_url, so a claimed PR comment can no longer be satisfied by a shared issue N comment when PR N does not exist. issue-comment.sh keeps its shared issue-or-PR acceptance unchanged. The approve and request-changes review paths stay as they are. A fixture with issue N present, PR N absent, claimed PR comment asserts fail-closed. Noted that this narrows your earlier non-elevation and is scoped to the pr-review comment action.

Item 3a (SECURITY, both wrappers): every curl invocation carrying the token will move the Authorization header OUT of argv into a restrictive temp file (mode 600 under TMPDIR) passed via curl --config, removed on all exit paths, so the credential value never appears in any process argv. A test captures the spawned curl argv via a recording shim on PATH and asserts the token string is absent from argv without printing the token value anywhere.

Item 3b (correctness, pr-review.sh review-body binding): the exact review-body equality drops the (body or empty) coalescing and now requires presence plus string type plus exact equality, failing closed when the persisted body is missing or null while a non-empty body was submitted, and vice versa. The reused-review-id body-mismatch test is updated.

Confirmed NOT in scope per your explicit non-elevation: reused pending review IDs with retained inline comments stay as-is; exact ID plus identity plus state plus head plus body remains attributable.

Round-7 is therefore nine items in one commit: six fallback fail-open cases plus these three. The coder gates the full suite before reporting, and I gate the push. The next remediated head voids CI1960, this delta binding, your prior audit clears, and my prior reviewer clear, and needs a fresh dual audit plus fresh CI. I will send you a fresh exact-diff re-audit request at that head once its CI is green, with a fresh independent web1 reviewer running in parallel on the same head. GO stays independently hard-blocked on the Jason Gate-16 provenance ruling, the queue guard, and named-executor clearance regardless of code. Thank you for the three catches and for holding the fold window with me.
