Skip to content

Agent pane: a finished Claude turn keeps its runs in place; its whole-turn Worked for is an opt-in - #35537

Merged
cmux-bot[bot] merged 6 commits into
feat-cmux-nextfrom
claude-turn-fold-opt-in
Nov 4, 2026
Merged

cmux-bot[bot] merged 6 commits into
feat-cmux-nextfrom
claude-turn-fold-opt-in

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

A finished Claude turn no longer folds as a whole under "Worked for" by default. Its runs of calls and the prose between them stay in place, each run on its own line, as Claude desktop draws a turn. The whole-turn "Worked for" is kept as an opt-in.

Leo, 2026-11-04 (leo-workspace#3287): "you can't do it for Claude ... it's just too lossy if you do it for Claude".

Leo-ask: Leo 2026-11-04 01:47Z turn folding per harness

Regressing PR: #35113, which made Claude's row of TURN_FOLD_STYLES fold the whole turn by default (on top of #34774).

Change

  • turnFoldStyle.ts: the claude row is now { conclusion: false, runs: true }, the per-run look Gemini and Muse have. The old Claude fold is kept as CLAUDE_WORKED_FOR; turnFoldStyle returns it only when the opt-in is on.
  • The opt-in is a new experiment, claude-turn-fold, defined in claudeTurnFold.experiment.ts. Its arm runs is the default and worked-for is the opt-in. It can be set through the cmux.experiments debug key or the gallery's compare view.
  • turns.ts: the turn cache now keys on the fold style, so changing the opt-in refolds a cached turn.
  • Codex, Gemini and Muse are unchanged; a test pins them while the opt-in is on.
  • The tests and gallery plays that Transcript: a finished Claude turn folds under one Worked for, its runs inside #34774 had pointed at Claude's "Worked for" go back to Claude's per-run lines. The received-to-status spacing row comes back too.
  • Gallery agent-pane.turn-fold-per-harness: the claude variant shows the per-run default. The entry carries the claude-turn-fold experiment so both arms can be compared side by side, and its covers now name the TurnRows.tsx rows it draws.

Tests (fleet, at the source commit before the covers fix): turnFoldStyle 11/11, codexHeader 4/4, TurnFooter 9/9, transcript-cohesion 48/48, transcript-spacing-kinds 88/88, transcript-received-line 14/14, transcript-steer-continuous 30/30, received-messages-fold 8/8, transcript-message-runs 9/9, transcript-claude-turn-groups 4/4, agent-pane-background-tasks 7/7, agent-pane-subagent-of-untitled 4/4, agent-pane-transcript-spacing 1/1, transcript-row-renders 2/2. The two typecheck errors (mock.ts:413 and agent-pane-peer-copy-paused.test.tsx:188) are in files this PR doesn't touch.

#35410 merged while this PR was open. It had moved the cohesion test's claude variant onto a 22px Worked for header, so this PR puts back that variant's earlier no-header check and its gallery note. #35471's SentMessageGroup.test.tsx expectation gets the same fix: the run draws in place. Fleet run after merging base: transcript-cohesion 48/48 and SentMessageGroup 6/6, plus the files above.

Agent session: agent session

🤖 Generated with Claude Code

teamleaderleo and others added 2 commits November 4, 2026 05:37
…-turn Worked for is an opt-in

Leo (2026-11-04): "you can't do it for Claude ... it's just too lossy if you do it for Claude".
The claude row of TURN_FOLD_STYLES stops folding a whole turn; the Worked for fold #35113 made
Claude's default is the opt-in arm of a new claude-turn-fold experiment. The tests and gallery
plays #34774 moved to Claude's Worked for go back to its per-run lines. Codex, Gemini and Muse
are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-92fa78a91e29868c5eaa
@teamleaderleo teamleaderleo added the leo-named-fix An obvious fix to something Leo named: lands on push, review runs in parallel label Nov 4, 2026
@cursor

cursor Bot commented Nov 4, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot 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.

@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 7d50beb: 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=pr35537 -f ref=claude-turn-fold-opt-in -f platform=macos -f backend_mode=local

Gallery before/after for 7d50beb: 16 states rendered, 8 images differ, 3572 more touched states not rendered. Images are in the run's artifact, not on this public PR; the independent review of this head reads them on its own, so the PR needs no hand-made screenshots of these states.

gh run download 41858503547 -R manaflow-ai/cmux -n gallery-advisory-35537-7d50beb53d90850404fc663ac948d4aa3566a47a (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.approved-tool-row/ask-mode-approved Apple System Colors Light changed 4.45% own ApprovedToolRow.gallery.ts
agent-pane.approved-tool-row/ask-mode-approved Apple System Colors changed 4.16% own ApprovedToolRow.gallery.ts
agent-pane.approved-tool-row/run-one-approved Apple System Colors Light changed 0.942% own ApprovedToolRow.gallery.ts
agent-pane.approved-tool-row/run-one-approved Apple System Colors changed 0.508% own ApprovedToolRow.gallery.ts
agent-pane.approved-tool-row/mcp-approved Apple System Colors Light changed 4.98% own ApprovedToolRow.gallery.ts
agent-pane.approved-tool-row/mcp-approved Apple System Colors changed 4.33% own ApprovedToolRow.gallery.ts
agent-pane.approved-tool-row/bypass-nothing Apple System Colors Light changed 4.51% own ApprovedToolRow.gallery.ts
agent-pane.approved-tool-row/bypass-nothing Apple System Colors changed 4.09% own ApprovedToolRow.gallery.ts
agent-pane.chat-width/standard Apple System Colors Light unchanged 0% own App.tsx
agent-pane.chat-width/standard Apple System Colors unchanged 0% own App.tsx
agent-pane.chat-width/wide Apple System Colors Light unchanged 0% own App.tsx
agent-pane.chat-width/wide Apple System Colors unchanged 0% own App.tsx
agent-pane.chat-width/wide-blocks Apple System Colors Light unchanged 0% own App.tsx
agent-pane.chat-width/wide-blocks Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-edge/short-edge Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-edge/short-edge Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-edge/wide-edge Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-edge/wide-edge Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-edge/no-edge Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-edge/no-edge Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-floats/scrolled-to-end Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-floats/scrolled-to-end Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-floats/composer-grown Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-floats/composer-grown Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-rest-gap/gap-40 Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-rest-gap/gap-40 Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-rest-gap/gap-56 Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-rest-gap/gap-56 Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-rest-gap/gap-72 Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-rest-gap/gap-72 Apple System Colors unchanged 0% own App.tsx
agent-pane.continuation-spacing/shipped Apple System Colors Light unchanged 0% own App.tsx
agent-pane.continuation-spacing/shipped Apple System Colors unchanged 0% own App.tsx

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

Shipped in:

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 4, 2026
@cmux-bot
cmux-bot Bot merged commit 0c0128d into feat-cmux-next Nov 4, 2026
184 of 195 checks passed
@cmux-bot
cmux-bot Bot deleted the claude-turn-fold-opt-in branch November 4, 2026 15:47
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent, correctness): SHIP at 7d50beb.

Gallery health reds at this head, checked by name against base 72522bf:

  • agent-pane.incoming-message-disclosure#d-sender-only is past its layout-shift baseline. That chat sets no harness family, so it folds as Codex, a path this PR doesn't change. It also has no tool calls, so it never draws a turn fold.
  • agent-pane.agent-start#slow-start has a layout shift on the live line's "Writing" shimmer while the turn is running. This PR only changes how a finished turn folds; a running Claude turn's runs are unchanged.

Neither red is caused by this PR. The thread-minimap states are red on base too. The risk tier hold isn't a required check.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 7d50beb5 Deployed Nov 4, 2026 by teamleaderleo via wait for same-key tree publisher #112241
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

leo-named-fix An obvious fix to something Leo named: lands on push, review runs in parallel risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant