Skip to content

docs(register): C-340 and C-341 — two findings that fail green - #418

Merged
Polichinel merged 1 commit into
developmentfrom
docs/register-c340-c341
Aug 4, 2026
Merged

docs(register): C-340 and C-341 — two findings that fail green#418
Polichinel merged 1 commit into
developmentfrom
docs/register-c340-c341

Conversation

@Polichinel

Copy link
Copy Markdown
Contributor

/register-risk on the v1.11.0 close-out. Both findings were acted on during the session and never tracked.

C-340 — Auto-merge fails silently, two mechanisms (Tier 3)

1. The method silently does not change. gh pr merge --auto --<method> refuses to change the method on an already-armed PR and reports nothing. During v1.10.0 that left squash armed on a developmentmain promotion. A squash there rewrites the release SHAs and permanently breaks the ancestry the back-merge exists to maintain — and it would not have surfaced until a later release diffed against a base that never existed. Caught only by reading auto_merge.merge_method back.

2. Pushing to an already-merged branch orphans the work. #416 merged the instant CI went green; the next push landed on a branch with no open PR, and two pieces of work were simply not on development. git push reported success. The only signal was commits=1 contradicting a remembered second push.

Tier 3, not 2: no data or model-output impact, both recoverable. Not Tier 4: auto-merge is armed on every PR here, so both are live on every change, and mechanism 1's damage to main would be permanent.

C-341 — Deploy gates run only where someone types pytest (Tier 4)

The unexamined residual of C-320's own fix. Making gates skip-with-reason where CI cannot answer was right; the consequence — that they assure only whoever runs the suite at the right moment — was never looked at. Cost four hours of undetected divergence after v1.10.0, and had been silently true after every prior release. Partially mitigated by release-topology.yml; the rest remain local-only.

Why these two, together

Both fail green. git push succeeds; gh pr merge exits 0; a skipped test is not a red test. Same class as C-330's nightly no-op reporting success and C-337's lockfile frozen without an error — which is the pattern this whole week produced.

Skipped after dedup

Finding Reason
numpy/pyarrow/zarr floors vs. their locks Duplicate — already inside C-337 (:566) as its open residual
views-faoapi monitor observations Different repo's register
gh 2.4.0 lacking flags Resolved; residual is the operator's machine

Verification

339 → 341 IDs · 43 → 45 open · 0+2+12+25+6 = 45 · struck-through 109 unchanged · index 1723 < 8000 · header 1723 ≤ 3500 · all 13 register guards + 7 changelog guards green · full suite exit 0 · validate_docs.sh exit 0

/register-risk on the v1.11.0 close-out. Both were acted on during the
session and never tracked. The register is the gate between "found" and
"remembered", and memory is not a control.

C-340 (Tier 3) — AUTO-MERGE FAILS SILENTLY, TWO MECHANISMS.

  1. `gh pr merge --auto --<method>` refuses to change the method on an
     already-armed PR and reports nothing. During v1.10.0 that left
     `squash` armed on a development -> main promotion. A squash there
     rewrites the release SHAs and permanently breaks the ancestry the
     back-merge exists to maintain — and it would not have surfaced
     until a later release diffed against a base that never existed.
     Caught only by reading auto_merge.merge_method back. The GraphQL
     disable/enable pair does change it.

  2. Pushing a follow-up commit to a branch whose PR has already
     auto-merged orphans the work. #416 merged the instant CI went
     green; the next push landed on a branch with no open PR, and two
     pieces of work were simply not on development. `git push` reported
     success. The only signal was `commits=1` contradicting a remembered
     second push.

  Tier 3, not 2: no data or model-output impact, and both recoverable.
  Not Tier 4: auto-merge is armed on every PR here, so both are live on
  every change, and mechanism 1's damage to main would be permanent.

C-341 (Tier 4) — DEPLOY GATES RUN ONLY WHERE SOMEONE TYPES PYTEST.

  The unexamined residual of C-320's own fix. Making gates skip-with-
  reason where CI cannot answer was right; the consequence — that they
  now assure only whoever runs the suite at the right moment — was never
  looked at. It cost four hours of undetected divergence after v1.10.0
  and had been silently true after every prior release. Partially
  mitigated by release-topology.yml; the rest remain local-only.

Both entries name the property they share, which is why they are
registered rather than remembered: THEY FAIL GREEN. git push succeeds;
gh pr merge exits 0. Same class as C-330's nightly no-op reporting
success and C-337's lockfile frozen without an error.

Skipped after dedup, with reasons in the report: the numpy/pyarrow/zarr
floors (already inside C-337 at :566 as its open residual), the
views-faoapi monitor observations (different repo's register), and the
four-year-old gh (resolved; the residual is the operator's machine).

Verified: 339->341 IDs, 43->45 open, 0+2+12+25+6 = 45, struck-through
109 unchanged, index 1723 < 8000, header 1723 <= 3500, all 13 register
guards plus the 7 changelog guards green, full suite exit 0,
validate_docs.sh exit 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Polichinel
Polichinel enabled auto-merge (squash) August 4, 2026 04:15
@Polichinel
Polichinel merged commit 970d3ce into development Aug 4, 2026
5 checks passed
@Polichinel
Polichinel deleted the docs/register-c340-c341 branch August 4, 2026 04:30
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