Skip to content

id: implement #3870 phase 4 — coordinator state machine + recovery for region-seam handoff #3903

Open

Description

@dezren39

Phase 4 of #3870 (journaled region-seam export/import, design #2818, doc doc/2026-11-01_design_id2818.md in PR #3875, §8 packet 4). GATED on Phase 3 (destination import) landing.

Scope: Coordinator state machine + recovery.

  • Coordinator journal: HandoffStarted, observed source/destination receipts, HandoffCompleted (and pre-export HandoffCancelled only after proving no source export committed). Coordinator journal stores NO entity payloads.
  • Serialize handoffs per entity; drive source export then destination import; correlate receipts by handoff_id + entity + epoch + module/schema + digest.
  • Region-map / owner switch ONLY after matching durable destination receipt AND durable HandoffCompleted; owner epoch increments once per completed handoff.
  • Retry/reconcile after crashes at every seam (design §5 recovery matrix): query each side by handoff_id, append missing observations, resend the same envelope — never a new handoff ID, never automatic rollback after export.

Acceptance: failure-injection coverage for coordinator and region restarts at each protocol transition; no completion without a matching durable destination import; no duplicate entity.

Parent: #3870. Design: #2818.

Activity

  1. added
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    on Nov 1, 2026
  2. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — state=picked_up; task_id=5866; worker=repo-worker-code; lane=openchamber-scheduled-lane; note=Claimed from repo-health-code-pilot; revalidating prerequisite #3902 and ownership before edits.

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

    @dezren39
    MemberAuthor

    agent-note:v1 — state=parked; task_id=5866; worker=repo-worker-code; lane=openchamber-scheduled-lane; resume_after=2026-11-01T18:39:55Z; note=Parked for 30 minutes because prerequisite #3902 remains OPEN; resume only after #3902 is closed or its fix PR is merged. No files changed.

  5. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  6. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  7. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    on Nov 1, 2026
  8. 330 remaining items

  9. dezren39 commented on Nov 6, 2026

    @dezren39
    MemberAuthor

    task 5866 (small_fix, issue #3903) revalidated by lane code-f (direct lane): hard gate still unmet. Fresh gh: issue #3902 OPEN with no implementation PR (all-state search for 3902 empty), issue #3901 OPEN, PR #3931 OPEN Drew-authored (metadata only, untouched). No implementation or worktree created. Parked 30m; resume only after issue #3902 closes or its implementation PR merges.

  10. dezren39 commented on Nov 6, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  11. dezren39 commented on Nov 6, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked (sequencing gate)

  12. dezren39 commented on Nov 6, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · correction (task 5866 park note citation)

  13. dezren39 commented on Nov 7, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  14. dezren39 commented on Nov 7, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked (lane attribution blocker)

  15. dezren39 commented on Nov 7, 2026

    @dezren39
    MemberAuthor

    Parked immediately without task work: this scheduled lane requires claim attribution 7b47536b-c162-444c-be8a-3a9538cc4cb5, but repo-queue claim --lane rejected that ID. No branch or files were changed. Resume only when the helper accepts this lane ID; then revalidate the predecessor gate before work.

  16. dezren39 commented on Nov 7, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  17. dezren39 commented on Nov 8, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 | event: parked | task: 5866 | worker: repo-worker-code | lane: code-q | at: 2026-11-08T00:35:00Z | reason: Gate issue #3902 (phase 3 destination import) re-verified OPEN fresh by lane code-q; phase 4 coordinator work cannot start until it lands. Task 5866 parked 30 min; resume condition unchanged.

  18. developing-today commented on Nov 8, 2026

    @developing-today
    Contributor

    🤖 Agent note · picked up

  19. developing-today commented on Nov 8, 2026

    @developing-today
    Contributor

    🤖 Agent note · parked

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)source/creatorFiled by the new-issue-creator jobstatus/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