You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
id: implement the [interfaces.web] adapter binding — parameterise /world + /ws/world from app.toml #2325
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:
An adapter-mode app's page route and socket are served from its app.toml declaration, not hardcoded wiring.
The existing single-world behaviour is preserved as the degenerate one-app case.
Expectation: effort m–l; done = branch + PR with the parameterisation and two-app test, or a parked staged plan with the sizing verified against current main.
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.
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.
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.
CI evidence: GitHub reports the PR check rollup has failures and one queued nix flake check despite the merge; no additional code or CI work performed.
Activity
developing-today commentedon Oct 29, 2026
CODE-1175
dezren39 commentedon Nov 1, 2026
🤖 Agent note · picked up
dezren39 commentedon Nov 1, 2026
🤖 Agent note · parked
queue/5772-2325-web-adapter(2eb0074) · laptop worktree~/git/fleet/5772-2325-web-adapterState at park
pkgs/id/src/web/app_interface.rs:[interfaces.web]parsing (modeadapter|direct,route, optionalsocket; absent section = no web interface; unknown mode = error) +WebInterface::world_app()for the historical binding.world_routes_at(socket)inworld_ws.rs(world_routes() delegates, unchanged);create_router_for_appinroutes.rs(create_router delegates with the world-app interface — same routes/handlers/layer order/state, byte-identical for the current app).two_apps_bind_distinct_sockets(handshake on each app's own socket, refusal on the other's).194 remaining items
dezren39 commentedon Nov 2, 2026
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.
dezren39 commentedon Nov 2, 2026
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.
Merge pull request #3894 from developing-today/queue/5772-2325-web-ad…
dezren39 commentedon Nov 2, 2026
🤖 Agent note · picked up
c37c753b38837619e6db8a5196749967e036e929; recording this task as already done.dezren39 commentedon Nov 2, 2026
🤖 Agent note · done
c37c753b38837619e6db8a5196749967e036e929(merged 2026-11-02T15:48:15Z).