Skip to content

feat(web): filter the sidebar by several projects at once - #8142

Open
c0nsoleg wants to merge 2 commits into
pingdotgg:mainfrom
c0nsoleg:feat/sidebar-multi-project-filter
Open

feat(web): filter the sidebar by several projects at once#8142
c0nsoleg wants to merge 2 commits into
pingdotgg:mainfrom
c0nsoleg:feat/sidebar-multi-project-filter

Conversation

@c0nsoleg

@c0nsoleg c0nsoleg commented Aug 24, 2026

Copy link
Copy Markdown

The project filter was a radio menu: all projects, or one. If you're working
in two repos at the same time you end up flipping it back and forth all day.

It's checkboxes now.

Before

before

After

after

Tests: 4 new ones for the toggle/prune helpers, plus typecheck and lint on
the changed files.


Note

Low Risk
Client-only sidebar filter UX and local state; no auth, persistence, or API changes.

Overview
The sidebar project filter moves from single-select to multi-select: an empty checkbox selection still means all projects, but users can check several logical projects and see the union of their threads without flipping the menu back and forth.

State is now projectScopeKeys (array) instead of one nullable key. toggleProjectScopeKey and pruneProjectScopeKeys in Sidebar.logic handle add/remove and drop stale keys when project groups disappear. The filter menu uses MenuCheckboxItem with closeOnClick={false} so the menu stays open while toggling; the trigger shows one project’s favicon/name when exactly one is selected, “All projects” when none, or “N projects” when several.

Pagination reset and bulk-selection clearing key off projectScopeSelectionKey (sorted set of keys, or "all"), so reordering picks alone does not reset settled paging or selection.

Reviewed by Cursor Bugbot for commit b6ba5a9. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Update Sidebar to support filtering by multiple projects

  • Updates the Sidebar component to allow users to filter by multiple projects simultaneously instead of a single project.
  • Replaces projectScopeKey with projectScopeKeys (readonly string array) and introduces toggleProjectScopeKey and pruneProjectScopeKeys utilities to manage selection state.
  • Changes the project filter menu from a radio group to a checkbox list that remains open while toggling selections, and updates empty-state messages to handle zero, one, or multiple selections.
  • Resets pagination and clears row selection only when the effective set of scoped projects changes, using the new projectScopeSelectionKey.
  • Behavioral Change: The filter UI switches from single-select radio buttons to multi-select checkboxes, and stale project selections are pruned automatically when available projects change.

Macroscope summarized b6ba5a9.

@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8c6d033e-a769-474d-b94f-a987adea405d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 24, 2026
@macroscopeapp

macroscopeapp Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The sidebar filter changes from single-select to persistent multi-select and changes the effective thread/draft set, selection state, and settled pagination behavior. The work is localized client-side code with helper tests and no backend or schema changes, but it introduces a new user-facing workflow with several coordinated runtime effects.

You can add or adjust custom eligibility rules. Learn more.

The project filter was a radio menu: all projects, or one. Working in two
repos at the same time meant flipping it back and forth all day.

It's checkboxes now. The scope is a list of project keys, empty meaning all,
and the popup stays open while you pick. The thread list, the draft rows, the
bulk-selection reset and the settled paging all read the union of the picked
groups, so nothing under the filter changed. The trigger keeps favicon plus
name for a single project and shows "3 projects" past that. Picks are dropped
when their project group goes away, which replaces the old single-key reset.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@c0nsoleg
c0nsoleg force-pushed the feat/sidebar-multi-project-filter branch from 989e36e to fa2163e Compare August 24, 2026 23:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant