Desktop: channels nested under a project show no unread or activity state
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
### Summary
Channels nested under a project in the sidebar render as plain navigation rows. They show no unread state, no mention badge, and no activity indicator, while the same channels listed under **Channels** (or in a user-defined section) show all three.
### What I observed
Desktop 0.5.22, self-hosted relay 0.2.1.
1. Create a project, add channels to it with **Add channel** so they appear nested under the project in the sidebar.
2. Put one of those same channels into a custom section as well (right-click → Move to section).
3. Have an agent post in that channel.
The row under **the section** shows the working indicator and the unread state. The row for the same channel **under the project** shows nothing — it looks idle whether or not work is happening.
### Where this comes from
`SidebarProjectsSection.tsx` renders its own rows and never references unread state, mention counts, or `ChannelActivityPopover`. The popover is only mounted in `SidebarSection.tsx`, which the project tree does not use.
### Why it matters
The project tree is the natural place to watch a project — it is the grouping the app itself proposes. As it stands, a user who organises work by project has to keep the same channels in a second, flat list just to see that something is happening, which defeats the grouping.
### Suggestion
Reuse the same row rendering (or at least the unread/mention/activity affordances) for project child channels, so a channel looks and behaves the same wherever it is listed.
Contributor guide
Research direction
Start by comparing SidebarProjectsSection.tsx with SidebarSection.tsx, focusing on how project child-channel rows differ from the shared channel rows. Trace the existing unread, mention, and ChannelActivityPopover handling, then verify that a nested project channel shows the same indicators as the channel in a custom section while following the reproduction steps.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop, frontend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 82/100