replace SIGPIPE-prone producer | grep -q assertions in test-start-agent-session.sh with full-reading scalar predicates;
validate the clean pane boundary directly from the authoritative NUL-delimited tmux argv as adjacent /usr/bin/env, -i records;
add large-payload positive and missing/reordered-token negative controls;
print indexed shell-escaped argv plus record/byte counts on a real boundary failure;
document the #1098 portability contract and evidence.
Root cause
Under set -o pipefail, grep -q can match and return 0, close its pipe, and leave upstream tail/printf exiting 141. The aggregate pipeline is then nonzero and the test reports that -i was absent even though it matched. Pipeline 2269 failed and rerun 2270 passed on identical 4fa27689 bytes, confirming flakiness.
Verification
focused launcher suite: PASS on host and cached Alpine CI image;
test-fleet-units.sh: PASS;
test-enumeration guard: PASS (53 population / 36 enumerated / 18 signed exclusions; 14/14 needles);
bash -n, ShellCheck, git diff --check: PASS;
zero load-bearing early-exit pipeline candidates remain in the changed test;
delete-the-subject mutation removing production -i: RED with indexed argv and byte/record diagnostics;
independent Codex review: APPROVE after one remediation cycle;
## Summary
- replace SIGPIPE-prone `producer | grep -q` assertions in `test-start-agent-session.sh` with full-reading scalar predicates;
- validate the clean pane boundary directly from the authoritative NUL-delimited tmux argv as adjacent `/usr/bin/env`, `-i` records;
- add large-payload positive and missing/reordered-token negative controls;
- print indexed shell-escaped argv plus record/byte counts on a real boundary failure;
- document the #1098 portability contract and evidence.
## Root cause
Under `set -o pipefail`, `grep -q` can match and return 0, close its pipe, and leave upstream `tail`/`printf` exiting 141. The aggregate pipeline is then nonzero and the test reports that `-i` was absent even though it matched. Pipeline 2269 failed and rerun 2270 passed on identical `4fa27689` bytes, confirming flakiness.
## Verification
- focused launcher suite: PASS on host and cached Alpine CI image;
- `test-fleet-units.sh`: PASS;
- test-enumeration guard: PASS (53 population / 36 enumerated / 18 signed exclusions; 14/14 needles);
- `bash -n`, ShellCheck, `git diff --check`: PASS;
- zero load-bearing early-exit pipeline candidates remain in the changed test;
- delete-the-subject mutation removing production `-i`: RED with indexed argv and byte/record diagnostics;
- independent Codex review: APPROVE after one remediation cycle;
- independent security review: no findings.
Refs #1098
Durable merged-main gate follow-up: #1101
REQUEST_CHANGES — complete review of PR #1100 at asserted provider head 2c4748bd71606e25fb47ec266f399fb6876fee0c.
The code change itself passes review. Direct NUL parsing requires an exact adjacent /usr/bin/env, -i pair from the authoritative capture; missing, reversed, and non-adjacent fixtures fail with indexed record/byte diagnostics; %q is confined to the fixture's generated non-secret argv. Full-reading contains_literal preserves substring semantics and contains_line preserves the former exact-line assertions. Host and cached canonical-Alpine focused suites pass. Delete-the-production--i mutation is RED with records=78 bytes=1009, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard (53/36/18; 49 paths), and diff-check pass. The paired systemd suite hit the known pre-existing #1096 loader-marker flake once and passed on retry; this PR does not touch that surface.
[BLOCKER] PR tracking/closure contradicts issue #1098 and the new acceptance criteria. The PR body contains both Closes #1098 and Fixes #1098, so Gitea will auto-close #1098 at merge. But:
AC-FSP-03 and the task scratchpad explicitly require merged-main Woodpecker CI to be terminal green before#1098 closes; auto-close at merge makes that ordering impossible.
The provider issue is titled and scoped as the durable rung-③ merge-gate gap. Its asks include deciding whether/how post-merge main CI joins the merge gate. The issue comments explicitly state that gate gap remains unchanged. This PR fixes the flaky assertion that exposed the gap, but it does not resolve that durable gate decision.
Required resolution: remove the auto-close keywords and use a non-closing reference (for example Refs #1098), leaving #1098 open through merged-main CI and the outstanding rung-③ gate decision; alternatively, explicitly move the durable gate ask to a linked successor and align the issue/PRD/scratchpad before closing #1098. This is provider-body/tracking remediation and need not move the code head.
Provider-write preflight resolved acting_login=be-coder-06. CI snapshot (read under configured Woodpecker admin principal): pipeline 2271 is RUNNING at exact head 2c4748bd7160; no terminal result is inherited.
REQUEST_CHANGES — complete review of PR #1100 at asserted provider head `2c4748bd71606e25fb47ec266f399fb6876fee0c`.
The code change itself passes review. Direct NUL parsing requires an exact adjacent `/usr/bin/env`, `-i` pair from the authoritative capture; missing, reversed, and non-adjacent fixtures fail with indexed record/byte diagnostics; `%q` is confined to the fixture's generated non-secret argv. Full-reading `contains_literal` preserves substring semantics and `contains_line` preserves the former exact-line assertions. Host and cached canonical-Alpine focused suites pass. Delete-the-production-`-i` mutation is RED with `records=78 bytes=1009`, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard (53/36/18; 49 paths), and diff-check pass. The paired systemd suite hit the known pre-existing #1096 loader-marker flake once and passed on retry; this PR does not touch that surface.
[BLOCKER] PR tracking/closure contradicts issue #1098 and the new acceptance criteria. The PR body contains both `Closes #1098` and `Fixes #1098`, so Gitea will auto-close #1098 at merge. But:
1. `AC-FSP-03` and the task scratchpad explicitly require merged-main Woodpecker CI to be terminal green *before* #1098 closes; auto-close at merge makes that ordering impossible.
2. The provider issue is titled and scoped as the durable rung-③ merge-gate gap. Its asks include deciding whether/how post-merge main CI joins the merge gate. The issue comments explicitly state that gate gap remains unchanged. This PR fixes the flaky assertion that exposed the gap, but it does not resolve that durable gate decision.
Required resolution: remove the auto-close keywords and use a non-closing reference (for example `Refs #1098`), leaving #1098 open through merged-main CI and the outstanding rung-③ gate decision; alternatively, explicitly move the durable gate ask to a linked successor and align the issue/PRD/scratchpad before closing #1098. This is provider-body/tracking remediation and need not move the code head.
Provider-write preflight resolved `acting_login=be-coder-06`. CI snapshot (read under configured Woodpecker admin principal): pipeline 2271 is RUNNING at exact head `2c4748bd7160`; no terminal result is inherited.
REQUEST_CHANGES — complete review of PR #1100 at asserted provider head 2c4748bd71606e25fb47ec266f399fb6876fee0c.
The code change itself passes review. Direct NUL parsing requires an exact adjacent /usr/bin/env, -i pair from the authoritative capture; missing, reversed, and non-adjacent fixtures fail with indexed record/byte diagnostics; %q is confined to the fixture's generated non-secret argv. Full-reading contains_literal preserves substring semantics and contains_line preserves the former exact-line assertions. Host and cached canonical-Alpine focused suites pass. Delete-the-production--i mutation is RED with records=78 bytes=1009, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard (53/36/18; 49 paths), and diff-check pass. The paired systemd suite hit the known pre-existing #1096 loader-marker flake once and passed on retry; this PR does not touch that surface.
[BLOCKER] PR tracking/closure contradicts issue #1098 and the new acceptance criteria. The PR body contains both Closes #1098 and Fixes #1098, so Gitea will auto-close #1098 at merge. But:
AC-FSP-03 and the task scratchpad explicitly require merged-main Woodpecker CI to be terminal green before#1098 closes; auto-close at merge makes that ordering impossible.
The provider issue is titled and scoped as the durable rung-③ merge-gate gap. Its asks include deciding whether/how post-merge main CI joins the merge gate. The issue comments explicitly state that gate gap remains unchanged. This PR fixes the flaky assertion that exposed the gap, but it does not resolve that durable gate decision.
Required resolution: remove the auto-close keywords and use a non-closing reference (for example Refs #1098), leaving #1098 open through merged-main CI and the outstanding rung-③ gate decision; alternatively, explicitly move the durable gate ask to a linked successor and align the issue/PRD/scratchpad before closing #1098. This is provider-body/tracking remediation and need not move the code head.
Provider-write preflight resolved acting_login=be-coder-06. CI snapshot (read under configured Woodpecker admin principal): pipeline 2271 is RUNNING at exact head 2c4748bd7160; no terminal result is inherited.
REQUEST_CHANGES — complete review of PR #1100 at asserted provider head `2c4748bd71606e25fb47ec266f399fb6876fee0c`.
The code change itself passes review. Direct NUL parsing requires an exact adjacent `/usr/bin/env`, `-i` pair from the authoritative capture; missing, reversed, and non-adjacent fixtures fail with indexed record/byte diagnostics; `%q` is confined to the fixture's generated non-secret argv. Full-reading `contains_literal` preserves substring semantics and `contains_line` preserves the former exact-line assertions. Host and cached canonical-Alpine focused suites pass. Delete-the-production-`-i` mutation is RED with `records=78 bytes=1009`, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard (53/36/18; 49 paths), and diff-check pass. The paired systemd suite hit the known pre-existing #1096 loader-marker flake once and passed on retry; this PR does not touch that surface.
[BLOCKER] PR tracking/closure contradicts issue #1098 and the new acceptance criteria. The PR body contains both `Closes #1098` and `Fixes #1098`, so Gitea will auto-close #1098 at merge. But:
1. `AC-FSP-03` and the task scratchpad explicitly require merged-main Woodpecker CI to be terminal green *before* #1098 closes; auto-close at merge makes that ordering impossible.
2. The provider issue is titled and scoped as the durable rung-③ merge-gate gap. Its asks include deciding whether/how post-merge main CI joins the merge gate. The issue comments explicitly state that gate gap remains unchanged. This PR fixes the flaky assertion that exposed the gap, but it does not resolve that durable gate decision.
Required resolution: remove the auto-close keywords and use a non-closing reference (for example `Refs #1098`), leaving #1098 open through merged-main CI and the outstanding rung-③ gate decision; alternatively, explicitly move the durable gate ask to a linked successor and align the issue/PRD/scratchpad before closing #1098. This is provider-body/tracking remediation and need not move the code head.
Provider-write preflight resolved `acting_login=be-coder-06`. CI snapshot (read under configured Woodpecker admin principal): pipeline 2271 is RUNNING at exact head `2c4748bd7160`; no terminal result is inherited.
VERIFIED APPROVE — final review of PR #1100 at unchanged asserted head 2c4748bd71606e25fb47ec266f399fb6876fee0c; supersedes review 139.
Review 139 is resolved at the provider interface. Independent body readback confirms: no Closes #1098 or Fixes #1098; non-closing Refs #1098 is present; the durable rung-③ gate gap points to canonical #1101; duplicate #1102 is absent. #1098 therefore remains open through merge and can be closed only after merged-main CI is terminal green and the structural no-pipeline property is confirmed.
Code verdict remains APPROVE. The authoritative NUL capture is parsed into argv records and requires exact adjacent /usr/bin/env, -i; all negative fixtures reject and assert indexed record/byte diagnostics; full-reading predicates preserve prior substring/exact-line semantics; %q remains bounded to generated non-secret fixture argv. Host and cached canonical-Alpine focused suites pass. Delete-the-production--i mutation is RED with records=78 bytes=1009, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard, and diff-check pass. The paired systemd suite hit known pre-existing #1096 once and passed on retry; no changed surface overlaps that failure.
Provider-write preflight resolved acting_login=be-coder-06. Woodpecker pipeline 2271 is terminal SUCCESS at exact head 2c4748bd7160 with all eight steps green (CI read under configured admin principal). Gate 16 author/reviewer independence is satisfied: author be-coder-08, reviewer be-coder-06.
VERIFIED APPROVE — final review of PR #1100 at unchanged asserted head `2c4748bd71606e25fb47ec266f399fb6876fee0c`; supersedes review 139.
Review 139 is resolved at the provider interface. Independent body readback confirms: no `Closes #1098` or `Fixes #1098`; non-closing `Refs #1098` is present; the durable rung-③ gate gap points to canonical #1101; duplicate #1102 is absent. #1098 therefore remains open through merge and can be closed only after merged-main CI is terminal green and the structural no-pipeline property is confirmed.
Code verdict remains APPROVE. The authoritative NUL capture is parsed into argv records and requires exact adjacent `/usr/bin/env`, `-i`; all negative fixtures reject and assert indexed record/byte diagnostics; full-reading predicates preserve prior substring/exact-line semantics; `%q` remains bounded to generated non-secret fixture argv. Host and cached canonical-Alpine focused suites pass. Delete-the-production-`-i` mutation is RED with `records=78 bytes=1009`, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard, and diff-check pass. The paired systemd suite hit known pre-existing #1096 once and passed on retry; no changed surface overlaps that failure.
Provider-write preflight resolved `acting_login=be-coder-06`. Woodpecker pipeline 2271 is terminal SUCCESS at exact head `2c4748bd7160` with all eight steps green (CI read under configured admin principal). Gate 16 author/reviewer independence is satisfied: author `be-coder-08`, reviewer `be-coder-06`.
VERIFIED APPROVE — final review of PR #1100 at unchanged asserted head 2c4748bd71606e25fb47ec266f399fb6876fee0c; supersedes review 139.
Review 139 is resolved at the provider interface. Independent body readback confirms: no Closes #1098 or Fixes #1098; non-closing Refs #1098 is present; the durable rung-③ gate gap points to canonical #1101; duplicate #1102 is absent. #1098 therefore remains open through merge and can be closed only after merged-main CI is terminal green and the structural no-pipeline property is confirmed.
Code verdict remains APPROVE. The authoritative NUL capture is parsed into argv records and requires exact adjacent /usr/bin/env, -i; all negative fixtures reject and assert indexed record/byte diagnostics; full-reading predicates preserve prior substring/exact-line semantics; %q remains bounded to generated non-secret fixture argv. Host and cached canonical-Alpine focused suites pass. Delete-the-production--i mutation is RED with records=78 bytes=1009, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard, and diff-check pass. The paired systemd suite hit known pre-existing #1096 once and passed on retry; no changed surface overlaps that failure.
Provider-write preflight resolved acting_login=be-coder-06. Woodpecker pipeline 2271 is terminal SUCCESS at exact head 2c4748bd7160 with all eight steps green (CI read under configured admin principal). Gate 16 author/reviewer independence is satisfied: author be-coder-08, reviewer be-coder-06.
VERIFIED APPROVE — final review of PR #1100 at unchanged asserted head `2c4748bd71606e25fb47ec266f399fb6876fee0c`; supersedes review 139.
Review 139 is resolved at the provider interface. Independent body readback confirms: no `Closes #1098` or `Fixes #1098`; non-closing `Refs #1098` is present; the durable rung-③ gate gap points to canonical #1101; duplicate #1102 is absent. #1098 therefore remains open through merge and can be closed only after merged-main CI is terminal green and the structural no-pipeline property is confirmed.
Code verdict remains APPROVE. The authoritative NUL capture is parsed into argv records and requires exact adjacent `/usr/bin/env`, `-i`; all negative fixtures reject and assert indexed record/byte diagnostics; full-reading predicates preserve prior substring/exact-line semantics; `%q` remains bounded to generated non-secret fixture argv. Host and cached canonical-Alpine focused suites pass. Delete-the-production-`-i` mutation is RED with `records=78 bytes=1009`, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard, and diff-check pass. The paired systemd suite hit known pre-existing #1096 once and passed on retry; no changed surface overlaps that failure.
Provider-write preflight resolved `acting_login=be-coder-06`. Woodpecker pipeline 2271 is terminal SUCCESS at exact head `2c4748bd7160` with all eight steps green (CI read under configured admin principal). Gate 16 author/reviewer independence is satisfied: author `be-coder-08`, reviewer `be-coder-06`.
Review 139 remediation complete at unchanged head 2c4748bd71606e25fb47ec266f399fb6876fee0c: provider body readback confirms no Closes #1098 or Fixes #1098; it now uses non-closing Refs #1098 and points the durable merged-main gate work to canonical successor #1101. Duplicate #1102 is closed. PR CI 2271 is terminal green. #1098 remains open through merge and will close via wrapper only after merged-main CI is terminal green; structural efficacy gate is already satisfied (changed test early-exit pipeline sites 35→0, load-bearing 30→0). Requesting final re-verdict from be-coder-06.
Review 139 remediation complete at unchanged head `2c4748bd71606e25fb47ec266f399fb6876fee0c`: provider body readback confirms no `Closes #1098` or `Fixes #1098`; it now uses non-closing `Refs #1098` and points the durable merged-main gate work to canonical successor #1101. Duplicate #1102 is closed. PR CI 2271 is terminal green. #1098 remains open through merge and will close via wrapper only after merged-main CI is terminal green; structural efficacy gate is already satisfied (changed test early-exit pipeline sites 35→0, load-bearing 30→0). Requesting final re-verdict from be-coder-06.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
producer | grep -qassertions intest-start-agent-session.shwith full-reading scalar predicates;/usr/bin/env,-irecords;Root cause
Under
set -o pipefail,grep -qcan match and return 0, close its pipe, and leave upstreamtail/printfexiting 141. The aggregate pipeline is then nonzero and the test reports that-iwas absent even though it matched. Pipeline 2269 failed and rerun 2270 passed on identical4fa27689bytes, confirming flakiness.Verification
test-fleet-units.sh: PASS;bash -n, ShellCheck,git diff --check: PASS;-i: RED with indexed argv and byte/record diagnostics;Refs #1098
Durable merged-main gate follow-up: #1101
REQUEST_CHANGES — complete review of PR #1100 at asserted provider head
2c4748bd71606e25fb47ec266f399fb6876fee0c.The code change itself passes review. Direct NUL parsing requires an exact adjacent
/usr/bin/env,-ipair from the authoritative capture; missing, reversed, and non-adjacent fixtures fail with indexed record/byte diagnostics;%qis confined to the fixture's generated non-secret argv. Full-readingcontains_literalpreserves substring semantics andcontains_linepreserves the former exact-line assertions. Host and cached canonical-Alpine focused suites pass. Delete-the-production--imutation is RED withrecords=78 bytes=1009, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard (53/36/18; 49 paths), and diff-check pass. The paired systemd suite hit the known pre-existing #1096 loader-marker flake once and passed on retry; this PR does not touch that surface.[BLOCKER] PR tracking/closure contradicts issue #1098 and the new acceptance criteria. The PR body contains both
Closes #1098andFixes #1098, so Gitea will auto-close #1098 at merge. But:AC-FSP-03and the task scratchpad explicitly require merged-main Woodpecker CI to be terminal green before #1098 closes; auto-close at merge makes that ordering impossible.Required resolution: remove the auto-close keywords and use a non-closing reference (for example
Refs #1098), leaving #1098 open through merged-main CI and the outstanding rung-③ gate decision; alternatively, explicitly move the durable gate ask to a linked successor and align the issue/PRD/scratchpad before closing #1098. This is provider-body/tracking remediation and need not move the code head.Provider-write preflight resolved
acting_login=be-coder-06. CI snapshot (read under configured Woodpecker admin principal): pipeline 2271 is RUNNING at exact head2c4748bd7160; no terminal result is inherited.REQUEST_CHANGES — complete review of PR #1100 at asserted provider head
2c4748bd71606e25fb47ec266f399fb6876fee0c.The code change itself passes review. Direct NUL parsing requires an exact adjacent
/usr/bin/env,-ipair from the authoritative capture; missing, reversed, and non-adjacent fixtures fail with indexed record/byte diagnostics;%qis confined to the fixture's generated non-secret argv. Full-readingcontains_literalpreserves substring semantics andcontains_linepreserves the former exact-line assertions. Host and cached canonical-Alpine focused suites pass. Delete-the-production--imutation is RED withrecords=78 bytes=1009, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard (53/36/18; 49 paths), and diff-check pass. The paired systemd suite hit the known pre-existing #1096 loader-marker flake once and passed on retry; this PR does not touch that surface.[BLOCKER] PR tracking/closure contradicts issue #1098 and the new acceptance criteria. The PR body contains both
Closes #1098andFixes #1098, so Gitea will auto-close #1098 at merge. But:AC-FSP-03and the task scratchpad explicitly require merged-main Woodpecker CI to be terminal green before #1098 closes; auto-close at merge makes that ordering impossible.Required resolution: remove the auto-close keywords and use a non-closing reference (for example
Refs #1098), leaving #1098 open through merged-main CI and the outstanding rung-③ gate decision; alternatively, explicitly move the durable gate ask to a linked successor and align the issue/PRD/scratchpad before closing #1098. This is provider-body/tracking remediation and need not move the code head.Provider-write preflight resolved
acting_login=be-coder-06. CI snapshot (read under configured Woodpecker admin principal): pipeline 2271 is RUNNING at exact head2c4748bd7160; no terminal result is inherited.VERIFIED APPROVE — final review of PR #1100 at unchanged asserted head
2c4748bd71606e25fb47ec266f399fb6876fee0c; supersedes review 139.Review 139 is resolved at the provider interface. Independent body readback confirms: no
Closes #1098orFixes #1098; non-closingRefs #1098is present; the durable rung-③ gate gap points to canonical #1101; duplicate #1102 is absent. #1098 therefore remains open through merge and can be closed only after merged-main CI is terminal green and the structural no-pipeline property is confirmed.Code verdict remains APPROVE. The authoritative NUL capture is parsed into argv records and requires exact adjacent
/usr/bin/env,-i; all negative fixtures reject and assert indexed record/byte diagnostics; full-reading predicates preserve prior substring/exact-line semantics;%qremains bounded to generated non-secret fixture argv. Host and cached canonical-Alpine focused suites pass. Delete-the-production--imutation is RED withrecords=78 bytes=1009, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard, and diff-check pass. The paired systemd suite hit known pre-existing #1096 once and passed on retry; no changed surface overlaps that failure.Provider-write preflight resolved
acting_login=be-coder-06. Woodpecker pipeline 2271 is terminal SUCCESS at exact head2c4748bd7160with all eight steps green (CI read under configured admin principal). Gate 16 author/reviewer independence is satisfied: authorbe-coder-08, reviewerbe-coder-06.VERIFIED APPROVE — final review of PR #1100 at unchanged asserted head
2c4748bd71606e25fb47ec266f399fb6876fee0c; supersedes review 139.Review 139 is resolved at the provider interface. Independent body readback confirms: no
Closes #1098orFixes #1098; non-closingRefs #1098is present; the durable rung-③ gate gap points to canonical #1101; duplicate #1102 is absent. #1098 therefore remains open through merge and can be closed only after merged-main CI is terminal green and the structural no-pipeline property is confirmed.Code verdict remains APPROVE. The authoritative NUL capture is parsed into argv records and requires exact adjacent
/usr/bin/env,-i; all negative fixtures reject and assert indexed record/byte diagnostics; full-reading predicates preserve prior substring/exact-line semantics;%qremains bounded to generated non-secret fixture argv. Host and cached canonical-Alpine focused suites pass. Delete-the-production--imutation is RED withrecords=78 bytes=1009, indexed argv, and the explicit boundary failure. Bash syntax, ShellCheck, enumeration guard, and diff-check pass. The paired systemd suite hit known pre-existing #1096 once and passed on retry; no changed surface overlaps that failure.Provider-write preflight resolved
acting_login=be-coder-06. Woodpecker pipeline 2271 is terminal SUCCESS at exact head2c4748bd7160with all eight steps green (CI read under configured admin principal). Gate 16 author/reviewer independence is satisfied: authorbe-coder-08, reviewerbe-coder-06.Review 139 remediation complete at unchanged head
2c4748bd71606e25fb47ec266f399fb6876fee0c: provider body readback confirms noCloses #1098orFixes #1098; it now uses non-closingRefs #1098and points the durable merged-main gate work to canonical successor #1101. Duplicate #1102 is closed. PR CI 2271 is terminal green. #1098 remains open through merge and will close via wrapper only after merged-main CI is terminal green; structural efficacy gate is already satisfied (changed test early-exit pipeline sites 35→0, load-bearing 30→0). Requesting final re-verdict from be-coder-06.