Repository navigation
ci: main runs to a verdict, and staticcheck reads the filter every other tier reads (GDK-2003, GDK-2044) - #109
Merged
Merged
Conversation
…her tier reads (GDK-2003, GDK-2044) Three things, all on the billable half. cancel-in-progress applied to every ref, so a push that overtook another left a main commit with no verdict at all — "a push is not the end, CI green is the end" broken at the source. Only PR heads cancel now; main and workflow_dispatch run to a conclusion. The staticcheck job was the last inline input filter in this file, and its regex carried ^desktop/, so one line of desktop/README.md woke the 335 s GOOS matrix. It reads tools/ci-filter.sh now — but under its own subject, not `go`: tools/staticcheck.sh analyses the desktop module too, and the go table carves desktop/ out, so reusing it would have skipped a desktop/main.go push and hidden a Go change from a gate. That inverse is the row the test pins hardest. The pinned binary is a pure function of (version, OS, arch, Go toolchain) and is cached whole, with no restore-keys: a prefix hit could restore a binary built by another toolchain, and the safe failure here is a miss, which is today's behaviour. The mobile subject's web rows had rotted the other way (GDK-2044). They named lib/i18n/ and lib/terminal/ while the phone imports 24 modules out of web/src/lib — view-config, issue-group, keyboard, adf, person-match and the rest — so a push touching only web/src/lib/view-config.ts skipped the Mobile job over a file the phone reads. That is the one direction a filter must never fail in: CI green over a broken phone. The row is the directory now, and ci-filter-test.sh derives the phone's import set from its own source and fails on anything the table misses, so narrowing it later is red rather than silent. An enumeration is what rotted the first time. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Owner
Author
|
Landed on main as d42c54c (fast-forward). Closing the PR — from here this repo's work goes straight to main. AI-authored comment. |
This branch was successfully deployed
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.
Three things on the billable half of CI, plus one the review found.
main runs to a verdict (GDK-2003).
cancel-in-progressapplied to every ref, so a push that overtook another left a main commit with no verdict at all. Only PR heads cancel now.Staticcheck reads the filter (GDK-2003). It was the last inline input filter in the workflow, and its regex carried
^desktop/— one line ofdesktop/README.mdwoke the 335 s GOOS matrix. It usestools/ci-filter.shnow, under its own subject rather thango:tools/staticcheck.shanalyses the desktop module too, and thegotable carvesdesktop/out, so reusing it would have skipped adesktop/main.gopush and hidden a Go change from a gate.ci-filter-test.shpins that inverse hardest.The pinned binary is cached (GDK-2003). Keyed on (version, OS, arch, Go toolchain), no
restore-keys: a prefix hit could restore a binary built by another toolchain, and a miss is today's behaviour.The mobile subject had rotted the other way (GDK-2044). It named
lib/i18n/andlib/terminal/while the phone imports 24 modules out ofweb/src/lib—view-config,issue-group,keyboard,adf,person-matchand the rest. A push touching onlyweb/src/lib/view-config.tsskipped the Mobile job over a file the phone reads: CI green over a broken phone, the one direction a filter must never fail in. The row is the directory now, andci-filter-test.shderives the phone's import set from its own source and fails on anything the table misses — an enumeration is what rotted the first time.FAIL-first, on the pre-change tables:
desktop/README.mdran staticcheck; ten realweb/imports were uncovered by the mobile subject.Gates:
ci-filter-test.sh,staticcheck.sh --self-test,audit-test.sh,doc-checks.sh, YAML parse — all green. This is a PR because the change is the workflow itself; the verdict has to land on the branch.🤖 Generated with Claude Code