The gate's module check notes a seat another module declares, which it was not given (hq issue 364)
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 gate passes only the manifests a change touches, so a module that starts using the operator channel
was refused for a declaration it could not see. Over every manifest it stays a refusal.
This commit is contained in:
jochen
2026-10-10 03:53:07 +02:00
parent 9517f590ac
commit 7b5c063cd3
4 changed files with 52 additions and 4 deletions
+10 -2
View File
@@ -230,6 +230,14 @@ type Shelf map[string]Manifest
//
// Run at registration, which is the last moment the mesh can still refuse: after it, a caller is
// bound to a seat and a refusal is an outage rather than a conversation.
// UndeclaredSeat ends the problem of a `uses` or a claim naming a seat no manifest given declares: over the whole
// catalogue (registration, the catalogue's own check) a refusal, and over some manifests alone a seat whose
// declaring module was not given (novox/hq issue 364).
const UndeclaredSeat = "which no module declares and the mesh does not define"
// IsUndeclaredSeat says whether a problem CatalogueProblems gave is a seat no manifest given declares.
func IsUndeclaredSeat(problem string) bool { return strings.HasSuffix(problem, UndeclaredSeat) }
func CatalogueProblems(shelf Shelf) []string {
var problems []string
@@ -282,7 +290,7 @@ func CatalogueProblems(shelf Shelf) []string {
for _, u := range m.Uses {
if !exists(u) {
problems = append(problems, fmt.Sprintf(
"%s uses the seat %q, which no module declares and the mesh does not define",
"%s uses the seat %q, "+UndeclaredSeat,
module, u))
}
}
@@ -290,7 +298,7 @@ func CatalogueProblems(shelf Shelf) []string {
for _, c := range m.Claims {
if !exists(c.Name) {
problems = append(problems, fmt.Sprintf(
"%s claims the seat %q, which no module declares and the mesh does not define",
"%s claims the seat %q, "+UndeclaredSeat,
module, c.Name))
continue
}