Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe sidebar adds a session-only environment filter. It hides matching threads, drafts, and project entries, maintains valid selections as environments connect or disconnect, and documents the new controls. ChangesSidebar environment filtering
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant User
participant EnvironmentMenu
participant Sidebar
participant ThreadList
participant DraftRows
User->>EnvironmentMenu: Toggle an environment
EnvironmentMenu->>Sidebar: Update disabled environment ids
Sidebar->>ThreadList: Recompute visible threads
Sidebar->>DraftRows: Recompute visible drafts
ThreadList-->>User: Show enabled-environment threads
DraftRows-->>User: Show enabled-environment drafts
Suggested reviewers: Merge Risk: ⚪ Minimal · up to The environment filter behavior and its sidebar state transitions are covered by the supplied implementation and tests; no actionable merge risk remains. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 3 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Comment |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This adds a new environment-filter workflow with production-side state and changes to project menus, drafts, thread partitioning, selection, pagination, and empty states. It preserves the all-environments default and adds helper tests, but the breadth of the user-facing behavior warrants human review. You can add or adjust custom eligibility rules. Learn more. |
258c853 to
8983e13
Compare
Dismissing prior approval to re-evaluate 8983e13
There was a problem hiding this comment.
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
14ed67b to
72c948d
Compare
There was a problem hiding this comment.
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
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ 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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
|
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 |
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
5a95053 to
abf6424
Compare
Dismissing prior approval to re-evaluate abf6424
|
Docs carryover from #9241 is addressed in abf6424: |
02c5cb5 to
8c4fd21
Compare
|
Rebased onto CodeRabbit’s docstring-coverage warning is not being addressed with additional boilerplate: the helper comments already explain the disabled-set representation, last-enabled guard, and catalog-reset constraint. AGENTS.md asks us to keep explanations close to the code and avoid narrating discoverable implementation. Its aggregate coverage threshold does not establish a missing user-facing instruction. Direct independent reviewer command (frozen full diff provided on stdin): claude -p --safe-mode --model claude-fable-5 --effort high --tools '' --strict-mcp-config --no-session-persistence --output-format json --system-prompt '<read-only review instructions>'Actual review model: Other independent suggestions were checked: persisted project-scope reset is the intended behavior when its environments are hidden; the empty-state text describes the current scope; conditional tooltip wrapping matches the existing filter primitives; and the draft count is a per-render store selector, not a memo missing dependencies. No change warranted for those findings. Fresh disposable-client verification confirms filtering/restoring both environments and the accessible label in both states. The PR body retains the older before/after GIFs and explicitly records the remaining disabled-row tooltip capture gap. Macroscope’s human-review requirement remains a maintainer decision; I am not treating its skipped check as approval. |
8c4fd21 to
7985c1c
Compare
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
7985c1c to
a6e6d5a
Compare
The rebase onto current main carried the environment-filter menu's focus-ring, font-weight, and disabled-row color overrides on SidebarMenuButton and MenuCheckboxItem, which now trip the shadcn no-restyle lint rule (those components own their own shape/color/ typography). Drop the overrides and rely on each component's own default treatment. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

With multiple environments, web and desktop mix every machine’s threads in the sidebar. This adds an Environments checklist beside the project picker to narrow the list and an All environments action to restore it.
The session-only selection applies to pinned, active, settled, snoozed, and draft rows, and combines with the persisted project filter. Project choices follow the enabled environments; hiding every environment for the selected project resets its scope. At least one environment stays enabled, newly added environments appear by default, and removed catalog entries are pruned during render. The user guide explains both filters and how to clear them, addressing Theo’s documentation carryover from #9241.
Rebased onto current
main(b2b43bef73). Main had since extracted the sidebar header intoSidebarThreadHeader, so the environment-filter menu now passes through as a newenvironmentFilterprop on that component instead of living inline; behavior and rendering are unchanged. Upstream’s persisted project scope, machine badges, and current sidebar rendering are retained. Searches of upstream history and merged/open sidebar-filter PRs found no equivalent environment filter on main.Verification:
vp test run apps/web/src/components/Sidebar.logic.test.ts: 168 passed.vp exec tsc --noEmit -p apps/web/tsconfig.json: passed aftervp irestored missing dependencies; existing Effect suggestions remain.vp lint apps/web/src/components/Sidebar.tsx apps/web/src/components/Sidebar.logic.ts apps/web/src/components/Sidebar.logic.test.ts: passed, existing warnings remain.vp fmt --checkon the four changed files andgit diff --check: passed.Existing real-client evidence compares base
e3b644c5afwith candidate5a9505325, captured at 1280×800 using two disposable servers paired through the normal UI. These are older recordings: the visible environment-menu structure is unchanged, so they still demonstrate filtering and restoring the list. This refresh adds an accessible active-filter label and uses an unambiguous pagination-reset key; neither changes the recorded appearance. They do not show newer upstream sidebar styling or machine badges. A fresh attached-preview pass on the final candidate paired two disposable local servers through the normal UI: filtering reduced two bootstrap rows to one, All environments restored both, and the accessible button name changed to include (filter active) and back.Before — threads from both environments:
After — filter to one environment, then restore all:
Full before recording · Full after recording
The GIFs were downloaded, decoded, and sample frames inspected during this refresh. Electron, relay/tunnel, and catalog removal were not exercised in a live client; focused tests cover catalog pruning and the last-enabled guard. Mobile uses a separate thread list. This change adds no provider, backend, or wire-contract behavior; global search and the command palette retain their existing scope.
Independent review: direct Claude Fable 5, high, read-only with tools disabled, exited 0. Its accessible-label and pagination-key findings were fixed and the final diff reviewed again. The draft-count dependency concern was ruled out by inspecting the per-render store selector. Remaining evidence gap: the attached preview exposed the disabled menu row in the DOM but omitted the menu in captured pixels; disabled-row tooltip hover/video proof remains unverified. Existing before/after interaction media is retained; this gap prevents claiming complete tooltip verification.
Coordination trace: T3 thread f8f62d4f-e284-46ce-a13c-b973c02e21ee
Refresh and verification: GPT-6 Astra in Codex (T3 Code). Independent review: Claude Fable 5 high in Claude Code.
Summary by CodeRabbit
New Features
Documentation