Skip to content

id: design: IndexedDB adapter (from #5672) #5804

Open

Description

@dezren39

Summary

Follow-on design ticket from #5672 — its decomposition sketch names this as a separate design, and the parent's acceptance requires these tickets to be filed and linked. Filed in the 2026-11-04 gap pass (WS-F) so the design work exists and can be prioritised on its own merits; implementation timing is a separate decision, possibly months out.

What this design must settle

The IndexedDB adapter under browser constraints: origin scoping, storage limits, and what live-vs-materialized means in a browser store.

Context from the parent

The parent design fixes the selective-sharing grants model, the existence-privacy rule, and the foreign data-store adapter contract. The parent issue carries the surrounding decisions this ticket must not re-decide; where this ticket's answer would change a parent decision, record that explicitly rather than silently forking it.

Decision record expected

Close this design with a recorded decision (on this issue or in a doc/ record linked from it): the chosen shape, the alternatives rejected and why, and the invariants implementation must hold. If the design splits further, file the splits and link them here rather than growing this issue.

Relations

Parent: #5672. Programme: epic #2056. Filed by WS-F (2026-11-04 ID design gap & expansion pass).

Activity

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

    @developing-today
    Contributor
  3. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 5, 2026
  4. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  5. 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 5, 2026
  6. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: queue worker (repo-worker-code), lane code-y
    • Session / ID: task 10207
    • Found via: queue claim
    • Task: Triage of issue id: design: IndexedDB adapter (from #5672) #5804 (design: IndexedDB adapter) was claimed by lane code-y; the execution-lane assignment routed it to the opencode lane, so it is handed off — the laptop claimant (opencode-claimant) launches the bound opencode session that drives task 10207 to its terminal state.
    • Expectation: claimant binds a session to task 10207; triage per the task packet.
    • Links: task 10207 (queue repo-health-code-pilot)
  7. removed
    status/parkedDeliberately paused with a recorded resume condition
    on Nov 5, 2026
  8. 10 remaining items

  9. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  10. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

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

    @dezren39
    MemberAuthor

    Triage findings (verified fresh 2026-11-05)

    Scope: settle the browser-specific adapter shape: origin-scoped addressing and selected object stores; live versus materialized access (live access requires the tab/extension to be alive); structured-clone to ID type mapping and unsupported types; browser storage limits/eviction; and how the choice fits the parent's adapter contract. Keep #5672's grants and existence-privacy decisions fixed; record any proposed change against the parent rather than silently revising them.

    Ordering / blocker: #5803 (general foreign-store adapter contract) remains OPEN. Browser-specific discovery can proceed in parallel, but finalize shared addressing, type-mapping, live/materialized, and credential rules in coordination with #5803 and conform to its settled contract. If this design would change a parent decision, pause that part and record the conflict on #5672. No implementation should be queued from this triage; keep this design ticket parked until design work is prioritized.

    Triage outcome: keep #5804 OPEN and scoped as the IndexedDB-specific design follow-on to #5672; no closure or implementation handoff is warranted yet.

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)queue/parkedQueue task is parked (waiting on CI, time, or an event)status/parkedDeliberately paused with a recorded resume conditiontask/triageQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions