Event names are checked now, per manifest and across the catalogue
Issue 127 stood because nothing compared the two halves. Every manifest was well-formed on its own and every derivation correct on its own, and no cross-module subscription in the mesh matched anything — a subscription that matches nothing is not an error, it is silence. Two checks, because the mistake is possible at two scales. Per manifest: an event is a local name, and `module.` is refused with the name to write instead. A module emitting under what reads as another module's name is refused too, pointing at the seat, where a name outlives whoever holds it. Across the catalogue: where a consumed event's emitter is present, it must emit that event. It cannot demand a live emitter for everything — a module lives in its own repository and may be installed long before the one whose events it wants — so the rule is narrower and still catches this. It found two real dangling subscriptions the moment it ran. Wildcards were undecided and two manifests needed them: `*` is one name and `**` is the rest, spelled the mesh's way and derived to `>` here and `#` on the old bus. A manifest naming either would stop being true when the wire changed, which is the whole reason names are local. And the field documentation taught the old form, examples included — which is why the drift was uniform across 37 manifests rather than scattered. Nobody was guessing; everybody followed the comment.
This commit is contained in:
@@ -88,8 +88,8 @@ func declaredFor(m catalogue.Manifest, seats map[string]catalogue.SeatDeclaratio
|
||||
Serves: m.Tools,
|
||||
}
|
||||
for _, c := range m.Claims {
|
||||
// A seat the mesh defines for itself declares no protocol, so holding one grants nothing
|
||||
// here — which is right: those seats say who does a job, not who may say what.
|
||||
// A seat the mesh defines for itself carries no protocol, so holding one grants nothing here:
|
||||
// those seats say who does a job, not who may say what.
|
||||
if s, declaredSomewhere := seats[c.Name]; declaredSomewhere {
|
||||
d.Holds = append(d.Holds, asSeat(s))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user