Skip to content

Show unread activity on collapsed sidebar sections#2042

Open
AaronGoldsmith wants to merge 5 commits into
block:mainfrom
AaronGoldsmith:smarty/section-unread-indicator
Open

Show unread activity on collapsed sidebar sections#2042
AaronGoldsmith wants to merge 5 commits into
block:mainfrom
AaronGoldsmith:smarty/section-unread-indicator

Conversation

@AaronGoldsmith

@AaronGoldsmith AaronGoldsmith commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • show a primary-color unread dot on collapsed custom, Channels, Forums, and Direct messages section headers
  • scope each section's unread state and “Mark all as read” action to the channels it actually renders
  • add Direct messages mark-all parity intentionally, while preserving Shift+Esc as the global mark-all shortcut
  • include screen-reader text and collapsed/expanded behavior coverage

Slack uses a similar collapsed-section signal, providing precedent for this lightweight treatment. The dot is informational and appears only while a section is collapsed so it does not duplicate channel-row unread styling.

Testing

  • pnpm exec biome check src/app/AppShell.tsx src/features/sidebar/ui/AppSidebar.tsx src/features/sidebar/ui/CustomChannelSection.tsx src/features/sidebar/ui/SidebarSection.tsx tests/e2e/channels.spec.ts
  • pnpm typecheck
  • pnpm exec playwright test tests/e2e/channels.spec.ts --project=smoke --grep "collapsed (custom|built-in) section" — 2 passed
  • pnpm exec playwright test tests/e2e/channels.spec.ts --project=smoke — 63 passed before the review follow-ups; focused tests rerun afterward
  • local pre-push desktop, Rust, and desktop-Tauri checks passed
  • explicit DCO author/signoff identity check passed for both commits

Review notes

An adversarial review specifically challenged section scoping, collapsed-only rendering, accessibility, mark-all semantics, and whether the tests could pass with broken behavior. Follow-up changes scoped Channels/Forums actions to their rendered arrays, added expanded-state coverage, and added a positive Direct messages scoping case. A delta review found no remaining blockers.

Screenshots

Cropped sidebar screenshots are attached in this PR comment.

npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s added 2 commits July 17, 2026 12:31
Co-authored-by: npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>

Co-authored-by: SmartyPants <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>

Signed-off-by: npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>

Co-authored-by: SmartyPants <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>

Signed-off-by: npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>
@AaronGoldsmith
AaronGoldsmith requested a review from a team as a code owner July 17, 2026 20:00

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 30d5ac5270

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread desktop/tests/e2e/channels.spec.ts
Co-authored-by: npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>

Co-authored-by: SmartyPants <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>

Signed-off-by: npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>
@AaronGoldsmith

AaronGoldsmith commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Screenshots

Collapsed custom section — the unread dot appears in the collapsed custom-section header while unread channel rows remain visible in other sections.

Collapsed custom section unread indicator

Collapsed built-in section — the Channels header shows its scoped unread dot; Forums and Direct messages remain clear.

Collapsed built-in section unread indicator

Co-authored-by: npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: SmartyPants <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>
@AaronGoldsmith
AaronGoldsmith marked this pull request as draft July 17, 2026 20:53
@AaronGoldsmith
AaronGoldsmith marked this pull request as ready for review July 17, 2026 21:27

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 898027de04

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread desktop/tests/e2e/channels.spec.ts Outdated
Co-authored-by: npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: SmartyPants <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: npub1yqxl8fhpqxfzquefhxee324mskczp6ygqftu6kvrt3hp4x2fzntqvmcw9s <200df3a6e10192207329b9b398aabb85b020e8880257cd59835c6e1a994914d6@sprout-oss.stage.blox.sqprod.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant