Say what each verb replaces, so the agent is pointed at it instead of a shell command (hq ADR 0245)
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 superseded: a newer delivery to the same trunk took over its walk
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 superseded: a newer delivery to the same trunk took over its walk
A seat's verb names the shell commands it is the mesh's way to do, and a module says it for its own tools in its manifest; the tools verb and module list --json carry both, for the mesh MCP server's search, the agent's instructions and the guard on its shell.
This commit is contained in:
@@ -144,6 +144,23 @@ func TestToolsAnswersTheSeatsRecords(t *testing.T) {
|
||||
if !found {
|
||||
t.Fatal("the mesh-controller seat is not in the listing")
|
||||
}
|
||||
// And what a verb replaces travels with it (novox/hq ADR 0245): the console and the agent's
|
||||
// instructions read it from here.
|
||||
var journal []string
|
||||
for _, s := range seats {
|
||||
if s["seat"] != catalogue.ServiceManagerSeat {
|
||||
continue
|
||||
}
|
||||
tools, _ := s["tools"].([]map[string]any)
|
||||
for _, tool := range tools {
|
||||
if tool["name"] == "journal" {
|
||||
journal, _ = tool["replaces"].([]string)
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(journal) == 0 || journal[0] != "journalctl" {
|
||||
t.Fatalf("the service manager's journal does not say it replaces journalctl: %v", journal)
|
||||
}
|
||||
}
|
||||
|
||||
// A JSON verb's answer is parsed from what the command wrote to standard output alone; a warning it
|
||||
|
||||
Reference in New Issue
Block a user