Skip to content

id: investigate: IRC-first chat on ID — channels, graph-linked objects, presence #2049

Closed

Description

@dezren39

LIST 14a. Drew: 'I mostly just want IRC' — with room to grow toward Discord/Slack/Teams. Investigate chat on ID: channels/topics, identity = Iroh ID (no registration), messages that LINK to games, pictures, and other objects stored in people's graphs, and presence/roster semantics over P2P links. Deliverable: minimal chat protocol sketch (what an IRC-shaped client needs from ID).

Program: Drew's 2026-10-28 directive (full text: hatch-personal memory/topics/id-program-2026-10-28.md).
Working pattern: parallel investigations, then the named synthesis issue merges them into a full design. Route guidance: Workhorse by default; Specialist/Summit for synthesis and ramification-heavy work. A result that says "done" is not the endpoint — the orchestrator reviews it and may commission another round. Deliverables: a markdown design/investigation doc (mermaid/SVG diagrams welcome) linked from this issue, plus follow-up issues for anything buildable. Build a proof of concept where the design calls for one, but do NOT build the permanent feature on top of an unreviewed PoC.

Acceptance criteria

  • A markdown investigation doc is linked from this issue with a minimal chat protocol sketch: channels/topics, identity = Iroh ID with no registration, and presence/roster semantics over P2P links.
  • The sketch states what an IRC-shaped client needs from ID, including messages that link to graph-stored objects (games, pictures, other objects).
  • Follow-up issues are filed for anything buildable the investigation identifies.

Activity

  1. added
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    on Oct 29, 2026
  2. developing-today commented on Oct 29, 2026

    @developing-today
    Contributor
  3. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    Parent epic: #2056 — ID platform expansion (2026-10-28 directive).

  4. added
    kind/questionQuestion or design decision to resolve
    source/humanFiled directly by a human
    priority/highImportant and time-sensitive
    effort/mMedium: expected under 1 day of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 29, 2026
  5. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    Intake review

    Fleet monitor intake (2026-10-29) — verified still live: no merged PR or commit implements this yet; the filing audit/decision record it cites is current.

    Notes: ID-program investigation (LIST 14a) under Drew's 2026-10-28 directive — Drew: 'I mostly just want IRC', with room to grow toward Discord/Slack/Teams. Part of the batch filed 2026-10-29 ~01:00Z. Deliverable is the protocol sketch, not an implementation.

    Suggested approach: Design IRC-first: minimal surface an IRC-shaped client needs, with graph-linked objects as the one ID-native extension.

    Risks: Designing for the Discord-shaped future instead of the IRC-shaped present would bloat the minimal protocol — keep growth room as notes, not requirements.

    Labels normalized by the monitor; acceptance criteria appended to the body (original text preserved verbatim above it).

  6. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Queued: repo-health-code-pilot task 3923 (2026-10-30). This issue was never picked up after filing — the task covers verification against the current codebase and writing the investigation in the same pass (design doc PR under doc/, follow-up issues for buildable pieces, close with the doc link). Wave-2 queueing of the unrun ID-program investigations, ordered by Drew.

  7. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 30, 2026
  8. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up (verification + investigation write in this pass)

    • Agent: queue worker (repo-worker-code), openchamber-scheduled-lane
    • Session / ID: queue task 3923 · 2026-10-30
    • Task: IRC-first chat on ID investigation — verify against current pkgs/id, then write the investigation doc in the same pass
    • Expectation: effort/m — done = investigation doc PR opened, findings summarized here, follow-up issues filed for buildable pieces, hand-off to id: design: ID chat v1 #2051, issue closed with the doc link
    • Links: queue task 3923
  9. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done (investigation delivered; PR open)

    Investigation result — IRC-first chat (#2049)

    Verdict: ID owns ~2/3 of an IRC core wearing a game-world costume; the missing third is bounded and needs no new trust machinery. World chat (WorldEventKind::Chat, world/mod.rs:330) gives addressed rooms, 2048-byte sanitized messages, capability-scoped send/receive, and catch-up; /id-envelope/1 gives signed 1:1 delivery where the signature — not the node — is the trust; identity is already registration-free (endpoint ticket or bare node ID, private petnames). Missing: channels outside worlds, a message link format for graph objects, and any presence protocol. Full sketch in the doc.

    • Channels: <scope>/<name> over the existing groups/ roster/policy machinery (friendship is already a two-member group); no global namespace — names resolve in the client's local view like petnames do.
    • Messages: one JSON frame (channel/author/seq/after/text/links/sig, domain tag id-chat/v1/message), same 2048-byte + 50/10s bounds as world chat. Settles into signed events per channel; presence never settles.
    • Graph links: reference triple {kind, hash, author} + optional ticket hint; resolve local → author → id: investigate: BitTorrent-style chunk retrieval for graph objects #2050 swarm. Only blob and event kinds in v1; games are rendered events, not new link kinds.
    • Presence: gossip-fanned heartbeats, 60–90 s TTL, stale = gone; roster = group fold + liveness. Covers Q3 left open by id: investigate: bridge semantics — hosted (HTTPS/WS) edition syncing with native Iroh nodes #2058 (journal/ephemeral boundary for chat).
    • Growth: threads = in_reply_to on flat delivery; reactions = ephemeral annotations; servers = group templates + directory event; bouncer = hosted bridge as an ordinary member. All degrade to IRC text.

    Open questions for #2051

    Q1 settle-everything vs settle-on-save · Q2 gossip topic-per-channel vs tagged single topic · Q3 hint-rot fallback depth (for #2050) · Q4 DM group-record vs pure envelopes · Q5 hosted-edition presence fan-out. Details in doc §4.

    Doc: doc/2026-10-30T19-40-00Z_investigation_irc_first_chat_on_id/ in PR #2807.

  10. added a commit that references this issue on Oct 30, 2026
  11. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Closed: investigation delivered in PR #2807 (merged as ad18a0b) — doc at doc/2026-10-30T19-40-00Z_investigation_irc_first_chat_on_id/. Follow-ups #2808 (channel-frames PoC) and #2809 (presence protocol) filed; open questions handed to the #2051 synthesis.

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/questionQuestion or design decision to resolvemeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitivesource/humanFiled directly by a human

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions