Register the replay of issue 305 (hq ADR 0237) #62

Merged
mesh-admin merged 1 commits from replays/305-a-recheck-left-the-old-verdict-standing into main 2026-10-08 08:34:28 +00:00
2 changed files with 17 additions and 2 deletions
+2 -2
View File
@@ -128,11 +128,11 @@ func run(r replays.Replay, repos, at string, fixed bool) (string, string) {
return verdictOf(string(out), err, false)
}
mode := "-mod=vendor"
if _, err := os.Stat(filepath.Join(tree, "vendor")); err != nil {
if _, err := os.Stat(filepath.Join(tree, r.Module, "vendor")); err != nil {
mode = "-mod=mod"
}
cmd := exec.CommandContext(ctx, "go", "test", "-count=1", "-run", "^"+r.Test, r.Package)
cmd.Dir = tree
cmd.Dir = filepath.Join(tree, r.Module)
cmd.Env = append(os.Environ(), "GOFLAGS="+mode, "GOPRIVATE=git.novox.be")
out, err := cmd.CombinedOutput()
return verdictOf(string(out), err, r.Kind == replays.Gate)
+15
View File
@@ -67,6 +67,9 @@ type Replay struct {
Home, HomeRef string
// With is the other repositories the replay runs at their commits beside Repository's (Liveness).
With []Also
// Module is the directory of the Go module the replay runs in, within Repository, when that is not its
// root: a catalogue module is a Go module of its own. Package is relative to it; Files are not.
Module string
}
// Register is every replay, by incident.
@@ -151,6 +154,18 @@ var Register = []Replay{
"toolchain, and the layer passes only when every part does",
Package: "./internal/builder", Test: "TestARepositoryInTwoLanguagesIsCheckedInBoth",
Files: []string{"internal/builder/check_test.go"}},
// A recheck left the old verdict standing (2026-10-07): the forge keeps the newest status of each context
// on a head, and a recheck asks of the same head, so the old green let the pull request merge while the
// fresh check ran. A test in mesh-delivery, which asks the forge's holder (core) to put the merge check
// back to pending; the holder's own half is its TypeScript test.
{ID: "R305", Issue: 305, Kind: InRepository, Repository: "mesh-catalog", Fix: "74f912e",
What: "a pull request rechecked at 23:04 kept mesh/merge-gate and mesh/repo-check success from 16:59, " +
"and the forge would have merged it while its fresh check ran",
Asserts: "a recheck puts the head's merge check statuses back to pending before it asks the check, and " +
"is refused whole when the forge cannot be told",
Module: "modules/mesh-delivery", Package: "./cmd/mesh-delivery", Test: "TestARecheck",
Files: []string{"modules/mesh-delivery/cmd/mesh-delivery/recheck_test.go",
"modules/mesh-delivery/cmd/mesh-delivery/fakes_test.go"}},
// Not a core incident, and the first of its kind: a module's. The crash loop was found by a person
// reading the agent server's log for another reason (issue 268); research 032 measured it, and ADR
// 0240 makes the node-engine judge it and the gate fail it.