@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
ao start a project with multiple sessions
- 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)
- Keep one session actively Working (agent mid-run, no PR yet)
- Compare sidebar dots vs board card colors → sidebar shows gray for the non-working sessions
Suggested fix
- 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.
- 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.
@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
renzaflowwith 4 sessions across 3 board zones:backend-eventsjob-managerjson-eventsfrontend-eventsThe 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()inpackages/web/src/lib/types.ts. But they pass different arguments:Dashboard.tsx):getAttentionLevel(s, attentionZones)— respects the configured mode (default"simple")ProjectSidebar.tsx):getAttentionLevel(s)— no mode arg, defaults to"detailed"In
"simple"mode,respond+reviewcollapse intoaction. So the same session can resolve to a differentdata-levelon each surface → different dot color and different column placement.There's an acknowledging code comment in
ProjectSidebar.tsx: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:
.sidebar-session-dot[data-level="merge"|"review"]CSS rules in the redesign, so those levels fall through to no background.Reproduction
ao starta project with multiple sessionsSuggested fix
getAttentionLevel(session, attentionZones)at all three call sites inProjectSidebar.tsx, threaded down fromDashboard.tsxthe same way it's passed to the board. This closes the source-confirmed half.session.activityvs the derivedlevel, 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;getAttentionLevelis 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.