Skip to content

core/room (gossip): advertise delegable-grant candidates in peer-advert for request routing #87

Description

@Mearman

Parent: #77

wire-mesh has no central directory, so "a request bubbles up to whoever can grant it" can only ever reach a scope's structural root (the room owner, the group root) today -- there is no way for a requester to discover an intermediate delegate (someone holding a narrower, still-delegable grant) who could answer faster or with less load on the root. Deliberately left out of #77's initial batch as its own, bigger design question; filing it now that a design is settled.

Extend the gossip `peer-advert` extension (the same open extension bag already planned for presence/policy) with a structured field listing `(capability, scope, delegations-remaining)` tuples a peer is willing to field `capability-request`s for. A requester picks the best candidate it can actually see -- nearest, most permissive, whatever -- falling back to the scope's own structural root when nothing closer has been gossiped, mirroring the design's own already-adopted `resolved_by`/timeout/fallback shape rather than inventing a new escalation model.

Honest limit worth stating rather than glossing over: this is only ever as complete as gossip propagation allows -- a request can go unanswered by a nearer delegate not because none exists, but because it hasn't been gossiped yet. Same "detection with propagation delay" honesty already accepted elsewhere in the design (kick propagation, revocation timing), not a new kind of gap.

Blocked by #78 (the `capability-request`/`capability-grant-ok` primitive needs to exist before advertising who can answer one is useful).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions