feat(desktop): add experiment-gated Workstream Board - #6184
Draft
loganj wants to merge 5 commits into
Draft
Conversation
7 tasks
loganj
marked this pull request as ready for review
August 18, 2026 19:05
loganj
marked this pull request as draft
August 18, 2026 19:21
loganj
force-pushed
the
workstream-board/01-canvas-cards
branch
3 times, most recently
from
August 20, 2026 00:02
f45289d to
4820be0
Compare
Adds the workstreamBoard preview flag, a /workstreams route, and a gated sidebar destination that surface live loganj-ws-* channel canvases as minimal cards (channel name, synopsis, orchestrator, assignees). Card data comes from a single versioned buzz-workstream-card fenced JSON block per canvas; parse failures (missing block, invalid JSON, duplicate blocks, unknown version, invalid/missing fields) degrade only that card to channel metadata plus an inline unavailable state. Discovery reuses useChannelsQuery with a plain name-prefix filter and no creator/membership filter; per-card data reuses useCanvasQuery. Split AppSidebarProps out into the existing AppSidebar.types.ts companion file to keep AppSidebar.tsx under the repo's 1000-line file-size ratchet after adding the new sidebar wiring. Scope is limited to bullet 1 of the Workstream Board spike: no liveness, PR status, waiting-on resolution, or sorting. Signed-off-by: loganj <loganj@squareup.com> Co-authored-by: Claude Code <noreply@anthropic.com>
sq agents review flagged that the prefix-only discovery filter let an
archived loganj-ws-* channel keep appearing as an active board card.
Every other active-channel surface in this codebase (sidebar, search,
channel browser, agent autocomplete) excludes archivedAt !== null, so
apply the same rule here.
The review's second finding — one relay canvas query per rendered card
via useCanvasQuery — is the contract's specified design ("per matching
channel canvas fetch via existing canvas query/API paths") for this
bullet; batching/limiting canvas fetches is left for a later slice
rather than implemented as an unscoped addition here.
Signed-off-by: loganj <loganj@squareup.com>
Co-authored-by: Claude Code <noreply@anthropic.com>
Signed-off-by: loganj <loganj@squareup.com> Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: loganj <loganj@squareup.com>
Signed-off-by: loganj <loganj@squareup.com>
loganj
force-pushed
the
workstream-board/01-canvas-cards
branch
from
August 20, 2026 15:13
4820be0 to
ab58a51
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖
Summary
People coordinating several workstreams in Buzz have to open channels one by one to understand what is underway and who owns it. This adds the first slice of a Workstream Board in Desktop: one place to scan joined workstream channels and open the canonical channel behind any card.
This is PR 1 of a four-PR Workstream Board stack. It is an experiment, off by default, and must be enabled from Settings → Experiments before its sidebar destination appears.
What changes
loganj-ws-; visible but unjoined channels and unrelated channels stay off the board.Later PRs in the stack add live agent-working state, pull-request status, and waiting-on/sorting behavior. Those signals are intentionally outside this tracer bullet.
Related issue
None found. This is an experiment-gated product spike.
Testing
2892e4aa74fe6f1761550108fdda10e5164c0185, which includes the current foundation headf45289db0c8f729a4f24b633f964a1b0163ac3ce: Desktop 5,143/5,143, Workstream Board 52/52, presence reconciler 12/12,pnpm typecheckpassed, andpnpm checkcompleted with zero errors.Acceptance gates
Demo
The qualifying evidence is one uninterrupted 19.44-second capture (SHA-256
f826b6ee4237c761dec4da55db9bc13bc898a4bbc77dd9a8f6f8d5ae413d171b), attached here as an animated GIF with the original MP4 linked below:Original MP4 (full quality)
Sampled frames from the same capture: