Repository navigation
Show right sidebar focus without adding layout padding - #12710
lawrencecchen wants to merge 16 commits into
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
|
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: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe change propagates main-content focus to ChangesWorkspace focus propagation
Legacy transport setup
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~12 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant RightSidebarPanelView
participant WorkspaceContentView
participant WorkspacePanelVisibilityPolicy
participant BonsplitView
RightSidebarPanelView->>WorkspaceContentView: provide right-sidebar focus state
WorkspaceContentView->>WorkspacePanelVisibilityPolicy: compute main content focus
WorkspacePanelVisibilityPolicy-->>WorkspaceContentView: return focus state
WorkspaceContentView->>BonsplitView: pass isMainContentFocused
Merge Risk: ⚪ Minimal · up to No concrete focus or transport regression is established. Remaining visual verification is a follow-up rather than a demonstrated merge blocker. 🚥 Pre-merge checks | ✅ 4 | ❌ 1 | ❓ 20❌ Failed checks (1 warning, 20 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
⚔️ Resolve merge conflicts 💡
🧪 Generate unit tests (beta)
Warning Git: CodeRabbit could not clone the repository, so clone-backed analysis was skipped and this review may be incomplete. Verify repository clone access, such as SSH credentials, before requesting another full review. If clone access is intentionally unavailable, use 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. Comment |
6bd93e2 to
7ab53aa
Compare
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. |
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. |
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. |
|
Fleet build instructions for this PR, head JOB_JSON=$(~/.local/bin/cmux-ci submit --kind cmux --command 'CMUX_FLEET_BUILD_TAG=pr-12710-1280278d /Users/Shared/cmux-build-fleet/recipes/cmux.sh https://github.com/manaflow-ai/cmux.git 1280278daee8a603fe3595aadea82a3a3b7f94e5' --artifact artifacts/cmux.app.zip --workspace https://github.com/manaflow-ai/cmux/pull/12710 --source-digest 1280278daee8a603fe3595aadea82a3a3b7f94e5 --cache-key cmux:pr-12710 --min-free-bytes 268435456000 --label cmux --label ram48)
JOB_ID=$(python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])' <<<"$JOB_JSON")
~/.local/bin/cmux-ci wait "$JOB_ID" --receipt artifacts/fleet/$JOB_ID.json
~/.local/bin/cmux-ci publish-hq "$JOB_ID"The job survives disconnects. Do not resubmit after a wait timeout; rerun |
|
Automatic catch-up: I tried to catch this branch up with
Nothing was pushed. Merge Automatic catch-up will not try this head again; a new push or |
…b-state # Conflicts: # Sources/Mobile/MobileHostIrxLegacyDialectServer.swift # Sources/RightSidebarPanelView.swift # vendor/bonsplit
…policy Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
CI failure attributionCI passes on Written by |
Dogfood tours of
|
Main replaced cmuxAccentNSColor with the CmuxAccentColor environment value. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Superseded by #15534 (Right sidebar overhaul), which merges this branch with the other right sidebar work into one PR and one dogfood tag. Branch kept. |










Problem
The main Bonsplit tab stays blue when the right sidebar owns input, and the sidebar has no corresponding focus boundary.
Change
Draw a one-point accent border around the complete right sidebar when it owns input. The border adds no padding and does not move the tab bar or content. The border and content clip use one shape with square left corners and 16-point continuous right corners. The corner radius is app-owned; exact matching to every macOS native window mask is not guaranteed.
One source of truth:
MainWindowFocusController.intent(per window) publishesFileExplorerState.rightSidebarOwnsInputFocus. The sidebar border, the Bonsplit tab emphasis (isMainContentFocused), and the panel focus ring all derive from that value throughWorkspacePanelVisibilityPolicy.mainContentIsFocused. Hiding the sidebar by any path (shortcut, remote command, close button, window-width auto-collapse) runsrestoreTerminalFocusAfterRightSidebarHidden, which clears the sidebar intent, so no border or de-emphasized tab stays behind. Like the existing Bonsplit tab emphasis, the border follows the window's own focus owner and does not dim when another window becomes key.Dependency
manaflow-ai/bonsplit#242 must merge first. It adds
isMainContentFocusedtoBonsplitView. The submodule currently points at the PR 242 headde63f80(rebased onto bonsplitmain). After PR 242 merges, updatevendor/bonsplitto the mergedmainSHA before merging this PR.Validation
origin/main. Dropped the earlier build-repair hunks (legacy transport argument, Rust tool PATH fallback) becausemainalready handles them. Replaced the removedcmuxAccentNSColorwith thecmuxAccentColorenvironment value.de63f80builds withswift build.sbfocusatfe176c9c41b(job1066b37f101927210faf267a) succeeded. Hosted CI passed, including macOS compile, app-host unit tests for changed suites, and ui-tests.sbfocusthrough the debug socket (window in background):right-sidebar focusdraws the border with the rounded right corners;simulate_shortcut cmd+shift+ereturns focus and clears it; hide then show leaves no border; switching Files to Find while focused keeps it.🤖 Generated with Claude Code