Skip to content

fix(next): follow up window motion pacing and scale changes - #35166

Open
teamleaderleo wants to merge 9 commits into
feat-cmux-nextfrom
lane/window-motion-followups
Open

teamleaderleo wants to merge 9 commits into
feat-cmux-nextfrom
lane/window-motion-followups

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Fix forward the merged window motion work: restore synchronous content display after the same-harness A/B showed no pacing win, require the shared window-resize minimum of 20 intermediate display frames, and relayout titlebar chrome when a window moves between displays with a new backing scale.

This follows #35063 and #35064 and closes their confirmed follow-ups in #35097. The capture follow-up remains tracked in #35098.

Performance

metric before after delta harness or run link
1x2 window-zoom frame p95 (ms) 16.67 16.67 0 existing BEFORE f3dd8dba08e04d00a0ad640a / AFTER 75f549fef2070cb44e894434
1x2 window-zoom max frame (ms) 33.0 35.55 +2.55 same 120 Hz virtual-display harness
stress window-zoom frame p95 (ms) 28.2 20.99 -7.21 same harness
stress window-zoom missed frames 12 median 13 unresolved same harness

The measured result did not establish a consistent benefit for deferred display, so this follow-up returns to the synchronized presentation path. No duplicate perf run was dispatched.

Validation

  • python3 -I scripts/cmux-next/tests/test_window_zoom_motion.py (17 passed)
  • Existing fleet app compile receipts for the parent changes: 8bdabc5b1818168834ece0f6 and f669c21e7814c2fa8ea9dec5

Changelog

  • Keep zoom content display synchronized with each animated frame.
  • Enforce the shared 20-intermediate-frame window pacing floor.
  • Re-layout pixel-aligned titlebar chrome after backing-scale changes.

agent-identity footer --repo manaflow-ai/cmux
🤖 Generated with Codex

Agent session: agent session


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


Summary by cubic

Follows the merged window motion work: restores synchronous zoom content display, enforces the shared 20-intermediate-frame window pacing floor, and relayouts titlebar chrome when a window moves between displays with a new backing scale.

  • Zoom operations animate with display: true so content is painted with each frame; the deferred variant showed no consistent pacing benefit and could leave a late content update behind the window motion.
  • The window-perf harness rejects zoom and unzoom runs under 20 intermediate display frames, and the motion tests now cover that floor with 22-sample traces.

Written for commit 578f67e. Summary will update on new commits.

View guided diff Turn on auto-fix

@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 04d4991: 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=pr35166 -f ref=lane/window-motion-followups -f platform=macos -f backend_mode=local

web and size checks: green

@blacksmith-sh

This comment has been minimized.

Co-authored-by: Codex <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-533a332d2819104dea9f
@teamleaderleo
teamleaderleo force-pushed the lane/window-motion-followups branch from 93d564b to 8e77438 Compare November 4, 2026 09:58
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 4, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent claude-opus-5-5 medium): SHIP at 8e77438

Read the full diff (4 files, +37/-11).

  • WindowZoom.swift: back to setFrame(target, display: true) inside the timed .move animation. This is the pre-fix(next): smooth window zoom motion #35063 synchronous path, and the PR body's same-harness A/B shows no win for the deferred variant, so going back is the safe default.
  • WindowRootView.viewDidChangeBackingProperties: calls super, then needsLayout = true. layout() already reads window?.backingScaleFactor for WindowTitlebar.alignedFrame, so a scale-only display move now re-aligns the titlebar. It's cheap and runs only on backing changes.
  • pane-perf-terminal.py: WINDOW_MIN_INTERMEDIATE comes from the shared MOTION_THRESHOLDS["window_resize"]["min_intermediate"] (20 in golden.py), so the harness and the golden judge agree. It's added as the last error or ... clause, so earlier, more specific errors still win.
  • Tests: the 22-sample fixtures give 20 intermediates (max step 20/420 = 0.048). The new short-motion test covers the floor. The max-step boundary test still trips on a single 150 px jump.

Compile: the fleet compile at this head passed the app package. Its only failure was the cmux-tui crate (relaunch.rs:41 E0282). That is a base red from #35133, fixed on feat-cmux-next by #35172, which is after this branch's merge base. This PR changes no Rust.

Follow-ups (non-blocking):

  • The 20-intermediate floor now holds for window-unzoom too. If a real unzoom on the 120 Hz harness runs shorter than ~170 ms, that harness goes red. Worth confirming on the next perf run.

teamleaderleo and others added 2 commits November 4, 2026 10:38
Co-authored-by: Codex <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-533a332d2819104dea9f
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex, router-review): SHIP at 04d4991

Reviewer: codex gpt-6-astra high, fast tier.

Follow-ups: 1. They land as checklist items in this PR's one follow-up tracking issue in this repo (Follow-ups: #N ..., label follow-up; add to an open one before filing, never one issue per finding), linking this receipt; the lane that opened the PR fixes them forward.

SHIP at 04d4991

Visual verdict: no images; Leo tries the build

The focused motion tests (17) and Python syntax checks pass.

  • [P2] [follow-up] [category:ux] [finding:F1] [outcome:pending] No after screenshots or gallery artifact were provided, so the titlebar scale-change layout remains visually unverified.

Follow-ups:

  • F1: Provide visual capture coverage for the backing-scale/titlebar change.

cmux-bot[bot]
cmux-bot Bot previously approved these changes Nov 4, 2026

@cmux-bot cmux-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmux-bot approves 04d4991: an independent review passed this exact head (router-review receipt by teamleaderleo). A push needs a new review; a later BLOCK at this head dismisses this approval.

@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 11:44 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 11:44 Inactive
@cmux-bot
cmux-bot Bot dismissed their stale review November 4, 2026 11:45

A newer verdict blocks 00da512 (no independent SHIP at the head).

@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 11:45 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 13:57 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 13:57 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 13:58 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 15:44 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 15:44 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 15:45 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 17:15 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 17:15 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 17:16 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 19:18 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 19:18 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 19:19 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 20:55 Inactive
@cmux-bot
cmux-bot Bot temporarily deployed to ci-routing-agent November 4, 2026 20:55 Inactive

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 578f67e5 Deployed Nov 4, 2026 by cmux-bot[bot] via cmux-tui tree preflight #113059
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