Skip to content

fix(gate): failed FULL acceptance gate is terminal regardless of noE2eAcceptance (P0a) - #205

Merged
agjs merged 1 commit into
mainfrom
fix/full-gate-terminal-regardless-of-e2e-flag
Jul 27, 2026
Merged

fix(gate): failed FULL acceptance gate is terminal regardless of noE2eAcceptance (P0a)#205
agjs merged 1 commit into
mainfrom
fix/full-gate-terminal-regardless-of-e2e-flag

Conversation

@agjs

@agjs agjs commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Observable-gates plan, P0a (4-model panel, unanimous — the first of the false-green-hardening series).

runFinalAcceptance downgraded a failed full gate (validate/build/size/root-drift) to a green done whenever TSFORGE_NO_E2E_ACCEPTANCE was set. The flag is meant to skip only the browser/chain e2e, but the terminal-status guard !finalPassed && !e2eAcceptanceDisabled also made the full gate advisory — active gate-relaxation and a #204-class false-green (a real red shipped as done).

Fix: drop the && !e2eAcceptanceDisabled guard. finalPassed is false only when the full gate failed or the browser chain failed; the chain can't run when the flag is set, so a false finalPassed under the flag is always a genuine full-gate red — which must be terminal. The flag still skips only the chain-acceptance block.

Inverted the test that codified the bug (old FIX 5) into two: disabled + full-gate-fail → stuck; disabled + full-gate-pass → done (chain skipped). Full suite 3140/0; typecheck + lint clean. Gate-preserving (additive: turns a swallowed red back into a red).

…E2eAcceptance (P0a)

Observable-gates plan P0a (4-model panel, unanimous). runFinalAcceptance downgraded a
FAILED full gate (validate/build/size/root-drift) to a green 'done' whenever
TSFORGE_NO_E2E_ACCEPTANCE was set — the flag was meant to skip only the browser/chain
e2e, but the terminal-status guard `!finalPassed && !e2eAcceptanceDisabled` also made
the full gate ADVISORY. That is active gate-relaxation and a #204-class false-green (a
real red shipped as done).

finalPassed is false only when (a) the full gate failed or (b) the browser chain failed;
(b) can't occur when the flag is set (the chain is skipped), so when disabled the only way
to !finalPassed is a genuine full-gate red — which must be terminal. Drop the
`&& !e2eAcceptanceDisabled` guard: a failed final acceptance is ALWAYS stuck. The flag
still skips only the chain-acceptance block.

Inverted the test that codified the bug (old 'FIX 5': disabled preserves done on gate
fail) into two: disabled + full-gate-fail → stuck; disabled + full-gate-pass → done with
the chain skipped. Full suite 3140/0.
@agjs
agjs merged commit d268fdc into main Jul 27, 2026
8 checks passed
@agjs
agjs deleted the fix/full-gate-terminal-regardless-of-e2e-flag branch July 27, 2026 17:05
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