fix(ci): correct sed -Ei/--in-place boundary comment and extend shipped-list coverage - #1549
Conversation
Two non-blocking findings from the automated PR review: - The operator-terminated regression-case comment said "or quote must still be detected", which is exactly backwards for this token pair -- quotes are deliberately excluded from the boundary (that's the whole point of the narrower boundary vs. the sibling sort -V/grep -P/echo -e tokens). Fixed the wording and pointed at the "sed -Ei'' must not be flagged" test that explains why. Also corrected a stale claim in the shipped-list assertion's comment that these two tokens share the sibling tokens' boundary -- they deliberately do not. - The shipped-list assertion proved 4 of the 6 operator-terminated forms (missing the `;`-terminated pair); the isolated-token loops already covered `;`, so this was not a correctness gap, but added the two missing cases so the shipped-list check is the exhaustive real-token-file proof it's meant to be. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 27s —— View job PR Review
This PR is clean. The two changes are accurate and well-motivated. Comment accuracy (lines 402–407)The old comment said "…or quote must still be detected", which was technically backwards. Inspecting the The terminal boundary is The shipped-list assertion comment at lines 751–756 is likewise corrected: the old phrasing "widened to the same boundary … Shipped-list completeness (lines 757–770)The four pre-existing inputs exercise subshell-close ( 'sed -Ei; echo done'
'sed --in-place; echo done'cover the semicolon Count update 4 → 6 and error message update are consistent with the new input set. No issues foundNo bugs, logic errors, security concerns, or test regressions. The pass count stays at 75/75 per the PR description. Approve. |
|
Claude finished @kyle-sexton's task in 1m 9s —— View job Security Review
No security issues found. The diff is confined to
Neither change introduces user-controlled input, a new execution surface, or a change to trust boundaries. The relevant helpers ( The two new string literals contain shell metacharacters ( |
This was generated by AI during work-loop execution.
No linked issue
Summary
sed -Ei/--in-placeoperator-terminated boundary fix, closing fix(ci): shell-portability-lint's sed -Ei / --in-place tokens miss operator-terminated forms #1545) picked up twonon-blocking findings from its automated post-green review before it was merged out from under
this follow-up by a concurrent auto-merge (worker-tier
babysit-prs, gate-provenc2-mechanical)— the fix commit landed but a second, already-written commit addressing the review findings
never made it in. This PR carries that second commit forward against current
main.still be detected", which is backwards for this specific token pair: quotes are deliberately
excluded from the
sed -Ei/--in-placeboundary (unlike the siblingsort -V/grep -P/echo -etokens) — that exclusion is the entire point of fix(ci): shell-portability-lint's sed -Ei / --in-place tokens miss operator-terminated forms #1548's narrower boundary, preservingthe
sed -Ei''attached-empty-suffix deferral from ci: harden shell-portability-lint detection precision (sed -i spellings, portability-scope precision, awk operand edge case) #1513/fix(ci): harden shell-portability-lint detection precision #1534. Reworded and pointed at the"sed -Ei'' must not be flagged"test that explains why. Also corrected a stale claim in theshipped-list assertion's own comment, which likewise implied these two tokens share the sibling
tokens' (quote-inclusive) boundary.
operator-terminated forms the isolated-token loops cover (missing the
;-terminated pair forboth tokens). Not a correctness gap — the isolated-token path already exercises
;— but theshipped-list check is meant to be the exhaustive real-token-file proof, so added the two missing
cases.
Test plan
bash scripts/check-shell-portability.test.sh— 75/75 passing (unchanged pass count; thisPR only edits comments and extends one assertion's input set from 4 to 6 lines).
scripts/check-shell-portability.sh origin/mainrun directly against this branch's owndiff — clean (no unexcused GNU-only constructs in the 1 changed file).
shellcheck --rcfile=.shellcheckrc scripts/check-shell-portability.test.sh— clean.typos --config _typos.toml scripts/check-shell-portability.test.sh— clean.Related
forward) — review comment:
fix(ci): shell-portability-lint's sed -Ei / --in-place tokens miss operator-terminated forms #1548 (comment)