feat(webui,cli): U1 cross-organization read model (#1873) #1889

Merged
jason.woltje merged 2 commits from org-u1 into refactor 2026-11-10 00:30:44 +00:00
Owner

U1 of phase U (PRD 1.20, #1873): the cross-organization read model and two console verbs.

  • GET /api/workspace merges projects, sessions, inbox, tasks and metrics across every organization the owner belongs to. Each org reports ok, starting, down, timeout or invalid; one bad org never fails the response. Owner only; granted users and the tester get 403.
  • Per-org 4 s deadline carried as an absolute deadline plus AbortSignal through the status socket and every transport child.
  • mosaic console restart and mosaic org reload <id> call the existing F3 routes.

Review: Sol CHANGES 0/2 on 2109458b3 (malformed data from one org returned 503 for all; the deadline did not cancel in-flight work). Fix d35447005: both fixed; workspace-failures.test.mjs 0/10 on the parent, 10/0 on the fix. Lead re-pinned packages/webui/src/bus.mjs in bus channel-proof (optional signal/deadline; nonces, argv and limits unchanged).

Gate: 95 reader files serially, 1064 pass, 1 fail (the pin, 2/0 after re-pin); rename-v1-contract 7/0 and rename-b-commands 9/0 also pass.

U1 of phase U (PRD 1.20, #1873): the cross-organization read model and two console verbs. - `GET /api/workspace` merges projects, sessions, inbox, tasks and metrics across every organization the owner belongs to. Each org reports ok, starting, down, timeout or invalid; one bad org never fails the response. Owner only; granted users and the tester get 403. - Per-org 4 s deadline carried as an absolute deadline plus AbortSignal through the status socket and every transport child. - `mosaic console restart` and `mosaic org reload <id>` call the existing F3 routes. Review: Sol CHANGES 0/2 on 2109458b3 (malformed data from one org returned 503 for all; the deadline did not cancel in-flight work). Fix d35447005: both fixed; workspace-failures.test.mjs 0/10 on the parent, 10/0 on the fix. Lead re-pinned packages/webui/src/bus.mjs in bus channel-proof (optional signal/deadline; nonces, argv and limits unchanged). Gate: 95 reader files serially, 1064 pass, 1 fail (the pin, 2/0 after re-pin); rename-v1-contract 7/0 and rename-b-commands 9/0 also pass.
jason.woltje added 2 commits 2026-11-10 00:30:34 +00:00
GET /api/workspace on the dev-local-owner Console: one snapshot of
projects, sessions, inbox, tasks and per-org metrics across every
organization the owner belongs to. Membership reuses the org list's
admission (organizations.members); each org is read over the same
per-org options the org pages use, with one deadline per org (4000 ms)
and a state (ok, down, starting, timeout, invalid) with a time. Every
row carries its org id; decide commands carry --org. Granted users
and the tester get 403 owner-only. Polling at 10 s, no push.

mosaic console restart and mosaic org reload <id> call the Console's
F3 routes (POST /api/console/restart, POST /api/orgs/<id>/restart/bus)
so gating, proof and trail are the Console's own; both refuse inside
an agent run first.

The cross-org assistant read is designed and stopped: it needs a new
broker read verb or role authority.
jason.woltje merged commit d35447005a into refactor 2026-11-10 00:30:44 +00:00
Sign in to join this conversation.