Skip to content

test: pin the shell-string guard refusals and capture the kill default gap - #931

Merged
REPPL merged 2 commits into
mainfrom
test/guard-string-reread-pins
Oct 11, 2026
Merged

REPPL merged 2 commits into
mainfrom
test/guard-string-reread-pins

Conversation

@REPPL

@REPPL REPPL commented Oct 11, 2026

Copy link
Copy Markdown
Collaborator

What

This follows #927 with the notes from its Fable review. It is stacked on #927's branch and retargets to main when #927 merges.

  • Pins the home refusal fix: read the two shapes a shell string hid from the rm guard entry #927 adds. Pairing a shell string's word on its written text also lets the home's own entry read sh -c "rm -rf ${X:-\${HOME}}/" and sh -c "rm -rf ${X:+\${HOME}}", which main allows. Nothing pinned that, so a later narrowing of the pairing could reopen it unnoticed. Both rows fail on main.
  • Pins a brace left as text. sh -c "rm -rf ${X:-\$HOME}}/" hands the string $HOME}/, a directory under the working one, and stays allowed.
  • Captures an older gap the review found. sh -c "kill ${X:-\$(pgrep make)}" is allowed, on main too, although with X unset the string's shell kills by search. The string's re-read takes spellings from a written string but never the output of a substitution it holds. The fix belongs in how a string's input is fed, so it is recorded rather than folded in here.

Refs: iss-2610110025455728
Refs: iss-2610110946486757

Assisted-by: Claude:claude-opus-5-5

REPPL added 2 commits October 11, 2026 10:46
Pairing a shell string's word on its written text also lets the home's own
entry read `sh -c "rm -rf ${X:-\${HOME}}/"` and `${X:+\${HOME}}`, which main
allows; nothing pinned that, so a later narrowing of the pairing could
reopen it silently. A brace the default leaves as text
(`${X:-\$HOME}}/`, which hands the string `$HOME}/`) stays allowed.

Refs: iss-2610110025455728

Assisted-by: Claude:claude-opus-5-5
Refs: iss-2610110946486757

Assisted-by: Claude:claude-opus-5-5
Base automatically changed from fix/guard-string-reread-gaps to main October 11, 2026 14:32
@REPPL
REPPL added this pull request to the merge queue Oct 11, 2026
Merged via the queue into main with commit 3d17142 Oct 11, 2026
14 checks passed
@REPPL
REPPL deleted the test/guard-string-reread-pins branch October 11, 2026 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant