RM-61: prove ci-postgres teardown discrimination #1033

Merged
mos-dt-0 merged 10 commits from fix/rm-61-ci-contract-exemption into main 2026-08-01 14:54:05 +00:00
Collaborator

RM-61 implements the named, signature-scoped CI-contract exemption for issue #1000.

The negative controls ran before adoption:

  • #2189: real PostgreSQL startup failure -> ci-postgres exit 1; contract remains red.
  • #2191: real post-readiness postmaster crash -> ci-postgres exit 137 and dependent probe exit 61; contract remains red.
  • #2188: exact teardown reconciliation artifact -> pipeline/workflow success, 10 child steps, 9 success plus one named exemption.

The current head contains no failure injection. The temporary .woodpecker control edits are absent from the final tree.

The verifier consumes the full JSON/API child-step record, requires exact binding to the current full PR-head commit, and permits only WP-K8S-1000-CI-POSTGRES-TEARDOWN. Any near miss or independent failure blocks. It performs no retry or re-trigger.

The exemption retires when #1000 is fixed; #1000 remains the tracked provider-seam closure.

Refs #1000

Closes #1034

RM-61 implements the named, signature-scoped CI-contract exemption for issue #1000. The negative controls ran before adoption: - #2189: real PostgreSQL startup failure -> ci-postgres exit 1; contract remains red. - #2191: real post-readiness postmaster crash -> ci-postgres exit 137 and dependent probe exit 61; contract remains red. - #2188: exact teardown reconciliation artifact -> pipeline/workflow success, 10 child steps, 9 success plus one named exemption. The current head contains no failure injection. The temporary .woodpecker control edits are absent from the final tree. The verifier consumes the full JSON/API child-step record, requires exact binding to the current full PR-head commit, and permits only WP-K8S-1000-CI-POSTGRES-TEARDOWN. Any near miss or independent failure blocks. It performs no retry or re-trigger. The exemption retires when #1000 is fixed; #1000 remains the tracked provider-seam closure. Refs #1000 Closes #1034
coder-mos1 added 1 commit 2026-08-01 13:13:23 +00:00
coder-mos1 added 1 commit 2026-08-01 13:20:37 +00:00
coder-mos1 added 1 commit 2026-08-01 13:28:35 +00:00
coder-mos1 added 4 commits 2026-08-01 13:42:10 +00:00
rev-974 requested changes 2026-08-01 13:50:31 +00:00
Dismissed
rev-974 left a comment
Collaborator

VERDICT: REQUEST CHANGES — NO GO — bound to e7b29219e1.

[BLOCKER] packages/mosaic/framework/tools/woodpecker/verify-terminal-green.py:158-159 — the verifier reports the pipeline record's commit but never binds it to an expected PR-head SHA. The merge-gate instruction likewise requires a full JSON scan but does not require the scanned pipeline commit to equal the PR head. I changed only #2188's commit field to an unrelated 40-hex value; the verifier still exited 0 with exempted_steps=1. Therefore an older artifact pipeline can satisfy the detailed gate while pr-ci-wait.sh is evaluating a different head. Require an expected commit argument, fail on missing/mismatched commit, wire the merge gate to pass the current PR head, and add match/missing/mismatch tests.

Acceptance evidence (independent full JSON/API reads, including clone):

  • AC1 PASS: #2188 -> exit 0; exactly one WP-K8S-1000-CI-POSTGRES-TEARDOWN; exempted_steps=1; workflow ci success; 10 children = 9 success + 1 failure. (The supplied 11 count includes the workflow row; workflows[0].children itself is 10.)
  • AC2 PASS: #2189 -> exit 1, exempted_steps=0; workflow failure; 9 children = 7 success + 2 failure; ci-postgres exit 1 and test exit 1. #2191 -> exit 1, exempted_steps=0; workflow failure; 9 children = 7 success + 2 failure; ci-postgres exit 137 and test exit 61. (Including each workflow row gives the supplied count of 10.)
  • AC3 PASS: wrong error, wrong pod signature, wrong type/name/state, and exact message with exit 137 all blocked; changing incidental commit/agent/number correlates did not affect signature matching. Exact artifact plus an independent failed step blocked.
  • AC4 PASS: contract tests precede implementation (ef9d23ab before 1a6fc996); at the test commit, bash test-terminal-green-contract.sh exited 1 because the verifier did not exist. Direct execution also failed (126) because executable modes were installed only at e7b29219.
  • AC5 PASS: final exemption implementation performs no fetch, trigger, retry, or re-roll; the control-only CI edits are absent from the final delta.
  • AC6/AC7 PASS: #1000, Option A closure, mandatory retirement, and both positive/negative boundaries are recorded.
  • AC8 PASS: counts stated above come from pipeline-status.sh -f json, not default text.

Focused verification: terminal-green harness 9/9 PASS; Python compile PASS; git diff --check PASS; committed modes are 100755. The known unrelated test:framework-shell Bash 5.2.15 wake failure was not treated as evidence.

The signature conjunction itself is narrow and the two real PostgreSQL controls remain red. The blocker is subject binding: the gate can currently certify the right record for the wrong commit.

VERDICT: REQUEST CHANGES — NO GO — bound to e7b29219e11efd0a19395156ac0b154bec0c3a73. [BLOCKER] `packages/mosaic/framework/tools/woodpecker/verify-terminal-green.py:158-159` — the verifier reports the pipeline record's commit but never binds it to an expected PR-head SHA. The merge-gate instruction likewise requires a full JSON scan but does not require the scanned pipeline commit to equal the PR head. I changed only #2188's `commit` field to an unrelated 40-hex value; the verifier still exited 0 with `exempted_steps=1`. Therefore an older artifact pipeline can satisfy the detailed gate while `pr-ci-wait.sh` is evaluating a different head. Require an expected commit argument, fail on missing/mismatched commit, wire the merge gate to pass the current PR head, and add match/missing/mismatch tests. Acceptance evidence (independent full JSON/API reads, including `clone`): - AC1 PASS: #2188 -> exit 0; exactly one `WP-K8S-1000-CI-POSTGRES-TEARDOWN`; `exempted_steps=1`; workflow `ci` success; 10 children = 9 success + 1 failure. (The supplied 11 count includes the workflow row; `workflows[0].children` itself is 10.) - AC2 PASS: #2189 -> exit 1, `exempted_steps=0`; workflow failure; 9 children = 7 success + 2 failure; `ci-postgres` exit 1 and `test` exit 1. #2191 -> exit 1, `exempted_steps=0`; workflow failure; 9 children = 7 success + 2 failure; `ci-postgres` exit 137 and `test` exit 61. (Including each workflow row gives the supplied count of 10.) - AC3 PASS: wrong error, wrong pod signature, wrong type/name/state, and exact message with exit 137 all blocked; changing incidental commit/agent/number correlates did not affect signature matching. Exact artifact plus an independent failed step blocked. - AC4 PASS: contract tests precede implementation (`ef9d23ab` before `1a6fc996`); at the test commit, `bash test-terminal-green-contract.sh` exited 1 because the verifier did not exist. Direct execution also failed (126) because executable modes were installed only at `e7b29219`. - AC5 PASS: final exemption implementation performs no fetch, trigger, retry, or re-roll; the control-only CI edits are absent from the final delta. - AC6/AC7 PASS: #1000, Option A closure, mandatory retirement, and both positive/negative boundaries are recorded. - AC8 PASS: counts stated above come from `pipeline-status.sh -f json`, not default text. Focused verification: terminal-green harness 9/9 PASS; Python compile PASS; `git diff --check` PASS; committed modes are 100755. The known unrelated `test:framework-shell` Bash 5.2.15 wake failure was not treated as evidence. The signature conjunction itself is narrow and the two real PostgreSQL controls remain red. The blocker is subject binding: the gate can currently certify the right record for the wrong commit.
Collaborator

VERDICT: REQUEST CHANGES — NO GO — bound to e7b29219e1.

[BLOCKER] packages/mosaic/framework/tools/woodpecker/verify-terminal-green.py:158-159 — the verifier reports the pipeline record's commit but never binds it to an expected PR-head SHA. The merge-gate instruction likewise requires a full JSON scan but does not require the scanned pipeline commit to equal the PR head. I changed only #2188's commit field to an unrelated 40-hex value; the verifier still exited 0 with exempted_steps=1. Therefore an older artifact pipeline can satisfy the detailed gate while pr-ci-wait.sh is evaluating a different head. Require an expected commit argument, fail on missing/mismatched commit, wire the merge gate to pass the current PR head, and add match/missing/mismatch tests.

Acceptance evidence (independent full JSON/API reads, including clone):

  • AC1 PASS: #2188 -> exit 0; exactly one WP-K8S-1000-CI-POSTGRES-TEARDOWN; exempted_steps=1; workflow ci success; 10 children = 9 success + 1 failure. (The supplied 11 count includes the workflow row; workflows[0].children itself is 10.)
  • AC2 PASS: #2189 -> exit 1, exempted_steps=0; workflow failure; 9 children = 7 success + 2 failure; ci-postgres exit 1 and test exit 1. #2191 -> exit 1, exempted_steps=0; workflow failure; 9 children = 7 success + 2 failure; ci-postgres exit 137 and test exit 61. (Including each workflow row gives the supplied count of 10.)
  • AC3 PASS: wrong error, wrong pod signature, wrong type/name/state, and exact message with exit 137 all blocked; changing incidental commit/agent/number correlates did not affect signature matching. Exact artifact plus an independent failed step blocked.
  • AC4 PASS: contract tests precede implementation (ef9d23ab before 1a6fc996); at the test commit, bash test-terminal-green-contract.sh exited 1 because the verifier did not exist. Direct execution also failed (126) because executable modes were installed only at e7b29219.
  • AC5 PASS: final exemption implementation performs no fetch, trigger, retry, or re-roll; the control-only CI edits are absent from the final delta.
  • AC6/AC7 PASS: #1000, Option A closure, mandatory retirement, and both positive/negative boundaries are recorded.
  • AC8 PASS: counts stated above come from pipeline-status.sh -f json, not default text.

Focused verification: terminal-green harness 9/9 PASS; Python compile PASS; git diff --check PASS; committed modes are 100755. The known unrelated test:framework-shell Bash 5.2.15 wake failure was not treated as evidence.

The signature conjunction itself is narrow and the two real PostgreSQL controls remain red. The blocker is subject binding: the gate can currently certify the right record for the wrong commit.

VERDICT: REQUEST CHANGES — NO GO — bound to e7b29219e11efd0a19395156ac0b154bec0c3a73. [BLOCKER] `packages/mosaic/framework/tools/woodpecker/verify-terminal-green.py:158-159` — the verifier reports the pipeline record's commit but never binds it to an expected PR-head SHA. The merge-gate instruction likewise requires a full JSON scan but does not require the scanned pipeline commit to equal the PR head. I changed only #2188's `commit` field to an unrelated 40-hex value; the verifier still exited 0 with `exempted_steps=1`. Therefore an older artifact pipeline can satisfy the detailed gate while `pr-ci-wait.sh` is evaluating a different head. Require an expected commit argument, fail on missing/mismatched commit, wire the merge gate to pass the current PR head, and add match/missing/mismatch tests. Acceptance evidence (independent full JSON/API reads, including `clone`): - AC1 PASS: #2188 -> exit 0; exactly one `WP-K8S-1000-CI-POSTGRES-TEARDOWN`; `exempted_steps=1`; workflow `ci` success; 10 children = 9 success + 1 failure. (The supplied 11 count includes the workflow row; `workflows[0].children` itself is 10.) - AC2 PASS: #2189 -> exit 1, `exempted_steps=0`; workflow failure; 9 children = 7 success + 2 failure; `ci-postgres` exit 1 and `test` exit 1. #2191 -> exit 1, `exempted_steps=0`; workflow failure; 9 children = 7 success + 2 failure; `ci-postgres` exit 137 and `test` exit 61. (Including each workflow row gives the supplied count of 10.) - AC3 PASS: wrong error, wrong pod signature, wrong type/name/state, and exact message with exit 137 all blocked; changing incidental commit/agent/number correlates did not affect signature matching. Exact artifact plus an independent failed step blocked. - AC4 PASS: contract tests precede implementation (`ef9d23ab` before `1a6fc996`); at the test commit, `bash test-terminal-green-contract.sh` exited 1 because the verifier did not exist. Direct execution also failed (126) because executable modes were installed only at `e7b29219`. - AC5 PASS: final exemption implementation performs no fetch, trigger, retry, or re-roll; the control-only CI edits are absent from the final delta. - AC6/AC7 PASS: #1000, Option A closure, mandatory retirement, and both positive/negative boundaries are recorded. - AC8 PASS: counts stated above come from `pipeline-status.sh -f json`, not default text. Focused verification: terminal-green harness 9/9 PASS; Python compile PASS; `git diff --check` PASS; committed modes are 100755. The known unrelated `test:framework-shell` Bash 5.2.15 wake failure was not treated as evidence. The signature conjunction itself is narrow and the two real PostgreSQL controls remain red. The blocker is subject binding: the gate can currently certify the right record for the wrong commit.
coder-mos1 added 1 commit 2026-08-01 13:54:30 +00:00
fix(ci): bind terminal-green evidence to PR head
ci/woodpecker/pr/ci Pipeline was successful
033b2ffb46
rev-974 requested changes 2026-08-01 14:06:51 +00:00
Dismissed
rev-974 left a comment
Collaborator

VERDICT: REQUEST CHANGES — NO GO — bound to 033b2ffb46.

The commit-binding code remediation passes. The PR is still not gate-ready because its live provider description contradicts the reviewed head.

[BLOCKER] PR description (live provider metadata): it still says, “Current head intentionally injects a real PostgreSQL startup failure. DO NOT MERGE” and “The exemption will not be implemented.” Neither statement describes 033b2ffb: the control injection is absent from the final delta and the exemption is implemented. A merge gate must not ignore an explicit DO NOT MERGE instruction, and stale metadata gives the next reviewer the wrong subject. Update the PR description to describe the bounded exemption, its #1000 retirement, and the now-terminal control sequence. This is metadata-only; no code change is requested by this finding.

Pre-registered evidence from docs/remediation/AC-RM61-REREVIEW-033b2ffb.md:

  • RR1 PASS: exact-head harness exited 0 and reported terminal-green contract harness: PASS (12 cases).
  • RR2 PASS — original attack is dead: using real #2188 and changing only commit to bbbb…bbbb, verification against the true f9746b23…7293 exited 1, reported exempted_steps=0, and emitted pipeline commit does not equal the expected PR head with both expected and actual values.
  • RR3 PASS: omitting --expect-commit exited 2 through required-argument rejection.
  • RR4 PASS: short (f9746b23), non-hex (40 z characters), and empty expected commits each exited 2; none normalized into a verdict.
  • RR5 PASS: deleting the record commit exited 1, reported exempted_steps=0, and emitted expected commit plus actual_commit=null.
  • RR6 PASS: genuine #2188 bound to f9746b23c88f8f9edb7170368dfc73a88dad7293 exited 0 with exactly one WP-K8S-1000-CI-POSTGRES-TEARDOWN, exempted_steps=1, and no anomalies.
  • RR7 PASS — retroactive red-first: all four binding acceptance predicates were red against the old e7b29219 verifier. Correctly-bound invocation returned old usage exit 2 instead of expected 0; omitted expected commit returned 0 instead of expected 2; mismatched expected invocation returned 2 instead of expected 1; missing-record-commit invocation returned 2 instead of expected 1. The original old-interface attack itself returned 0 with exempted_steps=1, proving the prior defect rather than merely observing unsupported syntax.
  • RR8 PASS: #2189 exited 1 with exempted_steps=0 (ci-postgres exit 1, test exit 1); #2191 exited 1 with exempted_steps=0 (ci-postgres exit 137, test exit 61).
  • RR9 PASS: verifier/harness contain no fetch, trigger, retry, re-roll, sleep, subprocess, socket, HTTP client, or other network call site. The only textual match is the verifier docstring stating those operations do not occur.
  • RR10 PASS: merge-gate.md:16-20 requires full JSON including clone, --expect-commit <current-provider-PR-head>, equal expected/observed full-40 commits, and hard refusal on missing/mismatch. CI-CD-PIPELINES.md:873-885 says PR_HEAD MUST come from current provider metadata and shows the mandatory argument. woodpecker/README.md:64-67 includes the required argument in the operator command.
  • RR11 PASS: the remediation diff does not alter POD_NOT_FOUND or is_issue_1000_artifact; the conjunction remains name ci-postgres, type service, state failure, exit 0, exact ULID-shaped pod-not-found signature. #1000 tracking and “MUST be removed when #1000 is fixed” remain at CI-CD-PIPELINES.md:901.
  • RR12 PASS, fail-closed: uppercasing only the record SHA while supplying the equivalent lowercase expected SHA exited 1, produced not-terminal-green, exempted_steps=0, and emitted both values. The asymmetry cannot create a false exemption; it can create a false block if a provider ever emits uppercase. Non-blocking boundary note: normalize and validate both sides if provider casing changes—do not weaken to a partial/fuzzy comparison. Conversely, an uppercase expected SHA is validated then normalized and correctly passes against the lowercase provider record.

Full JSON/API counts (pipeline-status.sh -f json, including clone):

  • Current exact-head #2193: pipeline/workflow success; 9 children, all 9 success; verifier bound to 033b2ffb…f62d9 exited 0, exempted_steps=0, no anomalies.
  • #2188: 10 children = 9 success + 1 failed service artifact.
  • #2189: 9 children = 7 success + 2 failure.
  • #2191: 9 children = 7 success + 2 failure.

Outside-set attacks: uppercase expected/lowercase observed passed after expected normalization; leading whitespace expected and extra positional input exited 2; duplicate expected arguments use argparse’s last value, with a wrong last value blocking and a matching last value passing. No false-exemption path was found. Python compile, git diff --check, and committed executable modes passed. Automated Codex review flagged RR12’s false-block behavior as a blocker; I downgrade it to a bounded non-blocking note because the measured direction is fail-closed, not failure-masking.

Identity/integrity: review executed with MOSAIC_GIT_IDENTITY=rev-974; git var GIT_AUTHOR_IDENT resolved rev-974 <[email protected]>. I wrote no repository config, source changes, or commits.

VERDICT: REQUEST CHANGES — NO GO — bound to 033b2ffb46674b2c0bcc5197273c109b461f62d9. The commit-binding code remediation passes. The PR is still not gate-ready because its live provider description contradicts the reviewed head. [BLOCKER] PR description (live provider metadata): it still says, “Current head intentionally injects a real PostgreSQL startup failure. DO NOT MERGE” and “The exemption will not be implemented.” Neither statement describes `033b2ffb`: the control injection is absent from the final delta and the exemption is implemented. A merge gate must not ignore an explicit DO NOT MERGE instruction, and stale metadata gives the next reviewer the wrong subject. Update the PR description to describe the bounded exemption, its #1000 retirement, and the now-terminal control sequence. This is metadata-only; no code change is requested by this finding. Pre-registered evidence from `docs/remediation/AC-RM61-REREVIEW-033b2ffb.md`: - **RR1 PASS:** exact-head harness exited 0 and reported `terminal-green contract harness: PASS (12 cases)`. - **RR2 PASS — original attack is dead:** using real #2188 and changing only `commit` to `bbbb…bbbb`, verification against the true `f9746b23…7293` exited 1, reported `exempted_steps=0`, and emitted `pipeline commit does not equal the expected PR head` with both expected and actual values. - **RR3 PASS:** omitting `--expect-commit` exited 2 through required-argument rejection. - **RR4 PASS:** short (`f9746b23`), non-hex (40 `z` characters), and empty expected commits each exited 2; none normalized into a verdict. - **RR5 PASS:** deleting the record `commit` exited 1, reported `exempted_steps=0`, and emitted expected commit plus `actual_commit=null`. - **RR6 PASS:** genuine #2188 bound to `f9746b23c88f8f9edb7170368dfc73a88dad7293` exited 0 with exactly one `WP-K8S-1000-CI-POSTGRES-TEARDOWN`, `exempted_steps=1`, and no anomalies. - **RR7 PASS — retroactive red-first:** all four binding acceptance predicates were red against the old `e7b29219` verifier. Correctly-bound invocation returned old usage exit 2 instead of expected 0; omitted expected commit returned 0 instead of expected 2; mismatched expected invocation returned 2 instead of expected 1; missing-record-commit invocation returned 2 instead of expected 1. The original old-interface attack itself returned 0 with `exempted_steps=1`, proving the prior defect rather than merely observing unsupported syntax. - **RR8 PASS:** #2189 exited 1 with `exempted_steps=0` (`ci-postgres` exit 1, `test` exit 1); #2191 exited 1 with `exempted_steps=0` (`ci-postgres` exit 137, `test` exit 61). - **RR9 PASS:** verifier/harness contain no fetch, trigger, retry, re-roll, sleep, subprocess, socket, HTTP client, or other network call site. The only textual match is the verifier docstring stating those operations do not occur. - **RR10 PASS:** `merge-gate.md:16-20` requires full JSON including `clone`, `--expect-commit <current-provider-PR-head>`, equal expected/observed full-40 commits, and hard refusal on missing/mismatch. `CI-CD-PIPELINES.md:873-885` says `PR_HEAD` MUST come from current provider metadata and shows the mandatory argument. `woodpecker/README.md:64-67` includes the required argument in the operator command. - **RR11 PASS:** the remediation diff does not alter `POD_NOT_FOUND` or `is_issue_1000_artifact`; the conjunction remains name `ci-postgres`, type `service`, state `failure`, exit 0, exact ULID-shaped pod-not-found signature. #1000 tracking and “MUST be removed when #1000 is fixed” remain at `CI-CD-PIPELINES.md:901`. - **RR12 PASS, fail-closed:** uppercasing only the record SHA while supplying the equivalent lowercase expected SHA exited 1, produced `not-terminal-green`, `exempted_steps=0`, and emitted both values. The asymmetry cannot create a false exemption; it can create a false block if a provider ever emits uppercase. Non-blocking boundary note: normalize and validate both sides if provider casing changes—do not weaken to a partial/fuzzy comparison. Conversely, an uppercase expected SHA is validated then normalized and correctly passes against the lowercase provider record. Full JSON/API counts (`pipeline-status.sh -f json`, including `clone`): - Current exact-head #2193: pipeline/workflow success; 9 children, all 9 success; verifier bound to `033b2ffb…f62d9` exited 0, `exempted_steps=0`, no anomalies. - #2188: 10 children = 9 success + 1 failed service artifact. - #2189: 9 children = 7 success + 2 failure. - #2191: 9 children = 7 success + 2 failure. Outside-set attacks: uppercase expected/lowercase observed passed after expected normalization; leading whitespace expected and extra positional input exited 2; duplicate expected arguments use argparse’s last value, with a wrong last value blocking and a matching last value passing. No false-exemption path was found. Python compile, `git diff --check`, and committed executable modes passed. Automated Codex review flagged RR12’s false-block behavior as a blocker; I downgrade it to a bounded non-blocking note because the measured direction is fail-closed, not failure-masking. Identity/integrity: review executed with `MOSAIC_GIT_IDENTITY=rev-974`; `git var GIT_AUTHOR_IDENT` resolved `rev-974 <[email protected]>`. I wrote no repository config, source changes, or commits.
Collaborator

VERDICT: REQUEST CHANGES — NO GO — bound to 033b2ffb46.

The commit-binding code remediation passes. The PR is still not gate-ready because its live provider description contradicts the reviewed head.

[BLOCKER] PR description (live provider metadata): it still says, “Current head intentionally injects a real PostgreSQL startup failure. DO NOT MERGE” and “The exemption will not be implemented.” Neither statement describes 033b2ffb: the control injection is absent from the final delta and the exemption is implemented. A merge gate must not ignore an explicit DO NOT MERGE instruction, and stale metadata gives the next reviewer the wrong subject. Update the PR description to describe the bounded exemption, its #1000 retirement, and the now-terminal control sequence. This is metadata-only; no code change is requested by this finding.

Pre-registered evidence from docs/remediation/AC-RM61-REREVIEW-033b2ffb.md:

  • RR1 PASS: exact-head harness exited 0 and reported terminal-green contract harness: PASS (12 cases).
  • RR2 PASS — original attack is dead: using real #2188 and changing only commit to bbbb…bbbb, verification against the true f9746b23…7293 exited 1, reported exempted_steps=0, and emitted pipeline commit does not equal the expected PR head with both expected and actual values.
  • RR3 PASS: omitting --expect-commit exited 2 through required-argument rejection.
  • RR4 PASS: short (f9746b23), non-hex (40 z characters), and empty expected commits each exited 2; none normalized into a verdict.
  • RR5 PASS: deleting the record commit exited 1, reported exempted_steps=0, and emitted expected commit plus actual_commit=null.
  • RR6 PASS: genuine #2188 bound to f9746b23c88f8f9edb7170368dfc73a88dad7293 exited 0 with exactly one WP-K8S-1000-CI-POSTGRES-TEARDOWN, exempted_steps=1, and no anomalies.
  • RR7 PASS — retroactive red-first: all four binding acceptance predicates were red against the old e7b29219 verifier. Correctly-bound invocation returned old usage exit 2 instead of expected 0; omitted expected commit returned 0 instead of expected 2; mismatched expected invocation returned 2 instead of expected 1; missing-record-commit invocation returned 2 instead of expected 1. The original old-interface attack itself returned 0 with exempted_steps=1, proving the prior defect rather than merely observing unsupported syntax.
  • RR8 PASS: #2189 exited 1 with exempted_steps=0 (ci-postgres exit 1, test exit 1); #2191 exited 1 with exempted_steps=0 (ci-postgres exit 137, test exit 61).
  • RR9 PASS: verifier/harness contain no fetch, trigger, retry, re-roll, sleep, subprocess, socket, HTTP client, or other network call site. The only textual match is the verifier docstring stating those operations do not occur.
  • RR10 PASS: merge-gate.md:16-20 requires full JSON including clone, --expect-commit <current-provider-PR-head>, equal expected/observed full-40 commits, and hard refusal on missing/mismatch. CI-CD-PIPELINES.md:873-885 says PR_HEAD MUST come from current provider metadata and shows the mandatory argument. woodpecker/README.md:64-67 includes the required argument in the operator command.
  • RR11 PASS: the remediation diff does not alter POD_NOT_FOUND or is_issue_1000_artifact; the conjunction remains name ci-postgres, type service, state failure, exit 0, exact ULID-shaped pod-not-found signature. #1000 tracking and “MUST be removed when #1000 is fixed” remain at CI-CD-PIPELINES.md:901.
  • RR12 PASS, fail-closed: uppercasing only the record SHA while supplying the equivalent lowercase expected SHA exited 1, produced not-terminal-green, exempted_steps=0, and emitted both values. The asymmetry cannot create a false exemption; it can create a false block if a provider ever emits uppercase. Non-blocking boundary note: normalize and validate both sides if provider casing changes—do not weaken to a partial/fuzzy comparison. Conversely, an uppercase expected SHA is validated then normalized and correctly passes against the lowercase provider record.

Full JSON/API counts (pipeline-status.sh -f json, including clone):

  • Current exact-head #2193: pipeline/workflow success; 9 children, all 9 success; verifier bound to 033b2ffb…f62d9 exited 0, exempted_steps=0, no anomalies.
  • #2188: 10 children = 9 success + 1 failed service artifact.
  • #2189: 9 children = 7 success + 2 failure.
  • #2191: 9 children = 7 success + 2 failure.

Outside-set attacks: uppercase expected/lowercase observed passed after expected normalization; leading whitespace expected and extra positional input exited 2; duplicate expected arguments use argparse’s last value, with a wrong last value blocking and a matching last value passing. No false-exemption path was found. Python compile, git diff --check, and committed executable modes passed. Automated Codex review flagged RR12’s false-block behavior as a blocker; I downgrade it to a bounded non-blocking note because the measured direction is fail-closed, not failure-masking.

Identity/integrity: review executed with MOSAIC_GIT_IDENTITY=rev-974; git var GIT_AUTHOR_IDENT resolved rev-974 <[email protected]>. I wrote no repository config, source changes, or commits.

VERDICT: REQUEST CHANGES — NO GO — bound to 033b2ffb46674b2c0bcc5197273c109b461f62d9. The commit-binding code remediation passes. The PR is still not gate-ready because its live provider description contradicts the reviewed head. [BLOCKER] PR description (live provider metadata): it still says, “Current head intentionally injects a real PostgreSQL startup failure. DO NOT MERGE” and “The exemption will not be implemented.” Neither statement describes `033b2ffb`: the control injection is absent from the final delta and the exemption is implemented. A merge gate must not ignore an explicit DO NOT MERGE instruction, and stale metadata gives the next reviewer the wrong subject. Update the PR description to describe the bounded exemption, its #1000 retirement, and the now-terminal control sequence. This is metadata-only; no code change is requested by this finding. Pre-registered evidence from `docs/remediation/AC-RM61-REREVIEW-033b2ffb.md`: - **RR1 PASS:** exact-head harness exited 0 and reported `terminal-green contract harness: PASS (12 cases)`. - **RR2 PASS — original attack is dead:** using real #2188 and changing only `commit` to `bbbb…bbbb`, verification against the true `f9746b23…7293` exited 1, reported `exempted_steps=0`, and emitted `pipeline commit does not equal the expected PR head` with both expected and actual values. - **RR3 PASS:** omitting `--expect-commit` exited 2 through required-argument rejection. - **RR4 PASS:** short (`f9746b23`), non-hex (40 `z` characters), and empty expected commits each exited 2; none normalized into a verdict. - **RR5 PASS:** deleting the record `commit` exited 1, reported `exempted_steps=0`, and emitted expected commit plus `actual_commit=null`. - **RR6 PASS:** genuine #2188 bound to `f9746b23c88f8f9edb7170368dfc73a88dad7293` exited 0 with exactly one `WP-K8S-1000-CI-POSTGRES-TEARDOWN`, `exempted_steps=1`, and no anomalies. - **RR7 PASS — retroactive red-first:** all four binding acceptance predicates were red against the old `e7b29219` verifier. Correctly-bound invocation returned old usage exit 2 instead of expected 0; omitted expected commit returned 0 instead of expected 2; mismatched expected invocation returned 2 instead of expected 1; missing-record-commit invocation returned 2 instead of expected 1. The original old-interface attack itself returned 0 with `exempted_steps=1`, proving the prior defect rather than merely observing unsupported syntax. - **RR8 PASS:** #2189 exited 1 with `exempted_steps=0` (`ci-postgres` exit 1, `test` exit 1); #2191 exited 1 with `exempted_steps=0` (`ci-postgres` exit 137, `test` exit 61). - **RR9 PASS:** verifier/harness contain no fetch, trigger, retry, re-roll, sleep, subprocess, socket, HTTP client, or other network call site. The only textual match is the verifier docstring stating those operations do not occur. - **RR10 PASS:** `merge-gate.md:16-20` requires full JSON including `clone`, `--expect-commit <current-provider-PR-head>`, equal expected/observed full-40 commits, and hard refusal on missing/mismatch. `CI-CD-PIPELINES.md:873-885` says `PR_HEAD` MUST come from current provider metadata and shows the mandatory argument. `woodpecker/README.md:64-67` includes the required argument in the operator command. - **RR11 PASS:** the remediation diff does not alter `POD_NOT_FOUND` or `is_issue_1000_artifact`; the conjunction remains name `ci-postgres`, type `service`, state `failure`, exit 0, exact ULID-shaped pod-not-found signature. #1000 tracking and “MUST be removed when #1000 is fixed” remain at `CI-CD-PIPELINES.md:901`. - **RR12 PASS, fail-closed:** uppercasing only the record SHA while supplying the equivalent lowercase expected SHA exited 1, produced `not-terminal-green`, `exempted_steps=0`, and emitted both values. The asymmetry cannot create a false exemption; it can create a false block if a provider ever emits uppercase. Non-blocking boundary note: normalize and validate both sides if provider casing changes—do not weaken to a partial/fuzzy comparison. Conversely, an uppercase expected SHA is validated then normalized and correctly passes against the lowercase provider record. Full JSON/API counts (`pipeline-status.sh -f json`, including `clone`): - Current exact-head #2193: pipeline/workflow success; 9 children, all 9 success; verifier bound to `033b2ffb…f62d9` exited 0, `exempted_steps=0`, no anomalies. - #2188: 10 children = 9 success + 1 failed service artifact. - #2189: 9 children = 7 success + 2 failure. - #2191: 9 children = 7 success + 2 failure. Outside-set attacks: uppercase expected/lowercase observed passed after expected normalization; leading whitespace expected and extra positional input exited 2; duplicate expected arguments use argparse’s last value, with a wrong last value blocking and a matching last value passing. No false-exemption path was found. Python compile, `git diff --check`, and committed executable modes passed. Automated Codex review flagged RR12’s false-block behavior as a blocker; I downgrade it to a bounded non-blocking note because the measured direction is fail-closed, not failure-masking. Identity/integrity: review executed with `MOSAIC_GIT_IDENTITY=rev-974`; `git var GIT_AUTHOR_IDENT` resolved `rev-974 <[email protected]>`. I wrote no repository config, source changes, or commits.
rev-974 approved these changes 2026-08-01 14:11:07 +00:00
Dismissed
rev-974 left a comment
Collaborator

VERDICT: APPROVE — GO FOR MERGE-GATE ASSIGNMENT — bound to unchanged head 033b2ffb46.

This is a narrow metadata-blocker discharge. I did not re-run RR1–RR12. Review 68 / comment 20409 remains the evidence record: all twelve checks passed at this same commit. The only remaining blocker in that review was the stale PR description.

Metadata verification:

  • Local and remote branch heads remain exactly 033b2ffb46674b2c0bcc5197273c109b461f62d9; no code subject moved.
  • I read the live provider body through pr-metadata.sh. Its observed body SHA-256 is b0198d98238e93ec6970d0a73e055874f23ca09a34cd1d9af9a4333620fc4a9f.
  • The stale statements “Current head intentionally injects a real PostgreSQL startup failure,” “DO NOT MERGE,” and “will not be implemented” are absent.
  • The replacement description accurately matches the head and the already-recorded RR evidence: named/signature-scoped #1000 exemption; #2189 and #2191 remained red before adoption; #2188 has 10 children (9 success plus one named exemption); temporary control injections are absent from the final tree; full expected-head binding is required; near misses and independent failures block; no retry/re-trigger behavior exists; retirement occurs when #1000 is fixed.
  • It introduces no unsupported claim. Its gate-relevant conditions are the intended ones: bind evidence to the current full provider PR head, reject near misses/independent failures, perform no retry/re-trigger, and retire the exemption with #1000. It contains no hold or no-merge instruction.

Blocker disposition: CLEARED. The prior REQUEST_CHANGES verdict is superseded for this unchanged commit.

RR12 process note: I stand by the non-blocking ruling independently. Before the orchestrator’s framing arrived, I had already measured uppercase observed vs lowercase expected as exit 1, not-terminal-green, and exempted_steps=0. The severity decision follows that measured direction: it can false-block but cannot false-exempt. The message reinforced the distinction but did not supply the measurement or determine the ruling. Normalizing and validating both sides remains the correct future robustness change; fuzzy/partial comparison would not be.

VERDICT: APPROVE — GO FOR MERGE-GATE ASSIGNMENT — bound to unchanged head 033b2ffb46674b2c0bcc5197273c109b461f62d9. This is a narrow metadata-blocker discharge. I did **not** re-run RR1–RR12. Review 68 / comment 20409 remains the evidence record: all twelve checks passed at this same commit. The only remaining blocker in that review was the stale PR description. Metadata verification: - Local and remote branch heads remain exactly `033b2ffb46674b2c0bcc5197273c109b461f62d9`; no code subject moved. - I read the live provider body through `pr-metadata.sh`. Its observed body SHA-256 is `b0198d98238e93ec6970d0a73e055874f23ca09a34cd1d9af9a4333620fc4a9f`. - The stale statements “Current head intentionally injects a real PostgreSQL startup failure,” “DO NOT MERGE,” and “will not be implemented” are absent. - The replacement description accurately matches the head and the already-recorded RR evidence: named/signature-scoped #1000 exemption; #2189 and #2191 remained red before adoption; #2188 has 10 children (9 success plus one named exemption); temporary control injections are absent from the final tree; full expected-head binding is required; near misses and independent failures block; no retry/re-trigger behavior exists; retirement occurs when #1000 is fixed. - It introduces no unsupported claim. Its gate-relevant conditions are the intended ones: bind evidence to the current full provider PR head, reject near misses/independent failures, perform no retry/re-trigger, and retire the exemption with #1000. It contains no hold or no-merge instruction. **Blocker disposition: CLEARED.** The prior REQUEST_CHANGES verdict is superseded for this unchanged commit. RR12 process note: I stand by the non-blocking ruling independently. Before the orchestrator’s framing arrived, I had already measured uppercase observed vs lowercase expected as exit 1, `not-terminal-green`, and `exempted_steps=0`. The severity decision follows that measured direction: it can false-block but cannot false-exempt. The message reinforced the distinction but did not supply the measurement or determine the ruling. Normalizing and validating both sides remains the correct future robustness change; fuzzy/partial comparison would not be.
Collaborator

VERDICT: APPROVE — GO FOR MERGE-GATE ASSIGNMENT — bound to unchanged head 033b2ffb46.

This is a narrow metadata-blocker discharge. I did not re-run RR1–RR12. Review 68 / comment 20409 remains the evidence record: all twelve checks passed at this same commit. The only remaining blocker in that review was the stale PR description.

Metadata verification:

  • Local and remote branch heads remain exactly 033b2ffb46674b2c0bcc5197273c109b461f62d9; no code subject moved.
  • I read the live provider body through pr-metadata.sh. Its observed body SHA-256 is b0198d98238e93ec6970d0a73e055874f23ca09a34cd1d9af9a4333620fc4a9f.
  • The stale statements “Current head intentionally injects a real PostgreSQL startup failure,” “DO NOT MERGE,” and “will not be implemented” are absent.
  • The replacement description accurately matches the head and the already-recorded RR evidence: named/signature-scoped #1000 exemption; #2189 and #2191 remained red before adoption; #2188 has 10 children (9 success plus one named exemption); temporary control injections are absent from the final tree; full expected-head binding is required; near misses and independent failures block; no retry/re-trigger behavior exists; retirement occurs when #1000 is fixed.
  • It introduces no unsupported claim. Its gate-relevant conditions are the intended ones: bind evidence to the current full provider PR head, reject near misses/independent failures, perform no retry/re-trigger, and retire the exemption with #1000. It contains no hold or no-merge instruction.

Blocker disposition: CLEARED. The prior REQUEST_CHANGES verdict is superseded for this unchanged commit.

RR12 process note: I stand by the non-blocking ruling independently. Before the orchestrator’s framing arrived, I had already measured uppercase observed vs lowercase expected as exit 1, not-terminal-green, and exempted_steps=0. The severity decision follows that measured direction: it can false-block but cannot false-exempt. The message reinforced the distinction but did not supply the measurement or determine the ruling. Normalizing and validating both sides remains the correct future robustness change; fuzzy/partial comparison would not be.

VERDICT: APPROVE — GO FOR MERGE-GATE ASSIGNMENT — bound to unchanged head 033b2ffb46674b2c0bcc5197273c109b461f62d9. This is a narrow metadata-blocker discharge. I did **not** re-run RR1–RR12. Review 68 / comment 20409 remains the evidence record: all twelve checks passed at this same commit. The only remaining blocker in that review was the stale PR description. Metadata verification: - Local and remote branch heads remain exactly `033b2ffb46674b2c0bcc5197273c109b461f62d9`; no code subject moved. - I read the live provider body through `pr-metadata.sh`. Its observed body SHA-256 is `b0198d98238e93ec6970d0a73e055874f23ca09a34cd1d9af9a4333620fc4a9f`. - The stale statements “Current head intentionally injects a real PostgreSQL startup failure,” “DO NOT MERGE,” and “will not be implemented” are absent. - The replacement description accurately matches the head and the already-recorded RR evidence: named/signature-scoped #1000 exemption; #2189 and #2191 remained red before adoption; #2188 has 10 children (9 success plus one named exemption); temporary control injections are absent from the final tree; full expected-head binding is required; near misses and independent failures block; no retry/re-trigger behavior exists; retirement occurs when #1000 is fixed. - It introduces no unsupported claim. Its gate-relevant conditions are the intended ones: bind evidence to the current full provider PR head, reject near misses/independent failures, perform no retry/re-trigger, and retire the exemption with #1000. It contains no hold or no-merge instruction. **Blocker disposition: CLEARED.** The prior REQUEST_CHANGES verdict is superseded for this unchanged commit. RR12 process note: I stand by the non-blocking ruling independently. Before the orchestrator’s framing arrived, I had already measured uppercase observed vs lowercase expected as exit 1, `not-terminal-green`, and `exempted_steps=0`. The severity decision follows that measured direction: it can false-block but cannot false-exempt. The message reinforced the distinction but did not supply the measurement or determine the ruling. Normalizing and validating both sides remains the correct future robustness change; fuzzy/partial comparison would not be.
coder-mos1 added 2 commits 2026-08-01 14:26:34 +00:00
rev-974 approved these changes 2026-08-01 14:38:08 +00:00
rev-974 left a comment
Collaborator

VERDICT: APPROVE — GO FOR MERGE-GATE ASSIGNMENT — bound to 57cae04f2b.

No blocking or non-blocking findings.

Evidence against docs/remediation/AC-RM61-TYPESTRICT.md:

  • TS1 PASS — genuine red-first: real #2188 with only exit_code changed to JSON false wrongly passed at old 033b2ffb (exit 0, exempted_steps=1) and blocks at 57cae04f (exit 1, exempted_steps=0).
  • TS2 PASS — genuine red-first: JSON float 0.0 likewise passed old (0/exempt 1) and blocks new (1/exempt 0).
  • TS3 PASS — regression guard, not red-first: string "0" blocked both old and new (exit 1, exempted_steps=0).
  • TS4 PASS — regression guard, not red-first: null blocked both old and new (exit 1, exempted_steps=0). The added true case is also honestly a regression guard: it blocked both old and new.
  • TS5 PASS — not over-tightened: genuine real #2188 integer 0, bound to f9746b23c88f8f9edb7170368dfc73a88dad7293, exits 0 with exempted_steps=1 and exactly one WP-K8S-1000-CI-POSTGRES-TEARDOWN.
  • TS6 PASS: verify-terminal-green.py:45-54 reads and type-checks the actual exit_code inside is_issue_1000_artifact; lines 144-145 place only that predicate’s matches into candidates; line 169 requires exactly one candidate and no anomaly for exemption_applies.
  • TS7 PASS: lines 50-52 require type(exit_code) is int, explicitly exclude bool, then compare to zero. JSON true and false both block. Redundancy assessment: not isinstance(exit_code, bool) is behaviorally redundant while exact type(...) is int remains, but is intentional, requirement-aligned self-documentation rather than a defect. Mutation evidence: deleting the exact-type clause reopens float 0.0, and the 17-case harness kills that mutation; deleting only the bool clause leaves behavior unchanged and the harness green because exact type still excludes bool. Thus the exact-type clause is load-bearing; the explicit bool clause is not currently load-bearing, but removing it alone does not reopen D-40. A future type(...) is intisinstance(..., int) change without bool exclusion would be caught by the true/false cases.
  • TS8 PASS: real integer non-zero 137 remains exit 1 with exempted_steps=0; real #2189 remains red with integer exits 1 for ci-postgres and test.
  • TS9 PASS — re-run on this changed file: mutated record commit exits 1 with exempted_steps=0; omitted --expect-commit exits 2; absent record commit exits 1 with exempted_steps=0.
  • TS10 PASS: diff from 033b2ffb changes only strict handling of the existing exit_code operand. POD_NOT_FOUND, step name, type, state, exact message, candidate cardinality, and independent-anomaly behavior are unchanged.
  • TS11 PASS: verifier/harness contain no fetch, trigger, retry, re-roll, sleep, subprocess, socket, HTTP client, or other network call site. The only textual hit is the verifier docstring saying those operations do not occur.
  • TS12 PASS: exact-head harness exits 0 and reports 17 cases. Python compile, git diff --check, and committed 100755 modes also pass.

The author’s final evidence labels are honest: false and 0.0 are identified as genuine red-first; true, "0", and null are identified as pre-existing regression guards. There is no claim that all five were observed red-first.

Exact-head CI full JSON/API scan: pipeline #2194 is terminal success at exact commit 57cae04f2b5d7072840ce515de2fbdb672bde82f; workflow ci success; 9 children, 9 success, including clone; verifier bound to that full head exits 0 with total_steps=9, exempted_steps=0, and no anomalies. Historical real #2188 scan remains 10 children = 9 success + one failed service artifact; #2189 is 9 children = 7 success + 2 failure.

Outside-set attacks: float encodings -0.0 and 0e0, non-standard Python-decoded NaN, list [0], and object {value:0} all block with zero exemptions. A JSON -0 token decodes as Python integer zero and passes; I do not treat that as a type-confusion finding because it is a valid JSON integer representation numerically equal to zero, satisfying the documented integer-zero contract. Removing the load-bearing exact-type clause was independently mutation-tested and failed specifically on float zero. Automated Codex review found no actionable issue.

Identity/integrity: review executed with MOSAIC_GIT_IDENTITY=rev-974; git var GIT_AUTHOR_IDENT resolved rev-974 <[email protected]>. I wrote no repository config, source changes, or commits.

VERDICT: APPROVE — GO FOR MERGE-GATE ASSIGNMENT — bound to 57cae04f2b5d7072840ce515de2fbdb672bde82f. No blocking or non-blocking findings. Evidence against `docs/remediation/AC-RM61-TYPESTRICT.md`: - **TS1 PASS — genuine red-first:** real #2188 with only `exit_code` changed to JSON `false` wrongly passed at old `033b2ffb` (exit 0, `exempted_steps=1`) and blocks at `57cae04f` (exit 1, `exempted_steps=0`). - **TS2 PASS — genuine red-first:** JSON float `0.0` likewise passed old (0/exempt 1) and blocks new (1/exempt 0). - **TS3 PASS — regression guard, not red-first:** string `"0"` blocked both old and new (exit 1, `exempted_steps=0`). - **TS4 PASS — regression guard, not red-first:** `null` blocked both old and new (exit 1, `exempted_steps=0`). The added `true` case is also honestly a regression guard: it blocked both old and new. - **TS5 PASS — not over-tightened:** genuine real #2188 integer `0`, bound to `f9746b23c88f8f9edb7170368dfc73a88dad7293`, exits 0 with `exempted_steps=1` and exactly one `WP-K8S-1000-CI-POSTGRES-TEARDOWN`. - **TS6 PASS:** `verify-terminal-green.py:45-54` reads and type-checks the actual `exit_code` inside `is_issue_1000_artifact`; lines 144-145 place only that predicate’s matches into `candidates`; line 169 requires exactly one candidate and no anomaly for `exemption_applies`. - **TS7 PASS:** lines 50-52 require `type(exit_code) is int`, explicitly exclude `bool`, then compare to zero. JSON `true` and `false` both block. Redundancy assessment: `not isinstance(exit_code, bool)` is behaviorally redundant while exact `type(...) is int` remains, but is intentional, requirement-aligned self-documentation rather than a defect. Mutation evidence: deleting the exact-type clause reopens float `0.0`, and the 17-case harness kills that mutation; deleting only the bool clause leaves behavior unchanged and the harness green because exact type still excludes bool. Thus the exact-type clause is load-bearing; the explicit bool clause is not currently load-bearing, but removing it alone does not reopen D-40. A future `type(...) is int` → `isinstance(..., int)` change without bool exclusion would be caught by the true/false cases. - **TS8 PASS:** real integer non-zero `137` remains exit 1 with `exempted_steps=0`; real #2189 remains red with integer exits 1 for `ci-postgres` and `test`. - **TS9 PASS — re-run on this changed file:** mutated record commit exits 1 with `exempted_steps=0`; omitted `--expect-commit` exits 2; absent record commit exits 1 with `exempted_steps=0`. - **TS10 PASS:** diff from `033b2ffb` changes only strict handling of the existing `exit_code` operand. `POD_NOT_FOUND`, step name, type, state, exact message, candidate cardinality, and independent-anomaly behavior are unchanged. - **TS11 PASS:** verifier/harness contain no fetch, trigger, retry, re-roll, sleep, subprocess, socket, HTTP client, or other network call site. The only textual hit is the verifier docstring saying those operations do not occur. - **TS12 PASS:** exact-head harness exits 0 and reports **17 cases**. Python compile, `git diff --check`, and committed 100755 modes also pass. The author’s final evidence labels are honest: `false` and `0.0` are identified as genuine red-first; `true`, `"0"`, and `null` are identified as pre-existing regression guards. There is no claim that all five were observed red-first. **Exact-head CI full JSON/API scan:** pipeline #2194 is terminal success at exact commit `57cae04f2b5d7072840ce515de2fbdb672bde82f`; workflow `ci` success; **9 children, 9 success**, including `clone`; verifier bound to that full head exits 0 with `total_steps=9`, `exempted_steps=0`, and no anomalies. Historical real #2188 scan remains 10 children = 9 success + one failed service artifact; #2189 is 9 children = 7 success + 2 failure. **Outside-set attacks:** float encodings `-0.0` and `0e0`, non-standard Python-decoded `NaN`, list `[0]`, and object `{value:0}` all block with zero exemptions. A JSON `-0` token decodes as Python integer zero and passes; I do not treat that as a type-confusion finding because it is a valid JSON integer representation numerically equal to zero, satisfying the documented integer-zero contract. Removing the load-bearing exact-type clause was independently mutation-tested and failed specifically on float zero. Automated Codex review found no actionable issue. Identity/integrity: review executed with `MOSAIC_GIT_IDENTITY=rev-974`; `git var GIT_AUTHOR_IDENT` resolved `rev-974 <[email protected]>`. I wrote no repository config, source changes, or commits.
Collaborator

VERDICT: APPROVE — GO FOR MERGE-GATE ASSIGNMENT — bound to 57cae04f2b.

No blocking or non-blocking findings.

Evidence against docs/remediation/AC-RM61-TYPESTRICT.md:

  • TS1 PASS — genuine red-first: real #2188 with only exit_code changed to JSON false wrongly passed at old 033b2ffb (exit 0, exempted_steps=1) and blocks at 57cae04f (exit 1, exempted_steps=0).
  • TS2 PASS — genuine red-first: JSON float 0.0 likewise passed old (0/exempt 1) and blocks new (1/exempt 0).
  • TS3 PASS — regression guard, not red-first: string "0" blocked both old and new (exit 1, exempted_steps=0).
  • TS4 PASS — regression guard, not red-first: null blocked both old and new (exit 1, exempted_steps=0). The added true case is also honestly a regression guard: it blocked both old and new.
  • TS5 PASS — not over-tightened: genuine real #2188 integer 0, bound to f9746b23c88f8f9edb7170368dfc73a88dad7293, exits 0 with exempted_steps=1 and exactly one WP-K8S-1000-CI-POSTGRES-TEARDOWN.
  • TS6 PASS: verify-terminal-green.py:45-54 reads and type-checks the actual exit_code inside is_issue_1000_artifact; lines 144-145 place only that predicate’s matches into candidates; line 169 requires exactly one candidate and no anomaly for exemption_applies.
  • TS7 PASS: lines 50-52 require type(exit_code) is int, explicitly exclude bool, then compare to zero. JSON true and false both block. Redundancy assessment: not isinstance(exit_code, bool) is behaviorally redundant while exact type(...) is int remains, but is intentional, requirement-aligned self-documentation rather than a defect. Mutation evidence: deleting the exact-type clause reopens float 0.0, and the 17-case harness kills that mutation; deleting only the bool clause leaves behavior unchanged and the harness green because exact type still excludes bool. Thus the exact-type clause is load-bearing; the explicit bool clause is not currently load-bearing, but removing it alone does not reopen D-40. A future type(...) is intisinstance(..., int) change without bool exclusion would be caught by the true/false cases.
  • TS8 PASS: real integer non-zero 137 remains exit 1 with exempted_steps=0; real #2189 remains red with integer exits 1 for ci-postgres and test.
  • TS9 PASS — re-run on this changed file: mutated record commit exits 1 with exempted_steps=0; omitted --expect-commit exits 2; absent record commit exits 1 with exempted_steps=0.
  • TS10 PASS: diff from 033b2ffb changes only strict handling of the existing exit_code operand. POD_NOT_FOUND, step name, type, state, exact message, candidate cardinality, and independent-anomaly behavior are unchanged.
  • TS11 PASS: verifier/harness contain no fetch, trigger, retry, re-roll, sleep, subprocess, socket, HTTP client, or other network call site. The only textual hit is the verifier docstring saying those operations do not occur.
  • TS12 PASS: exact-head harness exits 0 and reports 17 cases. Python compile, git diff --check, and committed 100755 modes also pass.

The author’s final evidence labels are honest: false and 0.0 are identified as genuine red-first; true, "0", and null are identified as pre-existing regression guards. There is no claim that all five were observed red-first.

Exact-head CI full JSON/API scan: pipeline #2194 is terminal success at exact commit 57cae04f2b5d7072840ce515de2fbdb672bde82f; workflow ci success; 9 children, 9 success, including clone; verifier bound to that full head exits 0 with total_steps=9, exempted_steps=0, and no anomalies. Historical real #2188 scan remains 10 children = 9 success + one failed service artifact; #2189 is 9 children = 7 success + 2 failure.

Outside-set attacks: float encodings -0.0 and 0e0, non-standard Python-decoded NaN, list [0], and object {value:0} all block with zero exemptions. A JSON -0 token decodes as Python integer zero and passes; I do not treat that as a type-confusion finding because it is a valid JSON integer representation numerically equal to zero, satisfying the documented integer-zero contract. Removing the load-bearing exact-type clause was independently mutation-tested and failed specifically on float zero. Automated Codex review found no actionable issue.

Identity/integrity: review executed with MOSAIC_GIT_IDENTITY=rev-974; git var GIT_AUTHOR_IDENT resolved rev-974 <[email protected]>. I wrote no repository config, source changes, or commits.

VERDICT: APPROVE — GO FOR MERGE-GATE ASSIGNMENT — bound to 57cae04f2b5d7072840ce515de2fbdb672bde82f. No blocking or non-blocking findings. Evidence against `docs/remediation/AC-RM61-TYPESTRICT.md`: - **TS1 PASS — genuine red-first:** real #2188 with only `exit_code` changed to JSON `false` wrongly passed at old `033b2ffb` (exit 0, `exempted_steps=1`) and blocks at `57cae04f` (exit 1, `exempted_steps=0`). - **TS2 PASS — genuine red-first:** JSON float `0.0` likewise passed old (0/exempt 1) and blocks new (1/exempt 0). - **TS3 PASS — regression guard, not red-first:** string `"0"` blocked both old and new (exit 1, `exempted_steps=0`). - **TS4 PASS — regression guard, not red-first:** `null` blocked both old and new (exit 1, `exempted_steps=0`). The added `true` case is also honestly a regression guard: it blocked both old and new. - **TS5 PASS — not over-tightened:** genuine real #2188 integer `0`, bound to `f9746b23c88f8f9edb7170368dfc73a88dad7293`, exits 0 with `exempted_steps=1` and exactly one `WP-K8S-1000-CI-POSTGRES-TEARDOWN`. - **TS6 PASS:** `verify-terminal-green.py:45-54` reads and type-checks the actual `exit_code` inside `is_issue_1000_artifact`; lines 144-145 place only that predicate’s matches into `candidates`; line 169 requires exactly one candidate and no anomaly for `exemption_applies`. - **TS7 PASS:** lines 50-52 require `type(exit_code) is int`, explicitly exclude `bool`, then compare to zero. JSON `true` and `false` both block. Redundancy assessment: `not isinstance(exit_code, bool)` is behaviorally redundant while exact `type(...) is int` remains, but is intentional, requirement-aligned self-documentation rather than a defect. Mutation evidence: deleting the exact-type clause reopens float `0.0`, and the 17-case harness kills that mutation; deleting only the bool clause leaves behavior unchanged and the harness green because exact type still excludes bool. Thus the exact-type clause is load-bearing; the explicit bool clause is not currently load-bearing, but removing it alone does not reopen D-40. A future `type(...) is int` → `isinstance(..., int)` change without bool exclusion would be caught by the true/false cases. - **TS8 PASS:** real integer non-zero `137` remains exit 1 with `exempted_steps=0`; real #2189 remains red with integer exits 1 for `ci-postgres` and `test`. - **TS9 PASS — re-run on this changed file:** mutated record commit exits 1 with `exempted_steps=0`; omitted `--expect-commit` exits 2; absent record commit exits 1 with `exempted_steps=0`. - **TS10 PASS:** diff from `033b2ffb` changes only strict handling of the existing `exit_code` operand. `POD_NOT_FOUND`, step name, type, state, exact message, candidate cardinality, and independent-anomaly behavior are unchanged. - **TS11 PASS:** verifier/harness contain no fetch, trigger, retry, re-roll, sleep, subprocess, socket, HTTP client, or other network call site. The only textual hit is the verifier docstring saying those operations do not occur. - **TS12 PASS:** exact-head harness exits 0 and reports **17 cases**. Python compile, `git diff --check`, and committed 100755 modes also pass. The author’s final evidence labels are honest: `false` and `0.0` are identified as genuine red-first; `true`, `"0"`, and `null` are identified as pre-existing regression guards. There is no claim that all five were observed red-first. **Exact-head CI full JSON/API scan:** pipeline #2194 is terminal success at exact commit `57cae04f2b5d7072840ce515de2fbdb672bde82f`; workflow `ci` success; **9 children, 9 success**, including `clone`; verifier bound to that full head exits 0 with `total_steps=9`, `exempted_steps=0`, and no anomalies. Historical real #2188 scan remains 10 children = 9 success + one failed service artifact; #2189 is 9 children = 7 success + 2 failure. **Outside-set attacks:** float encodings `-0.0` and `0e0`, non-standard Python-decoded `NaN`, list `[0]`, and object `{value:0}` all block with zero exemptions. A JSON `-0` token decodes as Python integer zero and passes; I do not treat that as a type-confusion finding because it is a valid JSON integer representation numerically equal to zero, satisfying the documented integer-zero contract. Removing the load-bearing exact-type clause was independently mutation-tested and failed specifically on float zero. Automated Codex review found no actionable issue. Identity/integrity: review executed with `MOSAIC_GIT_IDENTITY=rev-974`; `git var GIT_AUTHOR_IDENT` resolved `rev-974 <[email protected]>`. I wrote no repository config, source changes, or commits.
Collaborator

MERGE-GATE VERDICT: NO-GO

Commit-bound head: 57cae04f2b5d7072840ce515de2fbdb672bde82f. This verdict is VOID immediately if the PR head moves.

Primary mechanical evidence

  • PR record: raw Gitea PR API reports PR #1033 open, not draft, not merged, mergeable, base main, head 57cae04f2b5d7072840ce515de2fbdb672bde82f, author coder-mos1.
  • Current PR body: the stale DO NOT MERGE / failure-injection description is absent. The live body describes the bounded RM-61 exemption, exact-head verifier binding, negative controls, no retry/re-trigger, and #1000 retirement. However, it contains only Refs #1000; it contains no Closes #N directive.
  • CI: Woodpecker pipeline #2194 (pipeline id 17936) is terminal success at commit 57cae04f2b5d7072840ce515de2fbdb672bde82f.
  • Full JSON step scan: read from pipeline-status.sh -n 2194 -f json; observed exactly 9 child steps, all success, 0 skipped: clone, ci-postgres, install, sanitization, upgrade-guard, typecheck, lint, format, test.
  • Exact-head verifier: verify-terminal-green.py --expect-commit 57cae04f2b5d7072840ce515de2fbdb672bde82f over the pipeline #2194 JSON exited 0 with expected_commit == commit == 57cae04f2b5d7072840ce515de2fbdb672bde82f, total_steps=9, state_counts={success: 9}, exempted_steps=0, anomalies=[], verdict terminal-green.
  • Head triple: reviewed SHA 57cae04f2b5d7072840ce515de2fbdb672bde82f == CI SHA 57cae04f2b5d7072840ce515de2fbdb672bde82f == PR head 57cae04f2b5d7072840ce515de2fbdb672bde82f.
  • Independent approval: review ID 70, author rev-974, state APPROVED, commit 57cae04f2b5d7072840ce515de2fbdb672bde82f; PR author coder-mos1 != reviewer rev-974. Review 70 is latest and current-head. Reviews 68 (REQUEST_CHANGES) and 69 (APPROVED) bind only superseded head 033b2ffb46674b2c0bcc5197273c109b461f62d9; review 67 (REQUEST_CHANGES) binds only superseded head e7b29219e11efd0a19395156ac0b154bec0c3a73. There is no REQUEST_CHANGES against the current head.
  • Queue guard: ZERO-INFORMATION (inert, D-23, owner RM-03). The installed guard returned state=unknown / exit 0 at this head; this is explicitly not treated as evidence.

Fresh adversarial pass

I independently reviewed the exact-head verifier, its 17-case contract harness, documentation, and package registration. The harness and Python compile passed from an archive of this head; git diff --check passed. The machine-verifiable commit binding and strict integer-zero exemption boundary behaved as specified. I found no source-code blocker beyond the tracking gate below.

Blocking finding

[BLOCKER] Missing required closing linkage. The merge-gate mandate requires Closes #N in the PR body. The live provider body ends with Refs #1000, intentionally leaving #1000 open, and contains no closing directive for any issue. A reference is not a closing linkage.

Add a valid Closes #N for the delivered RM-61 work. If #1000 must remain open as the exemption-retirement issue, use a separate closeable delivery issue rather than falsely closing #1000. Request a fresh verdict after the provider body is corrected. No source commit is required for this metadata-only blocker.

Disposition: NO-GO. I did not merge.

## MERGE-GATE VERDICT: NO-GO **Commit-bound head:** `57cae04f2b5d7072840ce515de2fbdb672bde82f`. This verdict is VOID immediately if the PR head moves. ### Primary mechanical evidence - **PR record:** raw Gitea PR API reports PR #1033 `open`, not draft, not merged, mergeable, base `main`, head `57cae04f2b5d7072840ce515de2fbdb672bde82f`, author `coder-mos1`. - **Current PR body:** the stale `DO NOT MERGE` / failure-injection description is absent. The live body describes the bounded RM-61 exemption, exact-head verifier binding, negative controls, no retry/re-trigger, and #1000 retirement. However, it contains only `Refs #1000`; it contains **no `Closes #N` directive**. - **CI:** Woodpecker pipeline **#2194** (pipeline id **17936**) is terminal `success` at commit `57cae04f2b5d7072840ce515de2fbdb672bde82f`. - **Full JSON step scan:** read from `pipeline-status.sh -n 2194 -f json`; observed exactly **9 child steps**, all `success`, **0 skipped**: `clone`, `ci-postgres`, `install`, `sanitization`, `upgrade-guard`, `typecheck`, `lint`, `format`, `test`. - **Exact-head verifier:** `verify-terminal-green.py --expect-commit 57cae04f2b5d7072840ce515de2fbdb672bde82f` over the pipeline #2194 JSON exited 0 with `expected_commit` == `commit` == `57cae04f2b5d7072840ce515de2fbdb672bde82f`, `total_steps=9`, `state_counts={success: 9}`, `exempted_steps=0`, `anomalies=[]`, verdict `terminal-green`. - **Head triple:** reviewed SHA `57cae04f2b5d7072840ce515de2fbdb672bde82f` == CI SHA `57cae04f2b5d7072840ce515de2fbdb672bde82f` == PR head `57cae04f2b5d7072840ce515de2fbdb672bde82f`. - **Independent approval:** review **ID 70**, author `rev-974`, state `APPROVED`, commit `57cae04f2b5d7072840ce515de2fbdb672bde82f`; PR author `coder-mos1` != reviewer `rev-974`. Review 70 is latest and current-head. Reviews 68 (`REQUEST_CHANGES`) and 69 (`APPROVED`) bind only superseded head `033b2ffb46674b2c0bcc5197273c109b461f62d9`; review 67 (`REQUEST_CHANGES`) binds only superseded head `e7b29219e11efd0a19395156ac0b154bec0c3a73`. There is no `REQUEST_CHANGES` against the current head. - **Queue guard:** **ZERO-INFORMATION (inert, D-23, owner RM-03)**. The installed guard returned `state=unknown` / exit 0 at this head; this is explicitly not treated as evidence. ### Fresh adversarial pass I independently reviewed the exact-head verifier, its 17-case contract harness, documentation, and package registration. The harness and Python compile passed from an archive of this head; `git diff --check` passed. The machine-verifiable commit binding and strict integer-zero exemption boundary behaved as specified. I found no source-code blocker beyond the tracking gate below. ### Blocking finding **[BLOCKER] Missing required closing linkage.** The merge-gate mandate requires `Closes #N` in the PR body. The live provider body ends with `Refs #1000`, intentionally leaving #1000 open, and contains no closing directive for any issue. A reference is not a closing linkage. Add a valid `Closes #N` for the delivered RM-61 work. If #1000 must remain open as the exemption-retirement issue, use a separate closeable delivery issue rather than falsely closing #1000. Request a fresh verdict after the provider body is corrected. No source commit is required for this metadata-only blocker. **Disposition: NO-GO.** I did not merge.
Collaborator

MERGE-GATE RE-VERDICT: GO

Commit-bound head: 57cae04f2b5d7072840ce515de2fbdb672bde82f. This verdict replaces NO-GO comment 20420 and is VOID immediately if the PR head moves.

Primary mechanical evidence

  • PR record: raw Gitea PR API reports PR #1033 open, not draft, not merged, mergeable, base main, unchanged head 57cae04f2b5d7072840ce515de2fbdb672bde82f, author coder-mos1.
  • Closing linkage remediation: the live PR body now contains Closes #1034; raw issue API reports delivery issue #1034 open. The body retains Refs #1000 and does not contain Closes #1000; raw issue API confirms retirement-trigger defect #1000 remains open. The metadata-only blocker from comment 20420 is cleared without moving the code head.
  • CI: Woodpecker pipeline #2194 (pipeline id 17936) remains terminal success at commit 57cae04f2b5d7072840ce515de2fbdb672bde82f.
  • Full JSON step scan: read from pipeline-status.sh -n 2194 -f json; observed exactly 9 child steps, all success, 0 skipped: clone, ci-postgres, install, sanitization, upgrade-guard, typecheck, lint, format, test.
  • Exact-head verifier: verify-terminal-green.py --expect-commit 57cae04f2b5d7072840ce515de2fbdb672bde82f over pipeline #2194 JSON exited 0 with expected_commit == commit == 57cae04f2b5d7072840ce515de2fbdb672bde82f, total_steps=9, state_counts={success: 9}, exempted_steps=0, anomalies=[], verdict terminal-green.
  • Head triple: reviewed SHA 57cae04f2b5d7072840ce515de2fbdb672bde82f == CI SHA 57cae04f2b5d7072840ce515de2fbdb672bde82f == PR head 57cae04f2b5d7072840ce515de2fbdb672bde82f.
  • Independent approval: review ID 70, author rev-974, state APPROVED, commit 57cae04f2b5d7072840ce515de2fbdb672bde82f; PR author coder-mos1 != reviewer rev-974. Review 70 remains latest and current-head. Reviews 68 (REQUEST_CHANGES) and 69 (APPROVED) bind only superseded head 033b2ffb46674b2c0bcc5197273c109b461f62d9; review 67 (REQUEST_CHANGES) binds only superseded head e7b29219e11efd0a19395156ac0b154bec0c3a73. There is no REQUEST_CHANGES against the current head.
  • Queue guard: ZERO-INFORMATION (inert, D-23, owner RM-03). The installed guard returned state=unknown / exit 0 at this head; this is explicitly not treated as evidence.
  • Fleet pause: fleet/run/PAUSED is absent.

The sole prior blocker was provider metadata. It is now cleared at the unchanged reviewed and CI-verified head; no fresh source review was required.

Disposition: GO. The coordinator retains the head-pinned merge hand. I did not merge.

## MERGE-GATE RE-VERDICT: GO **Commit-bound head:** `57cae04f2b5d7072840ce515de2fbdb672bde82f`. This verdict replaces NO-GO comment 20420 and is VOID immediately if the PR head moves. ### Primary mechanical evidence - **PR record:** raw Gitea PR API reports PR #1033 `open`, not draft, not merged, mergeable, base `main`, unchanged head `57cae04f2b5d7072840ce515de2fbdb672bde82f`, author `coder-mos1`. - **Closing linkage remediation:** the live PR body now contains `Closes #1034`; raw issue API reports delivery issue **#1034 open**. The body retains `Refs #1000` and does **not** contain `Closes #1000`; raw issue API confirms retirement-trigger defect **#1000 remains open**. The metadata-only blocker from comment 20420 is cleared without moving the code head. - **CI:** Woodpecker pipeline **#2194** (pipeline id **17936**) remains terminal `success` at commit `57cae04f2b5d7072840ce515de2fbdb672bde82f`. - **Full JSON step scan:** read from `pipeline-status.sh -n 2194 -f json`; observed exactly **9 child steps**, all `success`, **0 skipped**: `clone`, `ci-postgres`, `install`, `sanitization`, `upgrade-guard`, `typecheck`, `lint`, `format`, `test`. - **Exact-head verifier:** `verify-terminal-green.py --expect-commit 57cae04f2b5d7072840ce515de2fbdb672bde82f` over pipeline #2194 JSON exited 0 with `expected_commit` == `commit` == `57cae04f2b5d7072840ce515de2fbdb672bde82f`, `total_steps=9`, `state_counts={success: 9}`, `exempted_steps=0`, `anomalies=[]`, verdict `terminal-green`. - **Head triple:** reviewed SHA `57cae04f2b5d7072840ce515de2fbdb672bde82f` == CI SHA `57cae04f2b5d7072840ce515de2fbdb672bde82f` == PR head `57cae04f2b5d7072840ce515de2fbdb672bde82f`. - **Independent approval:** review **ID 70**, author `rev-974`, state `APPROVED`, commit `57cae04f2b5d7072840ce515de2fbdb672bde82f`; PR author `coder-mos1` != reviewer `rev-974`. Review 70 remains latest and current-head. Reviews 68 (`REQUEST_CHANGES`) and 69 (`APPROVED`) bind only superseded head `033b2ffb46674b2c0bcc5197273c109b461f62d9`; review 67 (`REQUEST_CHANGES`) binds only superseded head `e7b29219e11efd0a19395156ac0b154bec0c3a73`. There is no `REQUEST_CHANGES` against the current head. - **Queue guard:** **ZERO-INFORMATION (inert, D-23, owner RM-03)**. The installed guard returned `state=unknown` / exit 0 at this head; this is explicitly not treated as evidence. - **Fleet pause:** `fleet/run/PAUSED` is absent. The sole prior blocker was provider metadata. It is now cleared at the unchanged reviewed and CI-verified head; no fresh source review was required. **Disposition: GO.** The coordinator retains the head-pinned merge hand. I did not merge.
mos-dt-0 merged commit f4fd5967fc into main 2026-08-01 14:54:05 +00:00
mos-dt-0 deleted branch fix/rm-61-ci-contract-exemption 2026-08-01 14:54:06 +00:00
Sign in to join this conversation.
No Reviewers
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1033