Skip to content

id: world lifecycle and migration — tombstone, verified export/import as new world (from #3397 Phase 4) #3899

Open

Description

@dezren39

World-specific implementation follow-on from the #3397 design (doc/2026-11-01_design_id3397.md, PR #3853), Phase 4 of its phased plan.

Scope: world lifecycle operations inside one partition and across partitions by lifecycle move only — durable idempotent tombstone/delete (fence world, revoke memberships/invites, remove name resolution; blob bytes reclaimed only by reference-safe partition-local GC); world migration as export under source authorization → import and verify as a new world with a new ID in the target partition → reissue memberships/invitations under target policy → switch explicit discovery → tombstone source. No live move, no dual-homing; source stays authoritative until verification succeeds; cleanup is a separate retention/reference step.

Not this issue: #3402 is verified account-store (user-store) transfer and cleanup — it does not implement world migration (per the #3397 doc, Phase 4/6 notes). Account migration's per-world guest/exit treatment is #3402/#3404 territory; this issue owns the world side.

Authority boundary: #3397 is design-only and is not an implementation authorization. Implementation ordering follows the doc: this phase depends on Phases 1–3 (#3399, the world routing/admission follow-on, and partition-local world blobs building on #3401).

Acceptance: negative tests from the #3397 doc's matrix pass for this slice — migration interrupted before verification leaves source authoritative, target non-serving, retry idempotent; stale writers fenced; deletion racing a live reference/import preserves the reference; name reuse after tombstone does not resurrect old IDs, memberships, invites, or blob references.

Acceptance criteria

Activity

  1. added
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    source/queue-workerFiled or worked by the queue/worker pilot
    priority/normalOrdinary priority (the default)
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 1, 2026
  2. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: design code issue #3397 (PR #3853) Phase 4; depends on #3399 (Phase 1), the Phase 2 world routing/admission follow-on (code issue #3898), and partition-local world blobs building on #3401. Not #3402 — that is account/user-store transfer, a different layer.

    Notes: The issue body already carries this slice's acceptance in prose (the #3397 doc's negative-test matrix); the appended section restates it as the canonical checklist. The guest/exit treatment of accounts during a world migration is explicitly #3402/#3404 territory — keep it out of this slice.

    Risks: Migration is the highest-risk slice of the #3397 set: a verification or fencing bug can resurrect tombstoned worlds or strand references. The source-authoritative-until-verified ordering is the invariant every test hangs off.

    Suggested approach: Build only after Phases 1–3 land; start from the doc's interruption/race matrix as the test list, and treat export/import as new-world creation (new ID) rather than any form of live move.

    — fleet monitor intake enrichment, 2026-11-01 run (protocol §5). Acceptance criteria appended to the body where missing; labels normalized.

  3. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  4. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    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

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

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · triaged — still live, dependency-blocked

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/enhancementmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilottask/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