Skip to content

cmux NEXT agent pane: opening another chat plays the stagger motion by default - #33594

Closed
teamleaderleo wants to merge 1 commit into
feat-cmux-nextfrom
lane/chat-switch-stagger-default
Closed

teamleaderleo wants to merge 1 commit into
feat-cmux-nextfrom
lane/chat-switch-stagger-default

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Leo, 2026-11-03, sharing a game menu animation clip: "i thought was cute and cool and i wanted to have more... nice stuff? around the app..." (and 2026-11-01: "honestly i just want to be able to be able to eventually play full-on animations like this").

Leo-ask: ask-1ec99cec90

What

The chat-switch-motion experiment (cmux#30602) now defaults to its picked arm, stagger: opening another chat moves the title, then the visible rows bottom-up (6 px rise, 16 ms apart, one spring) with Session Info's body following from the right, all settled within 240 ms. Off, Fade and Depth stay one cmux.experiments override away, and the gallery's compare arms are unchanged.

Spec: leo-workspace design/motion-and-polish.md (Choreography) carried the open question of whether a switch performance on by default outranks rule 14 ("instant if cached"). Leo's ask answers it. The switch itself stays instant: the new chat is in the DOM on the frame it lands, and the motion plays over it.

Risk

Small: a one-line default change plus comments. Already covered by what #30602 shipped:

metric before (off) after (stagger) delta harness
frame p50 16.9 ms 16.7 ms -0.2 ms chat.switch.off / chat.switch.stagger
frame p95 36.7 ms 30.1 ms -6.6 ms same
dropped frames 10 11 +1 same
long tasks 0 0 0 same

Agent session: agent session

🤖 Generated with Claude Code


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


Summary by cubic

Makes the stagger motion the default when opening another chat in the NEXT agent pane. The switch stays instant — the new chat is in the DOM on the frame it lands — and the motion plays over it; off and the other arms remain available via a cmux.experiments override ({"chat-switch-motion":"off"}).

  • Motion still respects Reduce Motion, data-cmux-motion=off, a zero --agent-motion-in, or a hidden page.
  • Frame cost is flat (p95 improves 6.6 ms; no new long tasks).

Written for commit 8bdc61c. Summary will update on new commits.

View guided diff Turn on auto-fix

…y default

Leo, 2026-11-03: "i wanted to have more... nice stuff? around the app".
The chat-switch-motion experiment's picked arm (stagger, cmux#30602) becomes
the default; Off stays one experiment override away.

Leo-ask: ask-1ec99cec90

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-f81f28738a85957e4366
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Closing without landing. The independent review at 8bdc61c found that turning the stagger arm on by default breaks webviews/test/chat-open-perf.test.ts. Every open there is a switch, so stagger's 6 px row rise counts as a layout shift (line 739), and the cold-open fade is replaced (lines 752-758). The other arms (fade, depth) animate cached opens instead, which the same test rules out (line 763, 'instant if cached'). Any on-by-default arm changes a stated no-layout-shift / instant-if-cached contract, which needs an explicit decision rather than a default flip here. The experiment stays available via cmux.experiments.

@teamleaderleo
teamleaderleo deleted the lane/chat-switch-stagger-default branch November 3, 2026 10:12
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

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

Review 8bdc61c: 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=pr33594 -f ref=lane/chat-switch-stagger-default -f platform=macos -f backend_mode=local

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 3, 2026

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 8bdc61c0 Deployed Nov 3, 2026 by teamleaderleo via wait for same-key tree publisher #105374
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