[FEATURE] Desktop sidebar: show a session count on collapsed custom groups
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Collapsible groups in the desktop Sessions sidebar (Group by → Custom groups) are genuinely good, and collapsing is what makes the sidebar usable once you have more than a handful of sessions. I organize my whole week with them.
But the collapsed state is lossy in one specific, fixable way: a collapsed group is a name and a chevron, and nothing else. My six groups right now hold 20, 8, 8, 6, 1 and 1 sessions — and collapsed, all six look identical. The group that has quietly piled up to 20 and the group holding one leftover session present exactly the same way.
So the only way to learn whether a group is worth opening is to open it, which is the cost collapsing was supposed to remove. I use these groups as a workload queue ("Today", "This Week", "When away from laptop"), and for that purpose the member count is the single most useful fact about a collapsed group — it's what I'd act on before anything actually inside it.
Proposed Solution
Show the member count next to the disclosure chevron on a collapsed group header:
> 1️⃣ Today 20
> 2️⃣ This Week 8
> 🕰️ Waiting 1
Muted/secondary styling, right-aligned or immediately after the name. Showing it while expanded too is fine, just less necessary.
This needs no new data model and no new query. Group membership is already persisted in the desktop app's own preferences file (claude_desktop_config.json → preferences.epitaxyPrefs.dframe-group-scopes.<scope>), stored twice over:
order: { "<groupId>": ["<sessionId>", ...] }— the display-order arrayassignments: { "<sessionId>": "<groupId>" }— the reverse map
On my install those two agree exactly across all six groups (20/8/8/6/1/1; 44 assignments total). So the badge is order[groupId].length — a render change on data the renderer already holds.
Two details worth deciding deliberately rather than by accident, because a count that disagrees with what expanding reveals is worse than no count at all:
- Archived members. If archived sessions stay assigned to a group, either exclude them or show them separately (
18 (+2 archived)). Don't let the badge read higher than the list. - Truncation. Groups currently truncate behind a "Show N more" row (see #90303). The header count should be the group's true total, not the number of rows currently rendered.
Alternative Solutions
- Count on hover / in a tooltip. Cheaper, but hovering six headers in turn to compare them is barely better than expanding them in turn.
- Show running/unread state instead (#83754, #83699). More useful than a count and considerably more work. It's orthogonal — a count is worth having either way, and is the cheap half.
Priority
Medium - Would be very helpful
Feature Category
User interface
Use Case Example
Every morning I triage across custom groups: what's in "Today", what slid to "This Week", what's parked in "When away from laptop". Right now that triage begins with expanding groups one at a time just to find out which ones have anything in them — and because expanding one pushes the others down, comparing two groups means scrolling between them. A count on each collapsed header answers "where is the work piled up?" in a single glance, before I click anything.
Additional Context
Related issues on the same sidebar surface, all distinct from this one:
- #83699 — collapsed project groups should still show active sessions (same "collapsing discards the thing I navigate by" root; asks for sessions rather than a count)
- #83754 — surface running tasks and unread conversations instead of collapsing everything
- #90303 — "Show N more" is one-way, and the reveal count never decreases
- #86884 — the auto-generated Archived Sessions group truncates silently with no count; the missing-count half of that report is this same gap on an auto group
Environment: macOS 26.6.2 (arm64), Claude desktop 1.40609.0.