@@ -319,11 +319,17 @@ expect_context '^\+incremental change$' "since-last-review diff carries its body
319319# this is the assertion that catches it -- the body here is a command substitution and a
320320# ${{ }} expression, and both must survive as characters.
321321expect_context ' \$\(touch /tmp/pwned\)' " PR body interpolates as literal text, not shell"
322- # The whole default, not a prefix of it. This is the assertion that would have caught the
323- # `}}` truncation in run_step's default: the Actions expression sits after the point where the
324- # parameter expansion used to end, so its arrival proves the body reached the step intact.
325- expect_context ' are literal text here\.$' " the whole PR body reaches the context, not a prefix"
326- expect_context ' github\.token' " an Actions expression in the PR body survives as text"
322+ # The whole default, including the `}}` that the old inline form ate. `${PR_BODY-...}` ended at
323+ # the first `}` of `${{ github.token }}`, and the tail after it stayed inside the outer quotes
324+ # and was concatenated literally -- so a bare `github.token` match survived the bug, and only
325+ # the doubled brace distinguishes the fragment from the whole. Pinning it is what makes this
326+ # assertion about body integrity rather than about one substring surviving.
327+ #
328+ # The old form did also end `here.}` rather than `here.`, because the default's final `}` was
329+ # literal once the expansion had closed early, so an end-anchored match caught it too. This
330+ # spelling does not depend on that second-order effect.
331+ expect_context ' github\.token \}\} are literal text here\.$' \
332+ " the whole PR body reaches the context, not a prefix"
327333expect " $( [ -e /tmp/pwned ] && echo leaked || echo safe) " " safe" \
328334 " command substitution in the PR body did not execute"
329335
0 commit comments