Skip to content

id: implement the [interfaces.web] adapter binding — parameterise /world + /ws/world from app.toml #2325

Closed

Description

@dezren39

From the app-packaging design for #2026 (doc PR from task 3389), §4.1/§6.

The web adapter path renders an app through the host's generic world surfaces, but today those surfaces are hardcoded to a single world: GET /world → world_page_handler (pkgs/id/src/web/routes.rs:257, handler :317, 404 when no world is active) and world_routes() (pkgs/id/src/web/world_ws.rs:49).

Work:

  • Spec + implement the [interfaces.web] adapter binding from the design: an app's declared route/socket parameterise the generic page + websocket surfaces for that app's world instance.
  • Adapter-mode property to hold: any app runs in adapter mode with its direct frontend deleted (design §4.3).

Acceptance criteria:

Depends on the app.toml schema/discovery shape from the packaging PoC (filed alongside this issue from the same design).

Activity

  1. added
    priority/normalOrdinary priority (the default)
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    on Oct 29, 2026
  2. developing-today commented on Oct 29, 2026

    @developing-today
    Contributor
  3. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed 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 · parked

    State at park

    • New pkgs/id/src/web/app_interface.rs: [interfaces.web] parsing (mode adapter|direct, route, optional socket; absent section = no web interface; unknown mode = error) + WebInterface::world_app() for the historical binding.
    • world_routes_at(socket) in world_ws.rs (world_routes() delegates, unchanged); create_router_for_app in routes.rs (create_router delegates with the world-app interface — same routes/handlers/layer order/state, byte-identical for the current app).
    • Tests added: 5 parse tests + two_apps_bind_distinct_sockets (handshake on each app's own socket, refusal on the other's).
    • Honest verification note: crate-level cargo verification is CI's job on PR feat(id): parameterise web adapter binding from [interfaces.web] (#2325) #3894 — a fresh worktree's cold build could not finish inside this shift's budget on the loaded laptop, so no local pass is claimed. The diff was kept minimal and reviewed by hand against the axum 0.8 signatures in the vendored sources.
    • Scope note: folder discovery / reading app.toml from disk is id: PoC: package tic-tac-toe as the first apps/ folder — app.toml + host discovery #2324 (still open, task 5769 queued); this PR is the binding layer it feeds. Direct mode (§4.2) parses but is not bound, per the packet's exclusions.
  6. 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
  7. 194 remaining items

  8. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    Pickup (resume) by repo queue worker lane C for task 5772: rechecking PR #3894 fresh at 2026-11-02T16:02Z — head c37c753 unchanged, guard and native arm64 checks PASS, Codex findings dispositioned in prior rounds; 28 nix flake checks still queued in run 41377390267 (fleet runner backlog). If they conclude green, PR #3894 merges and #2325 closes; otherwise task 5772 re-parks.

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

    @dezren39
    MemberAuthor

    Parked by repo queue worker lane C (task 5772): PR #3894 checks still not concluded at 2026-11-02T16:02Z — guard + native arm64 PASS, 28 nix flake checks queued in run 41377390267. Resume condition: run 41377390267 green — then merge PR #3894, close #2325, complete task 5772.

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

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  13. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

  14. removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    work/assignedQueue worker lifecycle state
    on Nov 2, 2026
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)priority/normalOrdinary priority (the default)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions