feat(desktop): a sidebar plan hangs its card beside its row: its agents and pull requests at a glance
The last part of Dean's ask ("We can also add more information in a hover element on a plan in the sidebar"), as a follow-up to #2068 now that #2049's Tooltip card prop has landed.
What changes
-
The card on each row: each sidebar plan row is wrapped in
Tooltipwithcard={<PlanCard …/>}, so resting on a row hangs the plan's card. It has the same wait, warm spell, and dismissal as every hint and #2049's agent tab card. The card shows:- the plan's name in full, how long ago it was updated, and its repository
- up to three agents, each with the harness mark #2067 wired in (working ring / alert), its
ModelLabel, and "Working… 2m 8s" / "Done 3m" / "Failed 1h" - up to three PRs, each with "#128 · title", coloured +/−, and Draft/Merged/Closed
- "and N more" under each list when it was capped
Everything comes from the plan list row (#2068), so nothing is fetched on hover.
-
New
cardBesideoption onTooltip: it hangs the card past the control's end, level with the control's top and held inside the window, instead of under it. A card under a sidebar row would cover the rows beneath it; beside it, it opens over the work column, the way Conductor and Linear hang theirs. The agent tab card (#2049) is unchanged.
Tests
tooltip.test.ts: a card withcardBesidestands past the control's end, level with its top, and is held inside the window near the bottom edge.desktop-sidebar.test.ts: resting on a plan row hangs its card beside the row; the card describes the row and lists its PR line.
Screenshots
The real renderer in headless Chrome: a fixture sidebar with the row hovered through the real Tooltip.
| Light | Dark |
|---|---|
![]() | ![]() |
Mac verification
CI could not verify the Mac UI, and ./scripts/verify.sh was not run: this was built on a Linux cloud VM, and CI builds nothing for the Mac. LUKE-159 is the manual Mac pass. ./scripts/check.sh exits 0.
🤖 Generated with Claude Code

