Skip to content

feat(web): filter sidebar threads by environment - #8530

Open
saphid wants to merge 14 commits into
pingdotgg:mainfrom
saphid:web/sidebar-environment-filter
Open

feat(web): filter sidebar threads by environment#8530
saphid wants to merge 14 commits into
pingdotgg:mainfrom
saphid:web/sidebar-environment-filter

Conversation

@saphid

@saphid saphid commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

The sidebar can filter threads by connected environment while keeping project scope and saved preferences consistent. Selecting an environment narrows the visible threads; explicitly disabling that environment clears the now-invalid scope.

The implementation preserves main’s persisted project-scope state and snapshot-readiness guard while integrating the latest sidebar behavior.

Verification

Head c92ee801ca17019f8c83326d5604a3e9e1be681b includes upstream main 4631000f5a7666c88402ce11a9ebb8cdef7a7dad. The conflict repair preserves the environment-filter coverage while accepting upstream deletion of unused helper coverage. All 120 focused Sidebar.logic tests, web typecheck and scoped lint pass. The contribution diff check is clean; independent review found no actionable source findings.

A fresh multi-environment client pass is still needed for visual and interaction acceptance. These captures are historical and were not recaptured on this head:

Work: GPT-6 in Codex with GPT-5.6 Sol implementation/source review on the larger repairs. Direct Claude Opus review was attempted but unavailable because OAuth had expired; no Claude review occurred.

@coderabbitai

coderabbitai Bot commented Aug 28, 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: ed595e2f-27b7-40f6-bd25-6aaef96209b9

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

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

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 28, 2026
@macroscopeapp

macroscopeapp Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR adds a new environment-filtering workflow to the production sidebar and integrates it with thread rendering, drafts, project scope, search, and selection behavior. The change is broader than a small isolated UI adjustment, so the resulting runtime interactions merit human review.

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

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Aug 28, 2026
@saphid
saphid force-pushed the web/sidebar-environment-filter branch from 258c853 to 8983e13 Compare August 28, 2026 21:35
@macroscopeapp
macroscopeapp Bot dismissed their stale review August 28, 2026 21:35

Dismissing prior approval to re-evaluate 8983e13

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One consistency finding on the new environment-filter trigger: it is the only icon SidebarMenuButton in this header row without the coarse-pointer hit-target overlay its neighbors use. Everything else (Menu/MenuPopup/MenuCheckboxItem composition, width-class contract on MenuPopup, active-filter dot matching PullRequestListFilters) matches the shared component system.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/Sidebar.tsx Outdated
Comment thread apps/web/src/components/Sidebar.tsx Outdated
@saphid
saphid force-pushed the web/sidebar-environment-filter branch from 8983e13 to 14ed67b Compare August 28, 2026 22:45
saphid and others added 2 commits August 29, 2026 13:47
Add an icon button next to the sidebar's project scope menu (visible only
when more than one environment is connected) that opens a checklist to
enable and disable which environments' threads the list shows. The filter
composes with the project scope, draft rows, search, and the settled-tail
pagination reset; the project menu narrows to projects with a presence in
an enabled environment.

State is the disabled set, so newly connected environments are visible by
default. The last enabled environment cannot be unchecked, and a catalog
change that would leave nothing enabled resets the filter instead of
hiding every thread behind a control that no longer renders.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@saphid
saphid force-pushed the web/sidebar-environment-filter branch from 14ed67b to 72c948d Compare August 29, 2026 03:48

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Two consistency findings on the new environment filter control in apps/web/src/components/Sidebar.tsx. Everything else (dot indicator matching PullRequestListFilters, MenuPopup width contract, SidebarMenuButton icon-color indirection) lines up with the existing system.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/Sidebar.tsx Outdated
Comment thread apps/web/src/components/Sidebar.tsx Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d80e30b. Configure here.

Comment thread apps/web/src/components/Sidebar.logic.ts Outdated

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding on the new commit: the locked environment row explains its constraint with a native title attribute instead of the shared Tooltip primitive. Details inline.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/Sidebar.tsx Outdated

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding on the newest commit: the environment checkbox rows now pin data-highlighted text colors, which overrides MenuCheckboxItem's accent-surface foreground contract.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/Sidebar.tsx Outdated
Comment thread apps/web/src/components/Sidebar.tsx Outdated
@t3dotgg

t3dotgg commented Sep 4, 2026

Copy link
Copy Markdown
Member

Note

🤖 GPT-6 Astra (preview) responding on behalf of Theo

This note is part of an automated cleanup pass.

Documentation carryover from #9241 at 32c1c96: update docs/user/thread-sidebar.md to explain that web and desktop can filter by project and environment, and explain how to clear each filter. Adapt the text to this PR's retained combobox and environment controls. Do not copy the alternative's Project/Environment submenu instructions. This records documentation work for follow-up and does not claim the text has been added.

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:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants