a73x

6a863e3d

test: the comm leg says what it pins, and what folder rule 5 pins instead

a73x   2026-08-29 00:44

Commit message
test: the comm leg says what it pins, and what folder rule 5 pins instead

bash and dash both exec a single simple `sh -c` command in place, so a
reintroduced shell line is gone from /proc before the shim can read it.
Measured: the leg passes under exactly that mutation. The comment no
longer claims the parent column would catch it.

test/e2e_04_handoff.sh
Old New
@@ -127,10 +127,11 @@ HSHIMS=$(wc -l < "$SSHIM_PIDLOG")
127 echo " (mux d endpoint on an empty box, mux d start, mux d endpoint)" 127 echo " (mux d endpoint on an empty box, mux d start, mux d endpoint)"
128 cat "$SSHIM_PIDLOG"; exit 1; } 128 cat "$SSHIM_PIDLOG"; exit 1; }
129 # Asked of /proc, not of the client: every one of those three children was 129 # Asked of /proc, not of the client: every one of those three children was
130 # `ssh` itself, forked straight off `mux` with no shell in between. The 130 # `ssh` itself, sitting directly under `mux`. What this does NOT catch is a
131 # claim is the whole point of the argv recipe — a `/bin/sh -c` line would 131 # `/bin/sh -c` line put back — bash and dash both exec a single simple
132 # put `sh` in one column or the other, and on a box whose sh exec-optimises 132 # command in place, so the shell is gone by the time /proc is read. That
133 # it is the PARENT column that keeps it honest. 133 # regression is build.zig folder rule 5's, measured there; this leg pins the
134 # shape the rule cannot see, that the argv reaches a real ssh unmangled.
134 HBADCOMM=$(grep -cv '^ssh mux$' "$SSHIM_COMMLOG" || true) 135 HBADCOMM=$(grep -cv '^ssh mux$' "$SSHIM_COMMLOG" || true)
135 [ "$HBADCOMM" -eq 0 ] || { 136 [ "$HBADCOMM" -eq 0 ] || {
136 echo "e2e FAIL: the handoff spawned something other than ssh straight off mux:" 137 echo "e2e FAIL: the handoff spawned something other than ssh straight off mux:"