F3: mesh-build-go and mesh-build-node follow the drops other holders write, and a module with no watch says so (ADR 0664 §4, issue 1748 review 1)

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-09 23:42:13 +01:00
parent 1948da9cb4
commit 6a29e41175
6 changed files with 34 additions and 0 deletions
@@ -51,6 +51,7 @@ func main() {
Pauses: stdio.State(sdkstep.PausesState).Put,
ReadPauses: readOf(stdio.State(sdkstep.PausesState)),
ForgetPause: stdio.State(sdkstep.PausesState).Delete,
WatchPauses: stdio.State(sdkstep.PausesState).Watch,
ReadToolchainsState: readOf(stdio.State(seat.StateToolchains)),
Work: WorkDir,
Run: dforgekey.ExecRunnerClean(0),
@@ -228,3 +228,15 @@ func TestParseNodeVersion(t *testing.T) {
t.Errorf("accepted a text that is not `node --version`'s")
}
}
// ADR 0664 §4 (issue 1748, review 1): the module follows the drops other holders write in the shared pauses state, or a drop
// served by another node would never end a step running here. main wires the watch.
func TestMainWiresTheWatchOfTheDrops(t *testing.T) {
raw, err := os.ReadFile("main.go")
if err != nil {
t.Fatal(err)
}
if !strings.Contains(string(raw), "WatchPauses:") {
t.Error("main.go does not set Module.WatchPauses: a drop written by another holder would not end a running step")
}
}