docs(register): C-340 and C-341 — two findings that fail green - #418
Merged
Conversation
/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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
/register-riskon 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 leftsquasharmed on adevelopment→mainpromotion. 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 readingauto_merge.merge_methodback.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 pushreported success. The only signal wascommits=1contradicting 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
mainwould 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 pushsucceeds;gh pr mergeexits 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
numpy/pyarrow/zarrfloors vs. their locks:566) as its open residualgh2.4.0 lacking flagsVerification
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.shexit 0