2987 serial CI caught what the batch runs obscured: the repo's pipefail-early-exit static gate flags tmux-capture-pane piped into grep -qF (early-exiting consumer = SIGPIPE hazard under pipefail). A3/A4 assertion arms rewritten: capture the pane to a variable (failure-tolerant), then full-consumption grep -F >/dev/null (no -q). Gate green locally (node --test scripts/pipefail-early-exit.test.mjs fail 0); full suite parity with clean-next baseline (only the 4 node-25 localStorage web host artifacts fail, identical set).