One Inbox for the whole system (#1873, lane sp3). Third slice of the single-pane direction.
What changes for a person:
#/inbox lists what needs a person across every organization that answers, newest first. Each row has its organization chip and a project chip when the item has one.
Filters by organization and by decision class live in the hash query, so a reload keeps them.
Answering a row posts to that row's organization, never to the one opened last. "Open in " goes to the item in its own organization.
A stopped organization is named at the top as not read, with the reason.
The dashboard's Needs you tile and card and the sidebar count come from the same read and the same order.
#/orgs/<id>/inbox still works and shows that organization's items, with the hire form.
How: WebUI only (workspace.js, bus.js, display.js, app.js, shell.css). It uses the existing GET /api/workspace?sections=inbox and the existing per-organization decision routes. No new route, no role, contract or schema change.
Bug found on the way: the answer check read routed_to, a field the broker never sends (it sends route_to). Fixed, and the new test's fixture now mirrors the broker row.
Tests: new tests/system-inbox-browser.test.mjs (10 tests), red first. Lane gate 106 files, 892/0. Lead check at 3885f4628: 11 WebUI files one at a time, the new file twice, 111/0.
Reviews (fresh Opus 5.5 delegates): review 1 asked for six changes, all handled. Review 2 approved with three P3, all fixed. Two fixes came after review 2 and were read by the Lead instead: #/inbox keeps the system theme, and the hire checks run before the answer panel so a render can't paint over a confirm step. The second has no deterministic test.
Follow-ups:
The filter is by decision class, not the prototype's Decisions / Questions / Receipts / System. No read classifies items that way.
Fixtures in three older browser tests still carry routed_to.
The sidebar count can go stale if every bus stops, has no sequence guard, and blanks for a moment on an organization switch.
The dashboard card shows the five newest, so an older gated item can be off the card while still counted.
One Inbox for the whole system (#1873, lane sp3). Third slice of the single-pane direction.
What changes for a person:
- `#/inbox` lists what needs a person across every organization that answers, newest first. Each row has its organization chip and a project chip when the item has one.
- Filters by organization and by decision class live in the hash query, so a reload keeps them.
- Answering a row posts to that row's organization, never to the one opened last. "Open in <org>" goes to the item in its own organization.
- A stopped organization is named at the top as not read, with the reason.
- The dashboard's Needs you tile and card and the sidebar count come from the same read and the same order.
- `#/orgs/<id>/inbox` still works and shows that organization's items, with the hire form.
How: WebUI only (`workspace.js`, `bus.js`, `display.js`, `app.js`, `shell.css`). It uses the existing GET `/api/workspace?sections=inbox` and the existing per-organization decision routes. No new route, no role, contract or schema change.
Bug found on the way: the answer check read `routed_to`, a field the broker never sends (it sends `route_to`). Fixed, and the new test's fixture now mirrors the broker row.
Tests: new `tests/system-inbox-browser.test.mjs` (10 tests), red first. Lane gate 106 files, 892/0. Lead check at 3885f4628: 11 WebUI files one at a time, the new file twice, 111/0.
Reviews (fresh Opus 5.5 delegates): review 1 asked for six changes, all handled. Review 2 approved with three P3, all fixed. Two fixes came after review 2 and were read by the Lead instead: `#/inbox` keeps the system theme, and the hire checks run before the answer panel so a render can't paint over a confirm step. The second has no deterministic test.
Follow-ups:
- The filter is by decision class, not the prototype's Decisions / Questions / Receipts / System. No read classifies items that way.
- Fixtures in three older browser tests still carry `routed_to`.
- The sidebar count can go stale if every bus stops, has no sequence guard, and blanks for a moment on an organization switch.
- The dashboard card shows the five newest, so an older gated item can be off the card while still counted.
#/inbox lists every answering organization's decisions from the one GET /api/workspace read, newest
first, each row with its organization chip and a project chip when it has one. Organization and
type filters live in the hash query. A stopped organization is named at the top with its reason.
An answer from the list reads and posts to the row's own organization (/api/orgs/<org>/...), never
the one opened last, and each item can be opened in its own organization. #/orgs/<id>/inbox is the
same list filtered to that organization. No server route was added.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
One Inbox for the whole system (#1873, lane sp3). Third slice of the single-pane direction.
What changes for a person:
#/inboxlists what needs a person across every organization that answers, newest first. Each row has its organization chip and a project chip when the item has one.#/orgs/<id>/inboxstill works and shows that organization's items, with the hire form.How: WebUI only (
workspace.js,bus.js,display.js,app.js,shell.css). It uses the existing GET/api/workspace?sections=inboxand the existing per-organization decision routes. No new route, no role, contract or schema change.Bug found on the way: the answer check read
routed_to, a field the broker never sends (it sendsroute_to). Fixed, and the new test's fixture now mirrors the broker row.Tests: new
tests/system-inbox-browser.test.mjs(10 tests), red first. Lane gate 106 files, 892/0. Lead check at3885f4628: 11 WebUI files one at a time, the new file twice, 111/0.Reviews (fresh Opus 5.5 delegates): review 1 asked for six changes, all handled. Review 2 approved with three P3, all fixed. Two fixes came after review 2 and were read by the Lead instead:
#/inboxkeeps the system theme, and the hire checks run before the answer panel so a render can't paint over a confirm step. The second has no deterministic test.Follow-ups:
routed_to.