Commit graph

46 commits

Author SHA1 Message Date
Elvis Tran
b919541044
Fix panel resize stuttering when tiled with browser panels (#1969)
* Fix panel resize stuttering when tiled with browser panels (#1968)

During divider drag, the portal sync system was doing O(N²) work per
frame: each geometry callback synced ALL web views, and multiple
callbacks fired per layout pass (setFrameSize + setFrameOrigin + layout).

Two changes:

1. synchronizeWebViewForAnchor now only syncs the primary web view and
   defers the all-sync. Each panel fires its own geometry callback, so
   secondary syncs are redundant on the hot path.

2. HostContainerView.setFrameOrigin/setFrameSize use markGeometryDirtyIfNeeded
   which defers the callback to layout(), coalescing 2-3 notifications
   per frame into one. An async fallback ensures origin-only changes
   (without a subsequent layout) are still delivered.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix premature geometryRevision increment in markGeometryDirtyIfNeeded

Address reviewer feedback (Greptile, CodeRabbit): geometryRevision and
lastReportedGeometryState are now only updated when the callback
actually fires, not eagerly.  This prevents updateNSView from seeing a
premature revision delta and triggering a redundant synchronizeForAnchor
before the coalesced notification arrives.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 22:24:17 -07:00
Austin Wang
fd279bdcec
Fix splitter hitbox overlap and terminal scrollbar width resync (#1950)
* test: add splitter and scrollbar regressions

* fix: narrow sidebar overlap and resync terminal width

* test: unwrap pending surface width in scrollbar regression

* fix: restore hosted inspector divider drag path
2026-03-22 18:06:11 -07:00
austinpower1258
e935eb57d3 Fix browser pane video fullscreen 2026-03-21 12:17:55 -07:00
Lawrence Chen
a592ed126a
Add failing regression test for browser find focus (#1891)
* test: add browser find focus regression

* ci: run browser find focus regression on prs

* ci: merge pr ui regressions into one job

* fix: focus browser find after navigation

* test: rename ui regressions workflow guard

* Fix browser find focus after address bar navigation

* Fix test-e2e workflow manifest script

* Address PR review feedback

* Stabilize browser focus regression on CI

---------

Co-authored-by: Lawrence Chen <lawrencecchen@users.noreply.github.com>
2026-03-20 22:12:26 -07:00
Lawrence Chen
832426af56
Stabilize SSH remote flow after merging main 2026-03-16 23:57:48 -07:00
Austin Wang
378a417471
Merge pull request #1230 from manaflow-ai/issue-1183-devtools-side-dock-guard
Prevent attached DevTools from re-entering unsafe side-dock layouts
2026-03-11 23:32:19 -07:00
austinpower1258
c52bd24e85 Avoid browser portal hide lifecycle on tab switch 2026-03-11 22:52:29 -07:00
austinpower1258
df54af34cf Merge branch 'main' of https://github.com/manaflow-ai/cmux into issue-1183-devtools-resize-layout
# Conflicts:
#	cmuxTests/CmuxWebViewKeyEquivalentTests.swift
2026-03-11 22:16:07 -07:00
austinpower1258
7d5d4d718d wip 2026-03-11 22:13:45 -07:00
austinpower1258
27e598ca5a Address CI blockers and review follow-ups 2026-03-11 21:13:25 -07:00
austinpower1258
7c29652971 Avoid browser portal refresh on geometry churn 2026-03-11 21:03:26 -07:00
austinpower1258
8aafb68935 Fix browser pane drag/drop follow-ups 2026-03-11 19:16:17 -07:00
austinpower1258
1dbd1e5011 Merge branch 'main' of https://github.com/manaflow-ai/cmux into issue-1208-browser-pane-stale-content 2026-03-11 18:54:12 -07:00
austinpower1258
81618bf3cf Fix stale browser pane content after drag splits 2026-03-11 18:46:33 -07:00
Lawrence Chen
e35e1cd94c Merge remote-tracking branch 'origin/main' into task-browser-page-pushed-up
# Conflicts:
#	cmuxTests/CmuxWebViewKeyEquivalentTests.swift
2026-03-11 18:33:03 -07:00
Lawrence Chen
fbd04ca09e Repair bottom-docked devtools page frame 2026-03-11 18:11:18 -07:00
Lawrence Chen
fce5545675 Yield hidden browser slot responders 2026-03-11 18:10:27 -07:00
austinpower1258
63787c26b1 Stabilize inline developer tools hosting 2026-03-11 04:17:37 -07:00
Lawrence Chen
83c7c9ee19 Guard portal refreshes and reset plain reattached web views 2026-03-10 21:41:49 -07:00
Lawrence Chen
6f8f5a6ac0 Keep hidden portal sync from stealing devtools host 2026-03-10 21:04:08 -07:00
Lawrence Chen
359ada8a3f Preserve side-docked browser devtools layout on pane resize 2026-03-10 20:42:26 -07:00
Austin Wang
d25067f38f
Merge pull request #1170 from manaflow-ai/fix-1160-devtools-loop
Fix side-docked browser DevTools resizing
2026-03-10 20:12:17 -07:00
austinpower1258
91061ce341 Fix side-docked browser DevTools resizing 2026-03-10 19:49:06 -07:00
Lawrence Chen
ec10dfdaec
Add browser find focus debug logs (#1162)
* Add browser find focus debug logs

* Allow browser find bar focus in portal host

* Add split and terminal find debug logs

* Avoid stealing search focus across splits

* Generalize panel focus restore intent

* Unify split focus intent activation

* Address focus restore review feedback

* Yield inactive panel focus before restore

* Gate browser find focus retries by generation

* Avoid repeated browser focus invalidation

* Keep browser find ownership while find bar is open
2026-03-10 19:31:52 -07:00
austinpower1258
df9a6ba0df Add split-zoom portal visibility regression coverage 2026-03-10 13:08:35 -07:00
Austin Wang
78b901617c
Fix browser panes reloading when switching workspaces (#1136)
* Add workspace browser portal regression test

* Preserve hidden browser portals across workspace switches
2026-03-09 17:54:32 -07:00
Austin Wang
c447bee602
Fix browser pane portal anchor sizing (#1094)
* Fix browser pane webview sizing

* Guard browser portal by pane ownership

* Keep browser portal frame during transient zero geometry

* Guard portal surfaces against duplicate hosts

* Defer terminal surface reflow during tab drags

* Fix browser panel pane ID unit tests
2026-03-09 13:28:05 -07:00
austinpower1258
52bd8cf16a Keep browser webviews alive during drag reparenting 2026-03-08 03:04:12 -07:00
austinpower1258
58f1f34466 Fix browser reattach after pane reparenting 2026-03-07 18:49:42 -08:00
austinpower1258
9e8a401e3c Fix tooltip tracking lifetime and shortcut lag 2026-03-07 01:46:02 -08:00
austinpower1258
72c0f564c8 works 2026-03-06 18:24:20 -08:00
austinpower1258
d43d7d6a51 Fix drag hover redraw churn in hosted panes 2026-03-06 15:47:11 -08:00
austinpower1258
3874cac08e Merge origin/main into issue-969-browser-drag-top-drop-targets 2026-03-05 22:36:33 -08:00
austinpower1258
6d95044355 Hide stale browser portals during workspace handoff 2026-03-05 22:32:16 -08:00
austinpower1258
2427a2a736 Fix browser portal anchor churn during pane drag 2026-03-05 21:55:26 -08:00
Austin Wang
15c7c0cc3c
Fix side-docked dev tools resize (#712)
* wip

* Fix side-docked dev tools resize
2026-03-05 21:28:31 -08:00
Austin Wang
9b215eddab
Fix browser portal pane drag routing and uploads (#961) 2026-03-05 15:27:17 -08:00
Austin Wang
34989e8ad0
Fix portal browser click focus after workspace switch (#908) 2026-03-04 18:36:26 -08:00
austinpower1258
e76de71f3e Fix sidebar titlebar drag and double-click passthrough 2026-02-24 14:18:58 -08:00
austinpower1258
b0d86a4f0d Fix double-click titlebar zoom not working on browser panel side
The browser portal's hit-test was intercepting clicks in the titlebar
region, preventing double-click-to-zoom from reaching the window.

Three fixes:
- BrowserWindowPortal: pass through hits landing in the native titlebar
- WindowDragHandleView: only let titlebar-overlay views block capture,
  not underlay browser content; respect AppleActionOnDoubleClick pref
- ContentView: use shared performStandardTitlebarDoubleClick() helper

Closes https://github.com/manaflow-ai/cmux/issues/422

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:45:25 -08:00
austinpower1258
4bc3da65b6 Fix terminal/web portal overflow during narrow pane resizing 2026-02-23 12:26:05 -08:00
Austin Wang
8f2a52fbf2
Fix stuck split resize cursor outside divider range (#291)
* Keep split dividers visible in tiny panes

* Fix collapsed split border resize hit-testing

* Stabilize sidebar and split divider resize routing

* Fix split divider resize cursor routing regressions

* Fix stuck split resize cursor outside divider range
2026-02-21 18:19:14 -08:00
Austin Wang
78fe5a9b04
Fix cmux border resize icon disappearing (#284)
* Keep split dividers visible in tiny panes

* Fix collapsed split border resize hit-testing

* Stabilize sidebar and split divider resize routing

* Fix split divider resize cursor routing regressions
2026-02-21 17:57:00 -08:00
Austin Wang
021cc05cf3
Stabilize sidebar resizer hitbox and cursor across portals (#255) 2026-02-20 23:14:48 -08:00
Lawrence Chen
f294699670 Fix browser DevTools retry and portal visibility follow-ups 2026-02-20 18:00:20 -08:00
Lawrence Chen
db66fc4bb0 Stabilize browser portal bounds and log inspector height metrics 2026-02-19 23:19:00 -08:00