Skip to content

refactor(browser): delete browserResize.keyResizeTopLeft; a key resize's page always rides its pane's top-left corner (cmux-ad m6 1b) - #35382

Open
lawrencecchen wants to merge 1 commit into
feat-cmux-nextfrom
fix/browser-delete-keyresize-topleft
Open

lawrencecchen wants to merge 1 commit into
feat-cmux-nextfrom
fix/browser-delete-keyresize-topleft

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

cmux-ad m6 1b, the switch deletion. #35195 landed the interim browser contract for key resizes behind browserResize.keyResizeTopLeft (default on). Its OFF/ON film passed (the refactor owner's STATUS 11746: with the switch on, the page's left and top edges are on the pane edge in every motion frame of px-keys-single-3k and px-keys-held-2; off 50-248 frames off). STATUS 11198 says the switch goes once that film passes. No behaviour change with the default on.

Frames: no content kind changes what it shows in any frame (the default-on path is the only path now).

Removed:

  • BrowserResizeTunables.keyResizeTopLeft (Debug Settings > Browser Resize) and its entry in BrowserResizeTunables.all.
  • CEFTabContentView.pageHoldTopLeft and its latch in holdPage(for:).
  • The off path: a key hold's page on S3's hold edges (the pane edges that do not move). CEFTabContentView.layoutContent places a held page, a drag's or a key hold's, at the page frame's top-left corner. pageMotionHold still marks a key hold (its resume after the tab is hidden and shown, and a drag's end not ending it). Its edges no longer place the page.

schemas/defaults/cmux-next.json is not edited by hand: the base autofix regenerates it.

Merge timing: after the first FEAT DOGFOOD BUILD with #35195 is judged by the P0 JOURNEY RUNNER, as for S3's switch (#35161), unless the refactor owner says sooner.

Testing

No new test: CEFDeferredTabShowTests.aKeyResizeHoldKeepsThePageOnThePageAreasTopLeft (#35195's red-first test) covers the one path.
Fleet green at this head: step 8259737de704222f1337b39c (CEFDeferredTabShowTests, BrowserChromePaneMotionParkTests, BrowserChromeSharedEdgeTests, BrowserPaneOneContainerTests, PaneContentPolicyTests, KeyboardResizeContentHoldTests, InternalPageParkingTests): 7 of 7 suites passed.

Changelog

none

Proof

No capture: no behaviour change (a switch and its off path deleted).

Observed / Not run

Observed: the fleet step above.
Not run: films (no behaviour change with the default on, which the films already judged).

…e's page always rides its pane's top-left corner (cmux-ad m6 1b)

#35195 landed the interim browser contract for key resizes behind `browserResize.keyResizeTopLeft`
(default on). Its OFF/ON film passed (the refactor owner's STATUS 11746: with it on, the page's
left and top edges are on the pane edge in every motion frame of px-keys-single-3k and
px-keys-held-2). By STATUS 11198 the switch goes once that film passes. No behaviour change with
the default on.

Removed:
- `BrowserResizeTunables.keyResizeTopLeft` (Debug Settings > Browser Resize) and its entry in
  `BrowserResizeTunables.all`.
- `CEFTabContentView.pageHoldTopLeft` and its latch in `holdPage(for:)`.
- The off path: a key hold's page on S3's hold edges. `layoutContent` places a held page (a drag's
  or a key hold's) at the page frame's top-left corner. `pageMotionHold` still marks a key hold
  (resume after a hide, a drag's end not ending it); its edges no longer place the page.

`schemas/defaults/cmux-next.json` is not edited by hand: the base autofix regenerates it.
No new test: CEFDeferredTabShowTests.aKeyResizeHoldKeepsThePageOnThePageAreasTopLeft covers the one path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lawrencecchen lawrencecchen added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 4, 2026
@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review e389a72: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr35382 -f ref=fix/browser-delete-keyresize-topleft -f platform=macos -f backend_mode=local

red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on b1b0f37 to compare; do not merge until green; see lane-rules

Default changes

This pull request changes 2 defaults at e389a7212f36 (what everyone gets without configuring anything):

  • tunable-source.CmuxNextBrowser/Core/BrowserResizeTunables.swift:keyResizeTopLeft: "193b05abe6108e339e570d48352b341a6165f3385ea9939b6a062612faaf3193" -> (none)
  • tunable.browserResize.keyResizeTopLeft: true -> (none)

Signed off on this commit by review (codex).

Regenerate the snapshot with python3 scripts/ci/defaults_guard.py snapshot.

@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Review (codex): SHIP at e389a72

Reviewer: Codex (gpt-6.1-sol), codex exec --skip-git-repo-check --sandbox read-only. The reviewer had no tools on this VM (it cannot run commands here): the prompt held the PR diff, CEFTabContentView+PaneMotion.swift in full, the CEFTabContentView part of CEFHostView.swift, and every remaining use of pageMotionHold.

Round 1 verdict, verbatim: VERDICT: SHIP / no findings.

@blacksmith-sh

blacksmith-sh Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Found 10 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmph8xug7sn/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpkg1np6rq/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
imported web bundle inputs are not routed:/imported web bundle inputs are not routed: View Logs
nightly cmux-tui resolve/nightly cmux-tui resolve View Logs
nightly.yml must not read vars.NIGHTLY_SIGN while nightly-sign.yml is in shadow mode/
nightly.yml must not read vars.NIGHTLY_SIGN while nightly-sign.yml is in shadow mode
View Logs
the short nightly decide gate must use the pooled Linux route with a Blacksmith fallbac
k/
the short nightly decide gate must use the pooled Linux route with a Blacksmith fallbac
k
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — e389a721 Deployed Nov 4, 2026 by lawrencecchen via namespace autofix #14320
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant