Skip to content

feat(fleet): add sidebar work queue and standardize attention vocabulary - #348

Open
astyfx wants to merge 1 commit into
mainfrom
workflow-foundations
Open

feat(fleet): add sidebar work queue and standardize attention vocabulary#348
astyfx wants to merge 1 commit into
mainfrom
workflow-foundations

Conversation

@astyfx

@astyfx astyfx commented Aug 9, 2026

Copy link
Copy Markdown
Member

Summary

The sidebar listed workspaces in a ranked flat list that never said why one outranked another — a stalled agent and a workspace visited yesterday looked alike. This groups them into lanes, and fixes the vocabulary and layer boundaries the lanes depend on.

ACTION REQUIRED
  release          stave
IN PROGRESS
  api-refactor     stave
IDLE
  scratch          other-project

Key changes

  • Work queue — new pure module src/lib/fleet/sidebar-work-queue.ts: lane classifier and grouper with fixed priority action-required > in-progress > in-review > idle, one lane per workspace, empty lanes dropped. Lanes derive from the existing attention projection and task status, so the section adds no store subscription, no persistence, and no IPC. The last lane is idle, not done: without a PR-status subscription, "merged" and "untouched" are indistinguishable, and "Done" would be a claim the data does not support.
  • Sidebar — lanes replace the flat Active workspaces section; the row moves into WorkQueueRow so the nested row-local subscriptions (status icon, hover preview) stay intact.
  • Vocabulary — the Fleet "need" wording becomes the "attention item" wording the projection module already used (FleetAttentionItem, attentionItemsByWorkspaceId, FleetAttentionInbox), surfaced as Action required in the inbox, top bar, and sidebar. Fleet itself is unchanged.
  • Boundariesdocs/architecture/agent-platform-taxonomy.md fixes the three layers (turn runtime / supervision / continuity), the shared vocabulary, and the boundary statements, with a matching config/reliability-gates.json entry and gate tests whose names repeat each statement (a routine cannot target an existing task; the ledger never imports execution runtimes; the executor never writes ledger rows; utility inference stays mechanical; one lane per workspace).

Verification

  • bun run typecheck
  • bun run test:isolated — 378 files pass
  • node scripts/check-doc-paths.mjs, check-reliability-gates.mjs, check-max-lines-ratchet.mjs
  • Playwright: sidebar-work-queue-lanes, sidebar-active-workspaces-dismiss, fleet-action-required
  • Theme: reuses existing semantic tokens only, so no new token needed across light/dark and built-in themes

🤖 Generated with Claude Code

The sidebar listed workspaces in a ranked flat list that never said why one
outranked another, so a stalled agent and a workspace visited yesterday looked
alike. Group them into lanes instead, and fix the vocabulary and layer
boundaries the lanes depend on.

- Add `src/lib/fleet/sidebar-work-queue.ts`: a pure lane classifier and grouper
  (`action-required` > `in-progress` > `in-review` > `idle`), one lane per
  workspace, empty lanes dropped. Lanes derive from the existing attention
  projection and task status, so the section adds no store subscription, no
  persistence, and no IPC.
- Render the lanes in `ProjectWorkspaceSidebar`, extracting the row into
  `WorkQueueRow` so the nested row-local subscriptions stay intact.
- Rename the Fleet "need" vocabulary to the "attention item" wording the
  projection module already used, and surface it as "Action required" in the
  inbox, the top bar, and the sidebar.
- Add `docs/architecture/agent-platform-taxonomy.md` fixing the three layers,
  the shared vocabulary, and the boundary statements, with a matching entry in
  `config/reliability-gates.json` and gate tests that repeat each statement.

Verification: bun run typecheck, bun run test:isolated (378 files),
check:doc-paths, check:reliability-gates, check:max-lines-ratchet, and the
sidebar/fleet Playwright specs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@astyfx
astyfx requested a review from a team as a code owner August 9, 2026 10:12
@astyfx
astyfx requested review from JongSikLim and png-1105 and removed request for a team August 9, 2026 10:12

@heath-s heath-s left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

@upwind-code-us

upwind-code-us Bot commented Aug 9, 2026

Copy link
Copy Markdown

Upwind Upwind Code Scan - ✅ Proceed with Deployment

0 newly introduced vulnerabilities · 0 resolved · 0 total in this PR vs main

View full analysis in Upwind Console

Scan completed in 16s

Scan history (1 scan)
Commit Scanned at New Resolved Net
af5db34 < 2026-08-09 10:13 UTC 0 0 0

Last scanned: af5db34 · 2026-08-09 10:13 UTC

@upwind-code-us

upwind-code-us Bot commented Aug 9, 2026

Copy link
Copy Markdown

Upwind Upwind IaC Scan - ✅ Proceed with Deployment

0 newly introduced misconfigurations · 0 resolved · 0 total in this PR vs main

View full analysis in Upwind Console →

Scan completed in 4s

Scan history (1 scan)
Commit Scanned at New Resolved Net
af5db34 < 2026-08-09 10:13 UTC 0 0 0

Last scanned: af5db34 · 2026-08-09 10:13 UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants