Skip to content

id: design: serverless storage contract (from #5681) #5863

Open

Description

@dezren39

Summary

Follow-on design ticket from #5681 — 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 minimal ID storage interface both backends must satisfy: journal append/read, world state, indexes — the contract that makes the backend a choice instead of a fork.

Context from the parent

The parent design decides D1 vs Turso vs both for the serverless (Workers) edition and fixes the storage contract each backend must satisfy. 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: #5681. 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

    • Agent: queue worker (repo-worker-code), lane code-y
    • Session / ID: task 10265
    • Found via: queue claim
    • Task: Triage of issue id: design: serverless storage contract (from #5681) #5863 (design: serverless storage contract) 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 10265 to its terminal state.
    • Expectation: claimant binds a session to task 10265; triage per the task packet.
    • Links: task 10265 (queue repo-health-code-pilot)
  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. developing-today commented on Nov 5, 2026

    @developing-today
    Contributor

    🤖 Agent note · handed off

  7. 80 remaining items

  8. dezren39 commented on Nov 6, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

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

    @dezren39
    MemberAuthor

    agent-note:v1
    event: picked_up
    task: 10265 (repo-health-code-pilot; worker repo-worker-code; OpenChamber scheduled lane c29174f1-48e0-4b13-b4ff-9b73ab67e9ab)
    state: claimed; resuming from saved handed_off checkpoint.
    next: Revalidate issue #5863 and related work at current main, then record a scoped triage verdict or complete as already done.

  11. 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 8, 2026
  12. dezren39 commented on Nov 8, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: triaged
    task: 10265 (repo-health-code-pilot; worker repo-worker-code; OpenChamber scheduled lane c29174f1-48e0-4b13-b4ff-9b73ab67e9ab)
    verdict: #5863 remains actionable and OPEN. The current main search found no contract decision record or implementation for this issue.
    evidence: Parent #5681 remains OPEN; its Nov 5 direction chooses both-with-roles and identifies #5863 as the natural first child. The open D1 journal spike PR #6350 is for #5864, not this issue, and explicitly states the #5863 storage contract remains open and the D1 schema/ordinal are provisional. No competing PR for #5863 was found.
    scope/order: Design the minimum shared storage contract for journal append/read, world state, and indexes, with invariants and explicit backend-specific limits; do not reopen the parent platform choice. Settle this contract before or alongside the #5864/#5865 D1 and Turso fit work, then feed #5681 synthesis and #5867 backend-choice/migration. PR #6350 is Drew-authored on the separate #5864 spike; this lane did not touch it.
    next: Write and link the decision record under #5863; update the #5864/#5865 spikes against that contract. No duplicate queue task was created because #5863 is already the scoped design follow-up and the queue packet schema has no design kind.

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)task/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions