catalogue: deliver a keyless same-node provider's served facts #18

Merged
jschoubben merged 1 commits from feat/serve-here-keyless into main 2026-09-07 03:25:58 +00:00
Owner

A provider that answers a requirement on the same node and serves facts (a port) but mints no credential delivered nothing — the same-node branch created the delivering Needed only when brokered[want] (a mesh-scope, credentialed provider). A node-scope keyless provider (a local model server serving an endpoint) fell through, so the consumer's ${bound:...:port} file was refused. This adds an else if arm: when the same-node provider is not brokered but serves a non-empty set of facts, deliver them as a binding (no credential), with the loopback at fallback for a single-node/no-private-network deployment. The brokered path is byte-for-byte unchanged.

Needed by ADR 0055's node-answered model-access (the ollama local model). A new test reproduces the gap (fails when reverted) and asserts the keyless same-node endpoint is delivered; go test ./... all green.

A provider that answers a requirement on the same node and **serves facts** (a port) but mints **no credential** delivered nothing — the same-node branch created the delivering `Needed` only when `brokered[want]` (a mesh-scope, credentialed provider). A node-scope keyless provider (a local model server serving an endpoint) fell through, so the consumer's `${bound:...:port}` file was refused. This adds an `else if` arm: when the same-node provider is not brokered but serves a non-empty set of facts, deliver them as a binding (no credential), with the loopback `at` fallback for a single-node/no-private-network deployment. The brokered path is byte-for-byte unchanged. Needed by ADR 0055's node-answered model-access (the ollama local model). A new test reproduces the gap (fails when reverted) and asserts the keyless same-node endpoint is delivered; `go test ./...` all green.
jschoubben added 1 commit 2026-09-07 03:25:44 +00:00
A node-scope provider that answers a requirement on the same machine and
serves connection facts (a port) but mints no credential delivered
nothing to a co-located consumer. resolve.go only built the delivering
Needed when brokered[want] was set — true only for mesh-scope providers;
a node-scope keyless provider set local[want] instead and fell through,
so knownFor saw no binding and boundInto refused the consumer's
${bound:model-access:port} file.

Deliver the served facts as a need whenever the same-node answer serves a
non-empty set, with a loopback fallback for the address when the node is
off the private network — the reachability rule does not apply to two ends
on one machine. The brokered (credentialed, mesh-scope) path is untouched.

Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF
jschoubben merged commit 474382c141 into main 2026-09-07 03:25:58 +00:00
jschoubben deleted branch feat/serve-here-keyless 2026-09-07 03:25:59 +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#18