You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
id: investigate: IRC-first chat on ID — channels, graph-linked objects, presence #2049
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.
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).
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.
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.
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.
Activity
developing-today commentedon Oct 29, 2026
CODE-970
dezren39 commentedon Oct 29, 2026
Parent epic: #2056 — ID platform expansion (2026-10-28 directive).
dezren39 commentedon Oct 29, 2026
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).
dezren39 commentedon Oct 30, 2026
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.
dezren39 commentedon Oct 30, 2026
🤖 Agent note · picked up (verification + investigation write in this pass)
dezren39 commentedon Oct 30, 2026
🤖 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/1gives 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.<scope>/<name>over the existinggroups/roster/policy machinery (friendship is already a two-member group); no global namespace — names resolve in the client's local view like petnames do.channel/author/seq/after/text/links/sig, domain tagid-chat/v1/message), same 2048-byte + 50/10s bounds as world chat. Settles into signed events per channel; presence never settles.{kind, hash, author}+ optional ticket hint; resolve local → author → id: investigate: BitTorrent-style chunk retrieval for graph objects #2050 swarm. Onlyblobandeventkinds in v1; games are rendered events, not new link kinds.in_reply_toon 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.Merge pull request #2807 from developing-today/queue/3923-2049-irc-chat
dezren39 commentedon Oct 30, 2026
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.