Skip to content

id: implement fenced jurisdiction migration control plane #3404

Open

Description

@dezren39

Follow-up to #2283. Implement a resumable per-account jurisdiction migration state machine with pending target, durable migration ID, lease/fencing token, CAS routing epochs, maintenance, source freeze/drain and target activation. Never rely on directory state alone to fence stale writers.

Acceptance: all mutation paths including WebSockets, alarms, RPC and bridges honor the durable source fence; export waits for freeze acknowledgement; target is non-serving until switch; fault/concurrency tests cover ambiguous CAS, retries and stale epochs. Post-switch recovery is forward or a fresh reverse migration. Depends on directory, restricted routing and actual hosted write interfaces.

Activity

  1. developing-today commented on Nov 1, 2026

    @developing-today
    Contributor
  2. added
    kind/infrastructureInfrastructure / host-portability work
    priority/highImportant and time-sensitive
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    source/humanFiled directly by a human
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 1, 2026
  3. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: #2283 (parent), #3399 (directory), #3400 (restricted routing) — dependencies; #3402 consumes this control plane.

    Notes: Inline Acceptance present (all mutation paths incl. WebSockets, alarms, RPC, bridges honor the durable source fence; export waits for freeze acknowledgement; target non-serving until switch; fault/concurrency tests for ambiguous CAS, retries, stale epochs). The fencing-token discipline — never directory state alone — is the design invariant.

    Risks: Ambiguous-CAS and stale-epoch cases are where migration control planes corrupt data; the fault tests are not optional polish.

    Suggested approach: State machine + fence persistence first, freeze/drain second, activation last; post-switch recovery is forward-only or a fresh reverse migration, per the filing.

    — fleet monitor intake (2026-11-01)

  4. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed on Nov 1, 2026
  5. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Picked up by repo queue worker lane C (task 5804) for revalidation against fresh GitHub state.

  6. added
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 1, 2026
  7. 179 remaining items

  8. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    on Nov 4, 2026
  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: parked
    task: 5804 (repo-health-code-pilot; worker repo-worker-code; lane 9aca43b4-5439-4939-9f71-323f5d32521b)
    state: Parked for 30 minutes; queue task 5804 is parked.
    verified: #3399 is OPEN/blocked/user-escalated and #3400 is OPEN/parked. #3403 remains OPEN; linked PR #5286 is MERGED. Design PRs #3406 and #3843 are MERGED; PR searches found no implementation PR for #3399/#3400/#3404. #3404 remains OPEN with no hard-stop labels.
    blocker: Phase 4 depends on phase 1 and phase 2 landing; no source changes, branch, or worktree created.
    resume: After #3399 and #3400 land, revalidate #3404, dependencies, related PRs, and hosted write interfaces before implementation.
    bookkeeping: openchamber scheduled lane — sandbox backlog and sweep log deferred to fleet reconciliation.

  10. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  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 4, 2026
  12. developing-today commented on Nov 4, 2026

    @developing-today
    Contributor

    🤖 Agent note · handed off

    • Agent: queue claimant (opencode-claimant)
    • Session / ID: task 5804 · OpenCode session ses_e5e596216bfffeUjKib8szSa6G
    • Found via: queue lane handoff · OpenCode claimant launch
    • Task: Launched the bound OpenCode worker for task 5804: Phase 4: fenced jurisdiction migration control plane (resumable state machine)
    • Expectation: Revalidate the packet and issue, then complete, park, block, or fail task 5804 under its queue worker id.
    • Links: OpenCode session ses_e5e596216bfffeUjKib8szSa6G
  13. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 5, 2026
  14. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: fleet monitor
    • Session / ID: task 5804 (repo-fleet-monitor run 2026-11-05T15:45:48Z)
    • Found via: monitor reconciliation (Duty 1 claim/label divergence repair)
    • Task: Claim evaporated: task 5804 is queued and unclaimed in repo-health-code-pilot, but this issue still carried claimed labels. Labels reset to the truth (queue/queued + status/needs-triage). Checkpoint stage at evaporation: handed_off.
    • Expectation: The next lane claim picks task 5804 up from the queued state and posts a fresh pickup note.
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/infrastructureInfrastructure / host-portability workmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitivequeue/queuedHas a queued task in the Supabase agent queuesource/humanFiled directly by a humanstatus/needs-triageNot yet triaged; needs a first looktask/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