From 9582457228d67b1cd13a53f8ff0d24b1d3668dc5 Mon Sep 17 00:00:00 2001 From: ms-lead-reviewer Date: Fri, 17 Jul 2026 23:56:31 -0500 Subject: [PATCH] test(#829): regress runtime guard marker evasions --- docs/scratchpads/829-mutator-gate.md | 7 +++++++ .../src/mutator-gate/runtime_launch_guard_unittest.py | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/docs/scratchpads/829-mutator-gate.md b/docs/scratchpads/829-mutator-gate.md index e3b416f..98eedbd 100644 --- a/docs/scratchpads/829-mutator-gate.md +++ b/docs/scratchpads/829-mutator-gate.md @@ -101,3 +101,10 @@ Carried authority chain also verified/read for the locked T-B gate contract: SPE - Fresh focused suites: broker + mutator real-socket acceptance `49/49`; persistence `10/10`; launcher/gate branch suite `13/13`; permanent guard suite `7/7`; coord `19/19`. - Fresh full repository suite: `43/43` Turbo tasks; `@mosaicstack/mosaic` `72/72` files and `1,384/1,384` tests. Root typecheck `42/42`, lint `23/23`, format, and diff checks GREEN. - PR #837 remains open and unmerged. Terra CODE and Opus SECREV must both rerun from zero on the exact round-3 head before coordinator-owned merge authorization. + +## Remediation round 4 — terra CODE comment 18104 + +- Locked-good surfaces: the 14/14 launch inventory, single `launch-runtime.py` choke-point, real-socket launcher behavior, coverage, Claudex gating, and broker state machine must not change. +- Reproduced RIDER E exactly at head `1792b7934dda7eff64a207b8b0edb9c460d4164b`: a temporary production file containing `exec claude --dangerously-skip-permissions "terra-r3" # launch-runtime.py` made the guard exit 0 and report `1 gated/1 total`. +- Root cause: classification searched the unparsed physical line, and the broad gated regex treated any `launch-runtime.py` substring—including comments and inert arguments—as an invocation before the direct-launch finding was evaluated. +- Round-4 plan: add permanent RED cases for the exact comment evasion plus string-argument, echo, and unrelated-variable marker evasions; tokenize/strip comments by launcher syntax; recognize only command-position wrapper invocations with `--runtime` and the gated command separator; retain 14/14 real inventory; rerun guard coverage and all gates fresh. diff --git a/packages/mosaic/src/mutator-gate/runtime_launch_guard_unittest.py b/packages/mosaic/src/mutator-gate/runtime_launch_guard_unittest.py index 4799cce..880134d 100644 --- a/packages/mosaic/src/mutator-gate/runtime_launch_guard_unittest.py +++ b/packages/mosaic/src/mutator-gate/runtime_launch_guard_unittest.py @@ -42,6 +42,12 @@ class RuntimeLaunchGuardTest(unittest.TestCase): "dynamic-command.sh": 'LAUNCH_COMMAND=("$MOSAIC_AGENT_RUNTIME" --print)\n', "absolute-shell.sh": 'exec /usr/local/bin/claude -p prompt\n', "absolute-spawn.ts": "spawn('/opt/bin/pi', args);\n", + "terra-comment.sh": 'exec claude --dangerously-skip-permissions "terra-r3" # launch-runtime.py\n', + "python-comment.py": "subprocess.run(['claude', '-p', prompt]) # launch-runtime.py\n", + "typescript-comment.ts": "spawn('pi', args); // launch-runtime.py\n", + "marker-argument.sh": 'exec claude --dangerously-skip-permissions "launch-runtime.py"\n', + "marker-echo.sh": 'exec claude --dangerously-skip-permissions "prompt"; echo launch-runtime.py\n', + "marker-variable.sh": 'marker=launch-runtime.py; exec claude --dangerously-skip-permissions "prompt"\n', } for filename, source in cases.items(): with self.subTest(filename=filename):