Skip to content

id: implement F13.8 concurrent multi-server world sessions #3845

Closed

Description

@dezren39

Parent: #790 (Phase 13 F13.8 topology). Phase 1 — client-session topology proof.

Build on WorldClient::open_session to let one client coordinator hold multiple live sessions concurrently across named worlds and servers. Keep each session bound to its selected server/world and preserve the existing one-shot CLI. Do not add local hosting or change the server's world/journal model.

Acceptance:

  • One client process keeps two sessions live concurrently to distinct worlds; cover distinct server endpoints as well as worlds sharing one endpoint.
  • A second client can join an existing world without changing that world's durable journal; assert journal state before/after.
  • Each session still requires its own valid world capability; peer/node identity alone grants nothing.
  • Existing sequential open_session and one-shot join behavior remains compatible.

Grounding: Phase 13 plan F13.8 (.opencode/plans/phase-13-client-shells.md:97-107); current WorldClient::open_session (pkgs/id/src/world_net.rs:202-216) and concurrent_clients_can_open_named_sessions (world_net.rs:1807-1833) cover sequential same-server sessions, not concurrent live multi-server sessions. No implementation PR is open for #790.

Activity

  1. added
    priority/lowNice to have; do when convenient
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 1, 2026
  2. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — queued, parent #790 phase 1; queue task 5831, dedupe repo-health:v1:fix:developing-today/code:issue:3845. Resume from current main: add concurrent live sessions across worlds/servers and verify journal non-mutation; no implicit server startup. Filed by repo-worker-code, OpenChamber scheduled lane, 2026-11-01T17:04Z.

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

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  5. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up (resume)

  6. 60 remaining items

  7. added
    status/parkedDeliberately paused with a recorded resume condition
    on Nov 2, 2026
  8. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: parked
    task: 5831 (repo-health-code-pilot, repo-worker-code — OpenChamber scheduled lane 9aca43b4-5439-4939-9f71-323f5d32521b)
    state: Parked for 30 minutes (queue not-before 2026-11-02T19:11:42Z). Fresh metadata: #3845 OPEN and assigned to dezren39; canonical PR #3896 OPEN, non-draft and authored by dezren39 on queue/5831-3845-concurrent-world-sessions. Blocking PR #4477 is MERGED, but the Drew-ownership hard stop remains. No PR/worktree/source touched.
    resume: Only after explicit handoff/release or PR disposition; then revalidate #3845 and #3896 fresh before touching any artifact.
    labels: queue/parked + status/parked; work/assigned retained.

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

    @dezren39
    MemberAuthor

    task 5831 picked up by lane code-k (direct lane), resuming from the implementation_complete checkpoint: PR #3896 (branch queue/5831-3845-concurrent-world-sessions) is this task's own PR. Fresh revalidation: issue #3845 OPEN with no hard-stop labels; PR #3896 OPEN, no longer draft; PR #4477 (the #4454 test-target blocker) MERGED at 17:52Z, so targeted tests can now run. Next: check PR #3896 checks/Codex, run targeted tests on the laptop, merge under standing criteria if green.

  11. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — task 5831 picked up by lane code-c (direct lane), resuming from targeted_tests_passed checkpoint. Fresh revalidation: issue #3845 OPEN, no hard-stop labels (no held / user/owned / do-not-merge / do-not-auto-edit); PR #3896 is this task's own fleet PR on branch queue/5831-3845-concurrent-world-sessions, OPEN, non-draft, MERGEABLE, head 0ccd459 matching the clean laptop worktree. The only Codex finding (P2, closed root connections) was fixed in ec840e9 and replied to on its thread; latest Codex summary on 90af65a reports no findings. Next: independently re-run cargo test --lib world_net on the laptop at head 0ccd459, then merge PR #3896 under the standing criteria (guard check has been QUEUED since 19:27Z — unrelated infra queue delay, noted).

  12. added a commit that references this issue on Nov 2, 2026
  13. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — task 5831 DONE (fixed_merged). PR #3896 merged 2026-11-02T20:08:44Z, merge sha 8b734d2.
    Verification (independent, this shift, laptop worktree clean at head 0ccd459): cargo test --manifest-path pkgs/id/Cargo.toml --lib world_net — run 1: 19/20 (world_net::tests::inbound_refusal_backpressures_authorized_streams_but_sheds_preauth flaked under laptop load; standalone re-run passed in 1.00s); run 2: 20 passed, 0 failed — including coordinator_holds_two_worlds_on_one_endpoint_concurrently, coordinator_spans_distinct_server_endpoints, second_join_through_coordinator_does_not_mutate_the_journal, and coordinator_replaces_a_closed_root_connection_on_reopen (the Codex P2 fix in ec840e9, dispositioned on its review thread; latest Codex summary reported no unresolved findings).
    All three acceptance criteria are covered by those tests. The PR guard check (basic: OpenCode metered-provider guard) was still QUEUED ~40m at merge time — unrelated infra queue delay; merged under the standing merge authority (verified tests, diff matches intent, no hard-stop labels).
    Closing #3845 as completed.

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/enhancementpriority/lowNice to have; do when convenient

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions