Skip to content

Agent pane: a finished turn folds per harness family; Gemini and Muse fold runs in place, no Worked for - #34988

Closed
teamleaderleo wants to merge 3 commits into
feat-cmux-nextfrom
lane/transcript-fold-per-harness
Closed

teamleaderleo wants to merge 3 commits into
feat-cmux-nextfrom
lane/transcript-fold-per-harness

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Leo-ask: ask-472c441430

Leo, 2026-11-04: "doesn't make sense to fold claude's transcripts like that. do it for chatgpt, do the proper folds for however the other harnessses/model families fold (muse, gemini) but chatgpt-style minimalism conclusion folding can only necessarily make sense for them"

What changes

How a finished turn folds is now one table per harness family, conversation/turnFoldStyle.ts (TURN_FOLD_STYLES, keyed by the family's agent, so claude-sr2 is claude). turns.ts reads it once per turn; the startsWith("claude") checks are gone.

Family Finished turn
codex (ChatGPT) Unchanged: one closed "Worked for" over the conclusion; opened, the calls draw one under another.
claude As #34774 (merged) made it: one "Worked for" at the top; opened, each run folds into its own line as Claude desktop draws it.
gemini New: no "Worked for". Each run of calls folds into its own line in place, as Gemini CLI groups a run's calls in one tool box; longer messages stay between them.
muse New: the same as Gemini: no conclusion fold, per-run lines in place.
anything else Folds as Codex does, as before.

Before this, Gemini and Muse chats fell through to the Codex fold, the ChatGPT-style minimal end of turn Leo said only makes sense for ChatGPT. Their in-place look is the per-run path Claude turns used before #34774 (cmux#30176), so no new row kind or style.

Prior attempt: #34631 (closed, superseded by #34774 for the Claude part; this is its per-harness table).

Tests

  • webviews/src/agent-session/acpmux/conversation/turnFoldStyle.test.ts: the table per family, variant ids, a prototype key.
  • webviews/test/transcript-claude-turn-groups.test.ts: the recorded 81-call turn and the steered turn in Gemini and Muse chats draw no "Worked for", every run folds in place and the long messages stay; an unnamed family folds as Codex does.

Observed / Not run

  • Fleet runs of these two files and the webview check are in the comments below.
  • Not run: a DEV build read-back with a live Gemini or Muse chat.

Changelog

Changed: A finished Gemini CLI or Muse Code turn shows its work in place, each run of calls on its own line, instead of folding under "Worked for".

🤖 Generated with Claude Code

Agent session: agent session

@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 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, correctness first): SHIP at 2d5e7a3

Visual verdict: no images; code verdict only.

Checked every former claudeGroups use against its replacement: Codex and Claude behave exactly as at #34774's head e8a5ca2; Gemini and Muse take the pre-#34774 Claude in-place path line for line. agentKey matching (gemini-cli, claude-sr2, undefined, prototype keys) is right; no other fold code keys on family. Tests: 14 pass on these files; the Gemini/Muse tests fail with the turns.ts change reverted.

Follow-ups:

  • F1 [follow-up] (outcome:pending) The Gemini/Muse tests live in transcript-claude-turn-groups.test.ts; split or rename by family.
  • F2 [follow-up] (outcome:pending) turnFoldStyle(agentFamily) is read in both shapedTurn and shapeTurn; could be passed through once.

teamleaderleo and others added 3 commits November 4, 2026 07:42
…Gemini and Muse fold runs in place, no Worked for

Leo, 2026-11-04: "doesn't make sense to fold claude's transcripts like that. do it for chatgpt, do the
proper folds for however the other harnessses/model families fold (muse, gemini) but chatgpt-style
minimalism conclusion folding can only necessarily make sense for them".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-cb8b9969051e7411b140
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-cb8b9969051e7411b140
@teamleaderleo
teamleaderleo force-pushed the lane/transcript-fold-per-harness branch from 2d5e7a3 to 0522c9d Compare November 4, 2026 07:45
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent claude-opus-5-5 medium, delta after the rebase onto #34774's merge): SHIP at 0522c9d

Visual verdict: no images; code verdict only.

Rebase kept base's supersededFooters intact; every fold check reads turnFoldStyle. Gemini/Muse steered order matches base's opened Claude expectation, an unnamed family matches base's Codex one. turnFoldStyle and turn-group tests: 14 pass.

Follow-ups:

  • F1 [follow-up] (outcome:pending) An in-place family's finished turn with a mixed work/steer-reply segment has no fixture yet.

@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 0522c9d: 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=pr34988 -f ref=lane/transcript-fold-per-harness -f platform=macos -f backend_mode=local

Gallery before/after for 0522c9d: 16 states rendered, 0 images differ, 3529 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 41794536789 -R manaflow-ai/cmux -n gallery-advisory-34988-0522c9d87e0905f8d7dda3b988bef9b13817733e (then read gallery-review.json)

States
State Theme Status Diff Picked by
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
agent-pane.continuation-spacing/two-thirds Apple System Colors Light unchanged 0% own App.tsx
agent-pane.continuation-spacing/two-thirds Apple System Colors unchanged 0% own App.tsx
agent-pane.continuation-spacing/half-tucked Apple System Colors Light unchanged 0% own App.tsx
agent-pane.continuation-spacing/half-tucked Apple System Colors unchanged 0% own App.tsx
agent-pane.continuation-spacing/before Apple System Colors Light unchanged 0% own App.tsx
agent-pane.continuation-spacing/before Apple System Colors unchanged 0% own App.tsx
agent-pane.copy-controls/output Apple System Colors Light unchanged 0% own App.tsx
agent-pane.copy-controls/output Apple System Colors unchanged 0% own App.tsx

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

red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: red check: Base-red classifier (per test) (+1 more) is not red on the base 358a445; do not merge until green; see lane-rules
red: web / Web status; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules
red: web / react-apps-base-check (4); NEW webview test reds: test/new-tab-live-resize.test.ts > webkit: the composer page follows a live resize; test/new-tab-live-resize.test.ts > webkit: the threads page follows a live resize; do not merge until green; see lane-rules
red: web / react-apps-check; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules

@blacksmith-sh

blacksmith-sh Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Found 14 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmpmnum6im3/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpu9qmv_np/summary-fail.json (live):/summary-fail.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
test/composer-permission-pill.test.ts/composer-permission-pill.test View Logs
test/composer-permission-pill.test.ts/composer-permission-pill.test View Logs
test/new-tab-live-resize.test.ts/new-tab-live-resize.test View Logs
test/new-tab-live-resize.test.ts/new-tab-live-resize.test View Logs

...and 4 more test failures. View all on Blacksmith

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Superseded by #35113 (merged 08:13Z), which lands the same per-harness-family table: Codex/ChatGPT keep the Worked for conclusion fold, Claude keeps #34774's, Gemini and Muse fold runs in place with no Worked for. Nothing here is left that #35113 lacks.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 0522c9d8 Deployed Nov 4, 2026 by teamleaderleo via wait for same-key tree publisher #110494
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