One task board for the whole system (#1873, lane sp4). Fourth slice of the single-pane direction.
What changes for a person:
#/tasks shows every organization's tasks on one board, in the columns the per-organization board already uses. Each card has its organization chip and a project chip, or "No project".
Filters by organization and by project live in the hash query, so a reload keeps them.
A move, edit, archive or new task goes to the card's own organization and is offered only where that organization's config allows task changes.
A task opened from the system board has "Open in ", which opens it on that organization's board.
A stopped organization is named at the top as not read, with the reason.
#/orgs/<id>/tasks is the same board scoped to one organization.
How: WebUI only (tasks-board.js, workspace.js, bus.js, display.js). The Inbox chip and "not read" helpers moved to module scope in workspace.js and are shared. Writes use the existing POST /api/workspace/tasks. No new route, no role, contract or schema change.
Bug found on the way: two overlapping first renders left the board without a read and showed "The last read failed". The board now waits for the newest read.
Rebase: the lane was built on 3885f4628 and rebased onto f97e0d3ae (the Agents page). Three one-line conflicts in system(), wsPage and the MosaicWorkspace export, each resolved as the union of both lanes. range-diff shows commits 2 to 5 unchanged.
Tests: new tests/system-tasks-browser.test.mjs (12 tests), red first. Lane gate 109 files, 937/0 before the rebase. Lead check on the rebased head ed4f45ed2: 11 WebUI files one at a time, including the Agents and Inbox files, 131/0.
Reviews (fresh Opus 5.5 delegates): round 1 approved, round 2 asked for three changes, round 3 approved with two P3. Both P3 are fixed in the last commit, three code lines, read by the Lead instead of a fourth reviewer.
Follow-ups:
The write check gives the same answer for every organization today, because the server's flag is Console-wide.
Assignee, state, label and search filters stay in memory, not in the address.
The column reads "In progress", where the prototype says "Doing".
One task board for the whole system (#1873, lane sp4). Fourth slice of the single-pane direction.
What changes for a person:
- `#/tasks` shows every organization's tasks on one board, in the columns the per-organization board already uses. Each card has its organization chip and a project chip, or "No project".
- Filters by organization and by project live in the hash query, so a reload keeps them.
- A move, edit, archive or new task goes to the card's own organization and is offered only where that organization's config allows task changes.
- A task opened from the system board has "Open in <org>", which opens it on that organization's board.
- A stopped organization is named at the top as not read, with the reason.
- `#/orgs/<id>/tasks` is the same board scoped to one organization.
How: WebUI only (`tasks-board.js`, `workspace.js`, `bus.js`, `display.js`). The Inbox chip and "not read" helpers moved to module scope in `workspace.js` and are shared. Writes use the existing POST `/api/workspace/tasks`. No new route, no role, contract or schema change.
Bug found on the way: two overlapping first renders left the board without a read and showed "The last read failed". The board now waits for the newest read.
Rebase: the lane was built on 3885f4628 and rebased onto f97e0d3ae (the Agents page). Three one-line conflicts in `system()`, `wsPage` and the `MosaicWorkspace` export, each resolved as the union of both lanes. range-diff shows commits 2 to 5 unchanged.
Tests: new `tests/system-tasks-browser.test.mjs` (12 tests), red first. Lane gate 109 files, 937/0 before the rebase. Lead check on the rebased head ed4f45ed2: 11 WebUI files one at a time, including the Agents and Inbox files, 131/0.
Reviews (fresh Opus 5.5 delegates): round 1 approved, round 2 asked for three changes, round 3 approved with two P3. Both P3 are fixed in the last commit, three code lines, read by the Lead instead of a fourth reviewer.
Follow-ups:
- The write check gives the same answer for every organization today, because the server's flag is Console-wide.
- Assignee, state, label and search filters stay in memory, not in the address.
- The column reads "In progress", where the prototype says "Doing".
#/tasks is a system route that shows every organization's tasks on one board,
with the per-organization columns, organization and project chips on each card,
and the organization and project filters kept in the address. An organization
that did not answer is named first with its reason. A move or edit goes to the
row's own organization and is offered only where that organization's own config
takes task changes. #/orgs/<id>/tasks is the same board scoped to one
organization, and a card opened from the system board links to its task there.
A render replaced by a newer one now draws from that newer read instead of
throwing on an empty board.
- The card's organization chip carries the avatar in place of its dot; the bare avatar
before it is gone (prototype shot 13).
- A filter naming an organization or project that is not on the list is dropped from the
address after the render, and a dropped project reads again without its server filter.
- #/orgs/<id>/tasks with an id no organization can have says "This organization is not
on your list." instead of showing every organization's tasks.
- The write check's comment and the test's fake say orgSetup is Console-wide today.
The scope's org= in the workspace read is where the board reads, not a filter, so the
count line and the empty state no longer treat it as one. Found in the retaken shots.
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 task board for the whole system (#1873, lane sp4). Fourth slice of the single-pane direction.
What changes for a person:
#/tasksshows every organization's tasks on one board, in the columns the per-organization board already uses. Each card has its organization chip and a project chip, or "No project".#/orgs/<id>/tasksis the same board scoped to one organization.How: WebUI only (
tasks-board.js,workspace.js,bus.js,display.js). The Inbox chip and "not read" helpers moved to module scope inworkspace.jsand are shared. Writes use the existing POST/api/workspace/tasks. No new route, no role, contract or schema change.Bug found on the way: two overlapping first renders left the board without a read and showed "The last read failed". The board now waits for the newest read.
Rebase: the lane was built on
3885f4628and rebased ontof97e0d3ae(the Agents page). Three one-line conflicts insystem(),wsPageand theMosaicWorkspaceexport, each resolved as the union of both lanes. range-diff shows commits 2 to 5 unchanged.Tests: new
tests/system-tasks-browser.test.mjs(12 tests), red first. Lane gate 109 files, 937/0 before the rebase. Lead check on the rebased headed4f45ed2: 11 WebUI files one at a time, including the Agents and Inbox files, 131/0.Reviews (fresh Opus 5.5 delegates): round 1 approved, round 2 asked for three changes, round 3 approved with two P3. Both P3 are fixed in the last commit, three code lines, read by the Lead instead of a fourth reviewer.
Follow-ups: