Repository navigation
cmux NEXT: dividers light a themed glow band while hovered and dragged - #27576
Conversation
Pane dividers, column and row edges, the sidebar and right sidebar resize edges, Home's list divider and the DevTools divider now light a band in the theme accent: dim on hover, full while dragging. At rest nothing changes (same line, color and thickness); the hit areas and cursors are untouched. One shared DividerGlowBand (CmuxNextDesign): a 2 pt accent core with a 3 pt halo, faded once through Motion.feedback (instant under Reduce Motion / calm mode / animations off). No timer, display link or loop. A lit pane divider reports its band to the Chromium hole so the halo shows over pages. Leo (2026-10-29): "like the little draggy bars and whatever, I feel like, you know, when we're dragging them, you know, Claude Code has it so that, you know, it has this glowy bar thing, and I think, like, having that themed color band would be quite nice for our app as well." Sidebar-Look: Leo 2026-10-29 "having that themed color band would be quite nice for our app as well" Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…use names a divider HomeSidebarSplitView+Drop already overrides viewDidMoveToWindow, so the Home band takes the theme on the press that lights it (and on appearance changes) instead. debug.mouse (DEBUG and bench builds) takes `divider` (`first`, or a mouse-area id or prefix) for the center of a pane divider, and a drag takes `by_x`/`by_y` relative to where it starts, so a capture tour can hover and hold a divider mid-drag on any runner's window size. Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Owned by an agent session · session |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 7665b87 to compare; do not merge until green; see lane-rules |
Default changesThis pull request changes 1 default at
Signed off on this commit by Merge receipt: merged as Regenerate the snapshot with |
…none too The app's default look (flat-sidebar-line) has `layout.paneSeparation` none, which turns the divider's hover and drag line off, so the band gated on that line never showed in the default app. A drag now always lights the band (it is the drag's cue, not a separator); hover still shows nothing there, as before. Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oval; Home hovers Review (Codex gpt-6-astra, BLOCK at 6b21ac3) fixes: - The band goes back to rest at once instead of fading: a pane divider's Chromium hole closes with the state change, so a fading halo over a page was cut off mid-fade. - The left and right sidebar resize edges end their drag (and band) when removed mid-drag, as the pane divider and DevTools divider do. - Home's list divider tracks hover over its grab area and lights the dim band, as the other dividers do. Sidebar-Look: no visual change Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Found 9 test failures on Blacksmith runners: Failures
|
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (codex gpt-6-astra high, next-review): BLOCK at 51631ce
|
Review (Codex gpt-6-astra, BLOCK at f72cdcd): a replaced tracking area sends no exit, so a double-click reset (or a clamp, or the list folding) under a still pointer left the dim band lit away from the pointer. Each new area now reads the hover from where the pointer is. Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolves plans/cmux-next/sidebar-owner.md: both sides appended a section; both kept. Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Take it. drain-native-app (backlog lander) claimed this only because cosmic-gray couldn't be reached from big-red. Run Same session, #27604: I claimed it the same way and pushed 5c99994 (vmBaseURL returns an optional, so the two |
|
Taking this back, as drain-native-app's comment above says (and the rulebook's 10-minute rule for message 01a18a24-02d7-7331-a32b-1ad5edd23f28). Carrying the merge with feat-cmux-next next, then a review at that head. |
Resolves plans/cmux-next/sidebar-owner.md: both sides appended sections; both kept. Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
scripts/cmux-next/check-objc-selectors.py --probe --write on macOS 27.0.1: NSSplitView answers mouseEntered:, mouseExited:, updateTrackingAreas and viewDidChangeEffectiveAppearance, which HomeSidebarSplitView now calls on super. The probe also recorded two existing keys on 27.0.1. Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review (codex gpt-6-astra high): SHIP at dc24aa8 Full review SHIP at ee91c8d; delta reviews SHIP at ea2f011 (base brought in, sidebar-owner.md resolved, code diff identical) and at dc24aa8 (objc-selector-table.json gains the four NSSplitView super calls, probed on macOS 27.0.1). App compile and CmuxNext suites passed at ea2f011. |
|
Review (codex gpt-6-astra high, review-job): SHIP at dc24aa8 No blocking findings. |
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo (2026-10-29), verbatim: "like the little draggy bars and whatever, I feel like, you know, when we're dragging them, you know, Claude Code has it so that, you know, it has this glowy bar thing, and I think, like, having that themed color band would be quite nice for our app as well."
What changes
Every resize divider in cmux NEXT lights a soft band in the theme's accent (
Palette.accent) while it is dragged, and a dimmer one while the pointer is over it:CmuxNextLayout/Views/DividerHandleView.swiftCmuxNextSidebar/Views/SidebarResizeHandle.swiftCmuxNextApp/RightSidebar/RightSidebarResizeHandle.swiftCmuxNextHome/Sidebar/HomeSidebarSplitView.swiftCmuxNextBrowser/CEF/CEFDevToolsDivider.swiftNo webview has its own resize handle (the sidebar edge and right panel are native), so there is nothing to change in
webviews/.One shared component,
CmuxNextDesign/DividerGlowBand.swift: a 2 pt accent core with a 3 pt soft halo (a layer shadow in the accent), centered on the divider's line.Kept: the resting look (same line, color and thickness), the glass, the hit areas, the resize cursors and all pane layout logic. Under
layout.paneSeparationnone (the default chrome, which shows no active line) hover shows no band, as today, but a drag still lights the full band.Chromium pages: a lit pane divider reports its band's extent (line plus halo, across the divider only) as its native line rect, so the page leaves the halo uncovered; at rest it reports the line alone, as before.
Motion: stop condition and cleanup
Motion.feedback(.hovertoken), which ends on its own. It never pulses.ui.animations.feedbackoff or animation speed off: the change applies at once (the gate gives a zero duration).mouseDownreturning for Home (adefer).Debug tooling
debug.mouse(DEBUG and bench builds only) takesdivider(first, or a mouse-area id or prefix such assplit:) for a pane divider's center, and adragtakesby_x/by_yrelative to its start, so the capture tour below can hover and hold a divider mid-drag on any runner's window size.Screenshots
Captured on a fleet Mac through
cmux-ci capture(1100x720 window, two terminals split side by side; mid-drag holds the button down on the pane divider and moves it 90 pt left). Before: feat-cmux-next at 34e31e4. After: this branch.At rest nothing changes. Before, a drag showed no line at all under the default chrome; after, the dragged divider carries the band in the theme's accent.
Fleet capture output at f72cdcd (the band's look is unchanged since; later commits change hover bookkeeping, base merges and a CI table):
Capture
steps-526f6d40c5atf72cdcd2ce84(fleet build, capture mini, text checked for private data)Capture
steps-6d5ac8348fatf72cdcd2ce84(fleet build, capture mini, text checked for private data)Performance
No perf numbers: paint-only. One extra CALayer per divider with no work at rest; a hover or drag change sets one opacity (one
Motion.feedbackfade, no timer, observer or loop). Nothing runs per frame or per row.Verification
cmux-ci compile-check --app: passed at dc55a27 and f72cdcd; at the head ee91c8d the app compile fails only inCmuxNextApp/Remote/JoinConsent+App.swift:222('async' call in a function that does not support concurrency), which is red the same way on feat-cmux-next since cmux NEXT: This Mac's join consent: Screen sharing and Control switches, and a one-time sheet (Labs) #27223 and is fixed by fix(cmux-next): await FolderChanges.events() in the machine consent watch (base Release compile red) #27722 / cmux NEXT: await FolderChanges.events() in MachineConsentChanges (build fix) #27758; ee91c8d plus fix(cmux-next): await FolderChanges.events() in the machine consent watch (base Release compile red) #27722 (verification refnext-divider-drag-glow-verify, cc643fa): passed.DividerGlowBandTests(rest shows no band and reports the line alone; hover lights the dim band and widens the reported line to the band; a press lights the full band until release; column edges light it; under pane separation none hover shows none and a drag shows the full band, ended by Escape; going to rest is instant) plus the existing divider, sidebar-edge and Home split suites, on the fleet: passed at f72cdcd; at ee91c8d plus fix(cmux-next): await FolderChanges.events() in the machine consent watch (base Release compile red) #27722 (cc643fa): passed.cmux-ci compile-check --apppassed, and the CmuxNext suites passed (job c19283d0).scripts/cmux-next/objc-selector-table.jsongains the four NSSplitView super calls Home now makes (probed on macOS 27.0.1).--lintand SwiftLint with the repo's pinned configs: clean.nightly-guards / workflow-guard-tests / release-notary(test_the_repository_highlights_validatefails oninspector-error-colours.mdthe same way on feat-cmux-next, runs 40977720201, 40977425403, 40977234627; at this head it also hit GitHub 403s) andcmux-next checks (god files, concurrency, crash safety, l10n)(red on base 7665b87; its sidebar sweep finds nothing in this PR's own commits:prepush-gate.py --commits 7665b879..ea2f0118 --only sidebargives 0 findings).Sidebar:
plans/cmux-next/sidebar-owner.mdgets a "Resize edge" target row and a log entry; the sidebar commit carriesSidebar-Look:with Leo's words.Risk: low. Paint-only layers on existing views; the one geometry change is the reported Chromium hole of a pane divider while it is lit (wider by the halo). Overlaps by file with #24785 (DebugMouse.swift and sidebar-owner.md), not the same change.
🤖 Generated with Claude Code
Agent session: agent session