Skip to content

id(chat): implement durable IRC-shaped group channels and signed messages #3799

Open

Description

@dezren39

Parent design: #2051 (ID chat v1), with investigation inputs #2049/#2050 and hosted-bridge constraints from #2058.

Implement the durable, IRC-shaped channel core selected by #2051. This issue is gated on review/sign-off of the protocol PoC in #2808; the PoC must not be treated as the permanent feature.

Scope

Acceptance criteria

  • Two independent members can create/join a channel and exchange signed message events; signatures, channel/group binding, replay, duplicate delivery, and out-of-order delivery are tested.
  • Messages follow the existing event causal model; concurrent cross-author delivery does not acquire a bridge/arrival-time-defined causal order.
  • Text is sanitized and bounded (start with the existing world-chat 2,048-byte and 50-per-10-second limits unless tests establish a justified configuration seam); membership/history policy is enforced on reads and writes.
  • A message can carry blob and event links without embedding a capability. Blob bytes are hash-verified; link retrieval accepts a holder set in its API even if v1 uses one author/hint holder.
  • World chat remains unchanged; no presence/typing, global channel-name service, Mainline discovery, multi-provider scheduler, or Discord-shaped threads/reactions/guild UX is pulled into this slice.
  • No permanent feature is built on the id(chat): PoC — two CLI nodes exchanging channel frames with a blob link #2808 PoC until its review/sign-off is recorded.

Activity

  1. added
    kind/featureNew feature or capability request
    priority/highImportant and time-sensitive
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    on Nov 1, 2026
  2. developing-today commented on Nov 1, 2026

    @developing-today
    Contributor
  3. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · filed

  4. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/small-fixQueue packet kind: bounded fix with reproduction and targeted tests
    on Nov 1, 2026
  5. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  6. 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
  7. 60 remaining items

  8. added
    queue/claimedQueue worker lifecycle state
    and removed
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 4, 2026
  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked — canonical PR still owned by a sibling task

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

    @dezren39
    MemberAuthor

    agent-note:v1
    event: picked up
    task: 7409 (small_fix; repo-health-code-pilot; worker repo-worker-code; lane c8b9355e-319a-4640-8096-7ad19480d151 — OpenChamber scheduled lane)
    by: repo-worker-code

    Resuming from prior parked state. Freshly verified #3799 OPEN, #3941 MERGED, and canonical remainder PR #3965 OPEN on task 5893 branch. No CI checks are active (CodeRabbit skipping). I will not create competing work.

  12. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: parked
    task: 7409 (small_fix; repo-health-code-pilot; worker repo-worker-code; lane c8b9355e-319a-4640-8096-7ad19480d151 — OpenChamber scheduled lane)
    by: repo-worker-code

    Fresh state: #3799 remains OPEN; #3941 is MERGED; #3965 remains OPEN on sibling task 5893 branch queue/5893-3950-chat-v1-remainder. gh pr checks 3965 reports only CodeRabbit skipping, with no CI checks run. No code changes or competing PR were made.

    Parked for 30 minutes. Resume after #3965 merges/closes or task 5893 is cancelled and its PR is confirmed orphaned; then revalidate GitHub state.
    labels: queue/parked + status/parked; work/assigned retained; queue/claimed + status/in-progress removed.

  13. 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 4, 2026
  14. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

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/lLarge: multi-day or open-ended; expect staged check-inskind/featureNew feature or capability requestpriority/highImportant and time-sensitivequeue/claimedQueue worker lifecycle statesource/creatorFiled by the new-issue-creator jobstatus/in-progressQueue worker lifecycle statetask/small-fixQueue packet kind: bounded fix with reproduction and targeted testswork/assignedQueue worker lifecycle state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions