catalogue: a provider that names a provision and says nothing is not the answer

servedOnThisMachine stopped at the first module whose `serves` mentioned the
provision, even when that entry was empty and there was therefore no fact to give
a consumer. here() had always kept looking in that case, and a set where one
module names a provision without describing it and another describes it is exactly
where the difference shows. Restore the search.

Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
This commit is contained in:
2026-09-10 21:04:16 +02:00
parent 76fcbda9a7
commit e78c849002
+4 -1
View File
@@ -801,7 +801,10 @@ func (r Resolution) servedOnThisMachine(provision string, with Rendering) (map[s
}
serves := ServedOn(m, provision, with.Ports[m.Module])
if len(serves) == 0 {
return nil, false, nil
// It named the provision and said nothing about it, which is the same as not answering:
// there is no fact for a consumer to be given. Another module in the set may still have
// one, so keep looking rather than concluding from the first.
continue
}
settled, err := Settle(serves, with.Settings[m.Module])
if err != nil {