Bound a consumer's identity by the provision it requires (hq issue 263)

The one global 20-character bound made every consumer pay an object
store's key length, even for provisions that keep no name, and a single
overflow refused the provider's whole declaration. An offer now states
its own bound (identity: {max, in} or false); unsaid, a provider told its
consumers keeps 20 and one told nothing keeps none. module check judges
every identity on the longest machine name before merge, and a provider
leaves an overflowing consumer out of its grants and composes, with the
consumer named by push, plan and status (ADR 0225).
This commit is contained in:
jochen
2026-10-06 02:16:20 +02:00
parent e096b4595a
commit 6d620f77c3
15 changed files with 784 additions and 41 deletions
+4
View File
@@ -679,6 +679,10 @@ type answers struct {
// failing is every consumer a provider says it keeps failing (novox/hq ADR 0224): a provider's
// journal was the only place that said so for a day (04-ISSUES/179).
failing []inventory.ProviderStanding
// overflowing is every module whose identity overflows the bound of a provision it requires
// (novox/hq ADR 0225): its provider leaves it out of the grants and composes everything else, so
// this is the one place it is said across the mesh. Not well while there is any.
overflowing []catalogue.Overflow
}
// heldBy is every artifact this mesh has built, for a build that may need one as its base.