Skip to content

id: implement hosted Worker API + per-user DO provisioning and metering (from #2046/#2852 slice 3) #3811

Open

Description

@dezren39

Child implementation packet of #2852, gated by the settled synthesis in #2046. Implement the first hosted data plane from #2044/#2045 and #2258 spec §5.

Scope: one Worker HTTPS/WebSocket front door; lazy per-user Durable Object with SQLite; account-to-DO lookup by stable binding_id (not email and not a rebindable key); R2 for content-addressed blobs with references in SQLite; schema bootstrap, metering, ceilings, and read-only + export-at-cap behavior. Use the binding/account records from slice 1. Reuse the HTTP/WS application seam; do not try to run Iroh QUIC inside Workers.

Gate: honor #2283's jurisdiction-aware routing design before choosing namespace/bucket bindings; if its design is still open, preserve an explicit jurisdiction seam and park before deployment configuration. Only hibernating WebSockets; no always-on per-user process/container.

Acceptance: local Worker/DO tests prove lazy creation, user isolation, R2 indirection, metering/cap behavior, and fail-closed routing; PR references this issue and #2852.

Activity

  1. added
    kind/featureNew feature or capability request
    task/small-fixQueue packet kind: bounded fix with reproduction and targeted tests
    source/queue-workerFiled or worked by the queue/worker pilot
    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 · handed off

  4. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  5. 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 2, 2026
  6. 28 remaining items

  7. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: reviewed (coverage loop-back)
    Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 6882 (triage, queued, priority 50) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
    Found via: coverage loop-back 2026-11-03

  8. added
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  9. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  10. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: picked-up

  11. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: triaged — live, split for implementation

    Verdict: the requested data plane is still unimplemented, but the old packet was too broad for small_fix and its blockers are stale. The prerequisites have moved: #2283 is CLOSED and design PR #3843 MERGED; #3808/#4854 and #3809/#4885 are MERGED; the #2046 ruling settled the parameters. pkgs/id/src/hosted_binding.rs now supplies the binding contract. Main has no production per-user hosted Worker/UserDO data plane. pkgs/id/worker-poc / PR #2848 is a world/Plaza isolate semantics PoC, not this per-user store.

    Split / next action: filed #5199 as the first bounded local-only implementation step and queued task 8897 (repo-health-code-pilot). It covers the Worker/UserDO foundation, stable binding_id, restricted jurisdiction routing, lazy versioned SQLite bootstrap, local tests, and reconciliation of the stale google:<sub> example in the jurisdiction design doc. R2 blob/reference accounting and metering/cap behavior remain later ordered steps under this umbrella; do not launch them in parallel with the base. Production deployment/bindings remain out of scope: #2285 is still OPEN with user/escalated (Drew authorization and deployed-account/vendor evidence absent), and #3403 remains blocked. No production residency claim is made. The signed-object sync bridge remains #3818.

    No code or tests were changed in this triage. #3811 stays open as the umbrella until its implementation steps land.

  12. removed
    task/small-fixQueue packet kind: bounded fix with reproduction and targeted tests
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 3, 2026
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-sensitivesource/queue-workerFiled or worked by the queue/worker pilot

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions