Give the build verb the command's other two shapes, so a changed base or a source that moved can be rebuilt through the console
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered

The verb took only a repository; build --on <module> and build --behind were reachable only through the generic command verb. Each shape is one per call, and a second beside it is refused as passed over.
This commit is contained in:
jochen
2026-10-08 01:37:30 +02:00
parent 5ddc59cd32
commit 6faf701656
5 changed files with 119 additions and 10 deletions
+13 -2
View File
@@ -694,8 +694,19 @@ func (a *verbArguments) commandLine() ([]string, error) {
}
return []string{"module", "issue", str("module"), "--node", str("node")}, nil
case "build":
if err := need("repository"); err != nil {
return nil, err
// The command's three shapes (`build --on`, `build --behind`, `build <repository>`), one per
// call: each branch reads only its own argument, so another given beside it is refused as
// passed over rather than dropped. Asked and not waited for, the same as a single build.
if b := str("on"); b != "" {
return []string{"build", "--on", b, "--wait", "0"}, nil
}
if on("behind") {
return []string{"build", "--behind", "--wait", "0"}, nil
}
if a.given["repository"] == "" {
// No shape named: the command says its usage, which names all three — the answer the
// caller needs, and the same as `rotate` given neither of its shapes.
return []string{"build"}, nil
}
// Not waited for: a tool call cannot hold a connection for the minutes a build takes; the
// daemon takes the outcome in when it comes and the id follows the build (issue 176). A