You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
isFixRequest in .github/scripts/pr-unblock/address-feedback.mjs decides whether a trusted human's comment turns a reviewer-bot thread into direction for the push-holding address-feedback lane. A request can be hidden so it doesn't show in the rendered comment:
The fence check /^ {0,3}(```|~~~)/ flips fenced on either marker, so a ~~~ fence that contains a ``` line ends up "unfenced" inside it. A request line inside ~~~ … ``` … ~~~ matches (probe at head abdfa88).
HTML comments are not stripped, so <!-- + newline + PR-fix lane: please fix this finding + newline + --> matches. GitHub renders nothing for it.
Precondition: the comment must still come from a trusted human with write access, which today means anything posting with the owner's token. So this matters when the owner, or an agent posting as the owner, quotes attacker-supplied text.
A second gap extends #8435. In threadAuthors (:180-198), a reviewer-bot comment edited after the fix request is still accepted. The body (REST) and the edit metadata (GraphQL) are read in separate concurrent requests (:293-300), so an edit landing between them passes as unedited.
Fix
Close a fence only on the same character with at least the opening length (CommonMark), and strip <!-- … --> spans before matching. Add stay-quiet tests for both bypasses. They must fail before the fix (hook-precision convention).
Reject the thread when any non-human comment's lastEditedAt is later than the first fix request's createdAt. Read body from the same GraphQL query as the edit metadata.
Verification
New tests in address-feedback.test.mjs fail on main and pass with the fix. Existing tests stay green.
Activity
github-actions commentedon Oct 19, 2026
Thanks for the report. Automated triage handed this issue to a maintainer.
Proposed work class: work-class: scoped
Basis: automated intake triage; a maintainer confirms or changes it.
Automated triage. A maintainer reviews it.
fix(guardrails): match the lane's fence rule and scope the scan to th…
fix(guardrails): read the whole command when the body comes from else…
fix(guardrails): widen the scan only for a body file the command writes
fix(guardrails): widen on any write when a body file is posted
fix(guardrails): exempt only the /dev sinks from the write trigger