fix: a require-only consumer of a parameterless provision still asks (mint gap) #12

Merged
jschoubben merged 1 commits from fix/require-only-mint into main 2026-09-06 21:21:25 +00:00
Owner

A consumer that requires a provision whose serves names no consumer key (redis-cache, amqp) contributes no payload — but it still asks for it. ContributionsFrom keyed asks on contributions alone, so such a consumer's grant got From="" (read as withdrawn) and the provider never created its account. redis-cache consumers (e.g. baserow) were silently unprovisioned, tolerated only by their embedded fallback. Now a module asks iff it still requires the provision. Regression test added; full suite green.

Found by the lavinmq AMQP provider bed (given: [] for a require-only amqp consumer) and lab-proven green there. Same ADR-0048 credential-grant domain as the provider-seal-key gate.

https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF

A consumer that requires a provision whose `serves` names no consumer key (`redis-cache`, `amqp`) contributes no payload — but it still **asks** for it. `ContributionsFrom` keyed `asks` on contributions alone, so such a consumer's grant got `From=""` (read as withdrawn) and the provider **never created its account**. `redis-cache` consumers (e.g. baserow) were silently unprovisioned, tolerated only by their embedded fallback. Now a module asks iff it still `requires` the provision. Regression test added; full suite green. Found by the lavinmq AMQP provider bed (`given: []` for a require-only amqp consumer) and lab-proven green there. Same ADR-0048 credential-grant domain as the provider-seal-key gate. https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
jschoubben added 1 commit 2026-09-06 21:21:11 +00:00
A consumer that requires a provision whose serves names no consumer key (redis-cache, amqp)
contributes no payload, but it still ASKS for it. ContributionsFrom keyed 'asks' on
contributions alone, so such a consumer's grant got From='' — read as withdrawn — and the
provider never created its account. redis-cache consumers (e.g. baserow) were silently
unprovisioned, tolerated only by their embedded fallback. A module asks iff it still requires
the provision, whether or not it hands anything up. Regression test added.

Found by the lavinmq AMQP provider bed (given:[] for a require-only amqp consumer); fix
lab-proven green there.

Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
jschoubben merged commit 671fb4f8f3 into main 2026-09-06 21:21:25 +00:00
jschoubben deleted branch fix/require-only-mint 2026-09-06 21:21:26 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#12