Skip to content

Sidebar session status dots don't match board attention zone — only actively-working sessions show color #3099

Description

@i-trytoohard

@nikhilachale

Summary

Sidebar session dots and board card status colors can disagree for the same session. In the observed case, only actively-working sessions get a colored dot in the sidebar; sessions sitting in In Review or Ready to Merge render as plain gray, even though their board cards correctly show blue/green.

Observed behavior

Project renzaflow with 4 sessions across 3 board zones:

Session Board card Board dot Sidebar dot
backend-events Working (col. 1) teal ✓ teal ✓
job-manager PR open (col. 3) blue gray
json-events Ready (col. 4) green gray
frontend-events Ready (col. 4) green gray

The sidebar should mirror the board's attention zone color. It doesn't — only the actively-running session is colored.

Expected behavior

The sidebar session dot and the board card for the same session must derive from the same status source and render the same color. A "Ready to Merge" card should never show a gray dot in the sidebar.

Root cause (two layered issues)

1. Sidebar and board call getAttentionLevel() with different modes (source-confirmed)

Both UI surfaces are supposed to be colored from one function, getAttentionLevel() in packages/web/src/lib/types.ts. But they pass different arguments:

  • Board (Dashboard.tsx): getAttentionLevel(s, attentionZones) — respects the configured mode (default "simple")
  • Sidebar (ProjectSidebar.tsx): getAttentionLevel(s) — no mode arg, defaults to "detailed"

In "simple" mode, respond + review collapse into action. So the same session can resolve to a different data-level on each surface → different dot color and different column placement.

There's an acknowledging code comment in ProjectSidebar.tsx:

"ProjectSidebar consumes getAttentionLevel() without passing a mode, so the function defaults to 'detailed'..."

2. Non-working sidebar dots render gray (observed in current build)

Issue can only produce color mismatches — never gray/no-color. The screenshot shows that only the actively-working session is colored; everything waiting on a PR is gray. This points to one of:

  • (a) The sidebar dot is sourced from agent runtime activity (idle → gray, running → teal) instead of the derived attention level, while the board card reads PR/lifecycle state. Two different status dimensions painted in two places.
  • (b) Missing/broken .sidebar-session-dot[data-level="merge"|"review"] CSS rules in the redesign, so those levels fall through to no background.

Reproduction

  1. ao start a project with multiple sessions
  2. Get at least one session to Ready to Merge (PR open, CI passing, mergeable) and one to In Review (PR open, CI pending or review requested)
  3. Keep one session actively Working (agent mid-run, no PR yet)
  4. Compare sidebar dots vs board card colors → sidebar shows gray for the non-working sessions

Suggested fix

  1. Pass the mode through in the sidebar: getAttentionLevel(session, attentionZones) at all three call sites in ProjectSidebar.tsx, threaded down from Dashboard.tsx the same way it's passed to the board. This closes the source-confirmed half.
  2. Investigate the gray dots in the current build — confirm whether the sidebar dot is reading session.activity vs the derived level, and verify .sidebar-session-dot[data-level="merge"|"review"] CSS rules exist and apply.

Severity

P2 — cosmetic/UX, not data or security. No status is miscomputed server-side; getAttentionLevel is correct. The defect misleads the operator (sidebar reads "nothing happening" while board reads "ready to merge") but does not corrupt state.

Evidence

Two screenshots attached showing the sidebar dots vs board card colors for the same 4 sessions.

Metadata

Metadata

Labels

bugSomething isn't working

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions