Skip to content

id(serve): a bindings model — multiple listeners by flag and config #2145

Closed

Description

@dezren39

From the 2026-10-29 walkthrough of id serve --web, and Drew's direction on serving:

Today the web interface has exactly ONE listener: ServeOptions carries a single bind: IpAddr and port: u16 (serve.rs), used for the World Explorer, with --web-token required when binding non-loopback (web/security.rs). The demo had to be reached through an SSH tunnel purely because the listener was loopback-only. There is no way to describe a SET of listeners — by flags or by config — and no foundation for serving anything except the Explorer.

Wanted:

  • A bindings model for id serve: multiple listeners, each an (address, port) pair, declared by repeatable flags and/or the config file (the defaults.conf mechanism is the obvious home), with per-listener token policy following the existing non-loopback rule.
  • The Explorer remains the default content of a listener; what else a listener can serve is the program-as-website design (companion issue).
  • Binding failures (address in use, permission) fail loudly at startup with the listener identified — no silent unbound listeners (the walkthrough already hit one silent no-bind failure mode via the web cargo feature, noted on Serve stalls before printing node in test_world_module_shared_over_iroh_and_web_presentations #190).

Acceptance: a node can be launched with two listeners on different interfaces/ports from config alone, both answering, and the startup log lists every bound listener.

Activity

  1. added
    kind/featureNew feature or capability request
    task/triageQueue packet kind: verify, reproduce, and route this item
    source/humanFiled directly by a human
    priority/normalOrdinary priority (the default)
    queue/queuedHas a queued task in the Supabase agent queue
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    effort/mMedium: expected under 1 day of work
    on Oct 29, 2026
  2. developing-today commented on Oct 29, 2026

    @developing-today
    Contributor
  3. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 1, 2026
  4. 92 remaining items

  5. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  6. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · state: parked

  7. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — picked up
    Agent: repo-worker-code (OpenChamber scheduled lane)
    Session: ses_e5e6370a1afffe07nc8FpZx06a · queue task 5191
    Task: Revalidate #2145 implementation state before touching code.
    Fresh state at pickup: #2145 OPEN; Drew-owned PR #4118 OPEN implementing this exact task on queue/5191-2145-web-bindings. No code touched.

  8. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — parked
    Agent: repo-worker-code (OpenChamber scheduled lane)
    Session: ses_e5e6370a1afffe07nc8FpZx06a · queue task 5191
    Verified: Drew-owned PR #4118 "feat(id): multiple web listeners by flag and config (#2145)" is OPEN, non-draft, updated 2026-11-02, head queue/5191-2145-web-bindings — it owns this exact work. No worktree created, no code touched, no competing PR opened.
    Reason: another agent (Drew) actively owns it; parallel implementation prohibited.
    Resume: only if #4118 closes without merging and the issue is re-triaged. Queue parked 30 min; work/assigned stays set.

  9. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 2, 2026
  10. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  11. added a commit that references this issue on Nov 2, 2026
  12. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

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

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)effort/mMedium: expected under 1 day of workkind/featureNew feature or capability requestpriority/normalOrdinary priority (the default)source/humanFiled directly by a humantask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions