Skip to content

id: implement #3870 phase 2 — program transfer contract + source export/fence #3901

Open

Description

@dezren39

Phase 2 of #3870 (journaled region-seam export/import, design #2818, doc doc/2026-11-01_design_id2818.md in PR #3875, §8 packet 2). GATED on Phase 1 (journal/schema foundation phase issue) landing.

Scope: Program transfer contract + source export/fence — no external route exposes it yet.

  • Pure WorldProgram::prepare_entity_transfer hook (typed Export/Import variants; default returns unsupported) alongside the current trait at pkgs/id/src/world/mod.rs:871-925.
  • Region-sharded mode gate: state-changing commands in sharded mode must be entity-addressed; legacy unscoped Input rejected in that mode only.
  • Complete bounded entity payload: 16 KiB v1 cap, oversize refused BEFORE the source is fenced.
  • Source path order is prepare/validate → persist EntityExported → apply in-memory → acknowledge (persist-before-apply precedent pkgs/id/src/world/actor.rs:882-900; do NOT route through WorldActor::deliver, actor.rs:401-440). No receipt until apply/replay succeeds.
  • Source-side stale-write rejection: after the export entry is durable, the actor rejects entity-targeted input for that entity_ref.

Acceptance: tests prove deterministic replay, persist-before-apply, durable fence, oversize-before-fence refusal, and no receipt on apply failure (recovery by replay).

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 — task 5864 picked up by OpenChamber scheduled lane (2026-11-01). Revalidated that #3901 is open. The packet gate requires #3900 to land first; it is still open and actively owned by queue task 5863 on queue/5863-3900-journal-foundation. No files changed; parking this task for 30 minutes until #3900 lands.

  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 — task 5864 parked (2026-11-01). Blocker: gated predecessor #3900 has not landed; it remains open and actively owned by task 5863 on queue/5863-3900-journal-foundation (#3900 (comment)). Queue task 5864 parked for 30 minutes; resume only after fresh verification that #3900 is closed / its fix is merged. No branch or worktree created; no files changed.

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

    @dezren39
    MemberAuthor

    agent-note:v1 — task 5864 picked up again by OpenChamber scheduled lane (2026-11-01). Freshly verified #3901 is open and gated predecessor #3900 is still open with active task 5863 on queue/5863-3900-journal-foundation (#3900 (comment)). No files changed; checking in and parking again until the predecessor lands.

  7. 73 remaining items

  8. added
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 4, 2026
  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — task 8542 parked by OpenChamber scheduled lane c29174f1-48e0-4b13-b4ff-9b73ab67e9ab (2026-11-04). #3901 remains OPEN; PR #3931 is still OPEN and was left untouched.

    Implementation is preserved in /home/user/git/fleet/8542 on queue/8542-3901-program-transfer, based on origin/main 9af042edd030f28c4f2bc7d44bb23bca0784c6e6. cargo test -p id --lib world::tests::tests:: passed 130/130; cargo check -p id, rustfmt check, and git diff --check passed. No commit or replacement PR yet.

    Resume: review the diff, commit/push this branch, revalidate issue/PR ownership, open the replacement PR, then check CI. Leave PR #3931 untouched.

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

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  12. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up and revalidated

  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 8542 (repo-fleet-monitor run 2026-11-05T15:45:48Z)
    • Found via: monitor reconciliation (Duty 1 claim/label divergence repair)
    • Task: Claim evaporated: task 8542 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 8542 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)queue/queuedHas a queued task in the Supabase agent queuesource/creatorFiled by the new-issue-creator jobstatus/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