You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Fence: go.sum completeness across the multi-module tree (nobody's beat today — #975 class) #976
#975 exposed the class: a merge can leave importers' go.sum incomplete and main still passes every gate that runs, because go.sum completeness is currently nobody's beat — check-deps-sync.py checks go.mod Require sync only, CI is frozen, and per-PR verification runs the PR's touched modules, not every importer of a changed dependency surface.
Fence shape (proposal): extend the deps checker (or the local CI gate #955 is building) with a tree-wide go build ./… per module directory — any module dir failing to build against its own go.sum is red. Cheap (builds only), deterministic, and it is exactly the #975 repro.
Acceptance: a deliberately-stripped go.sum entry in any module makes the fence fail naming the module; the current tree passes.
Fence delivered — PR #985: tests/contract/check-gosum-completeness.sh probes every module under src/ with go build ./... from inside the module dir (GOWORK=off, -mod=readonly), ~2s warm for all 18, fails naming modules + quoting the missing-entry lines. Both negative controls proven: the hermetic --selftest (graph-derived victim dependency — the naive last-line strip was tried and did NOT fail, so the fixture derives its victim from go list -deps to stay rot-proof), and the live one — on current main it is RED on exactly merchant_types / upstream_detector / upstream_session_manager (the #975 breakage), per this mission's battery rule. Sequencing for the owner: land #975 first → this PR's lanes go green; either order proves the fence. Wired into release-check's deps leg + both test.yml twins' deps-and-imports (twins have pre-existing drift on main — noted in the PR, not touched). No merges performed.
Activity
Amperstrand commentedon Oct 17, 2026
Fence delivered — PR #985:
tests/contract/check-gosum-completeness.shprobes every module under src/ withgo build ./...from inside the module dir (GOWORK=off, -mod=readonly), ~2s warm for all 18, fails naming modules + quoting the missing-entry lines. Both negative controls proven: the hermetic--selftest(graph-derived victim dependency — the naive last-line strip was tried and did NOT fail, so the fixture derives its victim fromgo list -depsto stay rot-proof), and the live one — on current main it is RED on exactly merchant_types / upstream_detector / upstream_session_manager (the #975 breakage), per this mission's battery rule. Sequencing for the owner: land #975 first → this PR's lanes go green; either order proves the fence. Wired into release-check's deps leg + both test.yml twins' deps-and-imports (twins have pre-existing drift on main — noted in the PR, not touched). No merges performed.fence: go.sum completeness across the multi-module tree (#976) (#985)