Repository navigation
Open
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workexpediteImportant - do this very soon, before anything not expeditedImportant - do this very soon, before anything not expeditedmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)queue/queuedHas a queued task in the Supabase agent queueHas a queued task in the Supabase agent queuesource/creatorFiled by the new-issue-creator jobFiled by the new-issue-creator jobstatus/needs-triageNot yet triaged; needs a first lookNot yet triaged; needs a first looktask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Description
Filed by queue triage task 6875 (2026-11-03) from the design record on main, doc/2026-11-01_design_id2031.md §2, which names this as "a prerequisite missing from #3788–#3790's current dependency graph" — it has no issue of its own, so the gap is invisible to the fleet.
The gap (per the design record, verified against main 2026-11-03)
ChainExtcarries a free-stringkindand optional group (pkgs/id/src/chain.rs, rootidpackage), and the signed header commits to a body's hash and size while the body itself is separate.- Ingest accepts and verifies a supplied body (
pkgs/id/src/event_store/ingest.rs), butstore_eventwritesevent.bytes(the signed header) only (pkgs/id/src/event_store/mod.rs); range sync sends stored events and fork-proof headers (pkgs/id/src/event_store/sync.rs). - Consequence: a
didit.*CBOR body can be validated at ingest but is not yet available for later retrieval or cross-device replication.
Scope
Design + implement generic application event-body persistence, retrieval, and range-sync in pkgs/id (not didit-specific), so any kind with a CBOR body — starting with the four didit.* kinds from issue #3788 — round-trips: stored at ingest, retrievable by event id/hash, and carried by range sync with the same integrity checks as headers.
Acceptance
- A stored event with a generic body can be retrieved byte-identically after restart.
- Range sync between two nodes transfers bodies for events the peer lacks, with hash/size verification against the signed header.
- Existing header-only kinds are unaffected; tests cover body-present and body-absent events.
Relations
- Blocks the app phase: issue id(app): PoC — sticky notes + did-it tracker, the first ID app (Phase 3 of #2031) #3790 (Phase 3 of id: design+PoC: sticky-notes / did-it tracker — the first ID app #2031) cannot read tracker state back without this.
- Does NOT block issue id(didit): schema types + pure evaluator in pkgs/id/src/didit/ (Phase 1 of #2031) #3788 (Phase 1: library-only schema types + pure evaluator, golden tests only).
- Parent: issue id: design+PoC: sticky-notes / did-it tracker — the first ID app #2031.
Acceptance criteria
- Generic event-body persistence exists for
pkgs/id: bodies can be stored, retrieved by event id, and range-synced without per-type bespoke code. - Retrieval of a missing body returns a typed not-found (not a panic or silent empty).
- Range-sync is idempotent: re-syncing a range does not duplicate bodies.
- Covered by tests exercising persistence, retrieval, and a repeated range-sync.
Metadata
Metadata
Assignees
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workexpediteImportant - do this very soon, before anything not expeditedImportant - do this very soon, before anything not expeditedmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)queue/queuedHas a queued task in the Supabase agent queueHas a queued task in the Supabase agent queuesource/creatorFiled by the new-issue-creator jobFiled by the new-issue-creator jobstatus/needs-triageNot yet triaged; needs a first lookNot yet triaged; needs a first looktask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Activity
dezren39 commentedon Nov 3, 2026
Intake review
Related: see the issue body and its linked references; no merged PR was found that resolves this issue at intake time (checked at fleet-monitor run 2026-11-03 04:12 CST).
Notes: Design-bearing slice (generic event-body persistence for pkgs/id). Suggested approach: mirror the existing per-type body store's shape before inventing a new one, and confirm the range-sync contract with the slices that consume it. Risks: sync idempotency and body-size bounds — both are called out in the criteria.
Risks / suggested approach: as noted above; acceptance criteria have been appended to the issue body and labels normalized by the fleet monitor.
🤖 Agent note · filed
dezren39 commentedon Nov 3, 2026
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
27 remaining items
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
Picked up as task 9198 by lane code-c (repo-queue worker) and handed off to the opencode execution lane per the execution-lane assignment for task 9198. The laptop claimant launches the bound opencode session for task 9198; this lane does not work issue #4837 directly. Note: task 9198 is at attempts 15/24.
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
held,user/owned,do-not-merge,do-not-auto-edit). Attempts 16/24.dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
opencode; handing off to the opencode claimant for the bound session. Fresh revalidation: issue id: generic event-body persistence, retrieval and range-sync — prerequisite for the didit tracker phases (#2031) #4837 is OPEN with no hard-stop labels.dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off