Skip to content

Agent pane: a finished turn's fold comes from one per-harness-family table - #35113

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
turn-fold-style-table
Nov 4, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
turn-fold-style-table

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

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

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)", then: "i think it should be the top level collapsible thing IF POSSIBLE... SOMETIMES there's just claude chatter that we could prob group up".

Follow-up to #34774, which folds a finished Claude turn under one "Worked for".

What changes

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

Family Finished turn
codex (ChatGPT) Unchanged: a closed "Worked for" over the conclusion, with Codex's "N previous messages" header when messages sit between the work.
claude #34774's fold, but the header always reads "Worked for" (ChatGPT's "Worked for 12m 16s ›") and never counts messages. When opened, the runs still fold one line per run.
gemini No turn fold. Each run of calls folds into its own line in place, the way Gemini CLI groups a run's calls in one tool box.
muse No reference shows how Muse Code ends a turn, so it gets no turn fold either, only per-run lines in place.
any other family Folds like Codex, as before.

Spec: leo-workspace design/chat-transcript.md, "fold a finished turn as its harness family's row says".
Gallery: agent-pane.turn-fold-per-harness, with variants claude, claude-open, codex, gemini and muse.

Tests

  • conversation/turnFoldStyle.test.ts: one test per family, plus Claude edge cases: a turn that ends on a tool call, a turn with only a reply, and a running turn.
  • conversation/codexHeader.test.ts: a Claude turn reads "Worked for 1m", not the message count.

Observed / Not run

  • A fleet webviews check and test run is in flight at this head. Anything it finds is fixed forward, since this is a leo-named-fix.

Changelog

Changed: A finished Claude turn's fold always reads "Worked for", and Gemini and Muse turns keep their work in place.

🤖 Generated with Claude Code

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

How a finished turn folds now comes from one table per harness family (turnFoldStyle.ts) instead of hardcoded claude checks in turns.ts.

Behavior per family

  • Codex and any family without a row: unchanged, closed "Worked for" that counts the messages it folds.
  • Claude: same fold, but the header always reads "Worked for" and never counts messages; opened, its runs still fold one line per run.
  • Gemini and Muse: no turn fold; each run of calls folds into its own line in place.

Written for commit 0e252db. Summary will update on new commits.

View guided diff Turn on auto-fix

…laude reads Worked for, Gemini and Muse keep their runs in place

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)".

conversation/turnFoldStyle.ts (TURN_FOLD_STYLES) replaces the claude checks in turns.ts: codex
keeps the conclusion fold with its message-count header; claude keeps the conclusion fold from
in place; any other family folds as Codex. One test per family, and a gallery entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-92fa78a91e29868c5eaa
@teamleaderleo teamleaderleo added risk:normal Risk tier (docs/ci/risk-tiers.md) leo-named-fix An obvious fix to something Leo named: lands on push, review runs in parallel labels Nov 4, 2026
@teamleaderleo
teamleaderleo merged commit 7c2f5e2 into feat-cmux-next Nov 4, 2026
159 of 182 checks passed
@teamleaderleo
teamleaderleo deleted the turn-fold-style-table branch November 4, 2026 08:13
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@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)

Shipped in:

teamleaderleo added a commit that referenced this pull request Nov 4, 2026
…ns back on the scale (#35471)

react-apps-check and the icon-scale check were red on feat-cmux-next d4336f3:

- check-icon-scale: four new off-scale icons. TaskGoalStrip's Expand 15 -> 16 (#34516),
  the resuming Spinner 10 -> 12 (#34286, absolutely centred, so nothing moves),
  ExtraFolderList's remove glyph 10 -> 12 (#33242, a close mark is 12).
- drawn-height-priority: the test cut App.tsx from flushDrawn to the observer; #34911
  put reportRow and placeRowNow between them, which need refs the probe lacks. It now
  takes flushDrawn up to its own `}, []);`. The naive-guard mutation run still fails.
- transcript-long-chat-updates: #34607 made a closed "Worked for" a step row, so the
  prose under it sits a run gap (16) away; the test still read the bare rowMark (24).
  model.ts's per-row mark is now one exported `gridMark`, used by layoutConversation
  and by the test, so they cannot drift again.
- SentMessageGroup "a finished Claude turn": #35113 folds a finished Claude turn under
  one "Worked for" (it landed beside #34865's test). The test now checks the run is out
  of sight while the fold is closed and is one send-group line once opened.
- agent-pane-working-counts (browser lane, CI only): #34866 dropped "total" from the
  live line; the two expectations read "Read app.ts 2m 9s" now.

STARTING_READS typecheck/lint red was already fixed on base by #35409.


Agent-Session: https://cmux.com/deeplink/agent?id=aid-8707001042ea634e8771

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
cmux-bot Bot pushed a commit that referenced this pull request Nov 4, 2026
…-turn Worked for is an opt-in (#35537)

* Agent pane: a finished Claude turn keeps its runs in place; its whole-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

* gallery: the per-harness fold entry covers the rows it draws

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

* test: a finished Claude turn of the send loop draws its run in place, no Worked for

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

* test(transcript): the Claude cohesion variant draws no whole-turn Worked for again (undoes #35410's expectation)

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Nov 4, 2026
… for fold, and declares its 4-minute run (#35516)

#34774 and #35113 fold a finished Claude turn under one Worked for, so the claude variant's
'no header' expectation no longer held. The file's 48 browser cases take about 240 s, past the
runner's 120 s default, so CI timed it out (and shard 1 with it).


Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

This branch was previously deployed

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