[Desktop] Pinned sessions should get their own section at the top of the left nav when grouping by status
- Dominant language
- Shell
- Stars
- 11.2k
- Forks
- 1.9k
- Avg merge
- 14h 16m
- Merged PRs (30d)
- 6
Description
### Describe the feature or problem you'd like to solve
When the left nav is grouped by session status, pinning a session moves it to the top of whichever status group it currently belongs to. It stays inside that group.
That doesn't give me what pinning is for. The session still moves between groups every time its status changes — top of one group, then top of another, then somewhere else again. So to use the pin, I first have to work out which group the session is in, and only then does being at the top of it help. The pin gives me position within a group, but not a stable place in the nav.
The result is that pinning is least useful exactly when I need it most. I group by status when I have a lot of sessions open, and that's precisely when a session that relocates on every status change is hard to keep track of.
Grouping by project doesn't have this problem — it already gives pinned sessions their own section above the groups. Status grouping is the only view where a pin is confined to a group.
### Proposed solution
Hoist pinned sessions into a dedicated **Pinned** section above the status groups, so a pinned session has one fixed location regardless of its status.
- Pinned sessions appear in the **Pinned** section only, not also inside their status group.
- Status stays visible on the pinned item, so pinning doesn't cost the information the grouped view exists to provide.
- A status change doesn't move a session out of the section — only **Unpin** does, returning it to its status group.
- The section is hidden when nothing is pinned.
This is already how grouping by project works — that view puts pinned sessions in their own section above the project groups, rather than pinning them inside a group. Grouping by status is the outlier. It also matches the last-updated view, where the pinned session sits apart at the top and the sorting applies to everything else.
### Additional context
Deliberately narrow: this is about where pinned sessions live in the grouped view, not about auto-pinning or any change to what **Pin** means.
- Operating system: Windows
- GitHub desktop app v1.1.2
Related issues:
- #3969 — Plan status indicators on session list items. Related to keeping status visible on pinned items.
- #3970 — User-defined tags on sessions. If tag grouping ships, pinned sessions would need the same treatment.
- #890 — Folder-Pinned Sessions. Different meaning of "pin" — auto-resuming a session per repo folder in the CLI.
Contributor guide
Research direction
No file or test is named in the issue. Start by locating the desktop left-navigation code for status grouping, then compare how project grouping and last-updated views render pinned sessions. Done means pinned sessions appear only in a hidden-unless-needed Pinned section, retain visible status, and return to their status group after unpinning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- shell
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 70/100