Repository navigation
cmux NEXT: long thoughts fold by default; Codex's 140px threshold is a choice - #21661
Conversation
A long thought folded once done (#20948, Debug toggle agentPane.debug.foldLongThoughts) now reads how long the agent thought, from its first chunk to its latest, clamped at zero for out-of-order events. An undated thought, or one under a second, reads "Thought". #20948's "Thought" plus first line stays as the Debug choice agentPane.debug.thoughtHeader = preview, which the app sets on <html> as data-thought-header. New string tools.thoughtFor in all 21 pane locales (split from #20963). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With the long-thought fold on (agentPane.debug.foldLongThoughts), a thought taller than 140px that is still streaming reads "Thinking" and holds a fixed 140px viewport (Codex's 8.75rem) with its newest line at the bottom and older lines fading out over 16px. Once done it folds as before; the fold measures the text's whole height, not the clip. Debug toggle agentPane.debug.liveThoughtViewport, on by default; off sets data-live-thought-viewport="off" and the thought streams in full (split from #20963). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…a choice agentPane.debug.foldLongThoughts is now on by default (Leo 2026-10-18): a finished long thought folds to "Thought for 12s" in new agent tabs. Off still keeps every thought in full. A new Debug choice, agentPane.debug.thoughtFoldThreshold, picks what "long" means: viewport (default, #20948: taller than the transcript, never under 400px) or codex (taller than seven lines, 140px), which the app sets on <html> as data-thought-fold-threshold="codex" (split from #20963). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Receipt for
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
red: web / Web status; do not merge until green; see lane-rules |
|
Bead |
|
Unclear: CI failed on
Not re-run automatically: Written by |
|
Agents: |
|
🤖 Generated with Claude Code |
The fold threshold was max(400px, transcript height), so in an 800px pane a thought between 140px and the pane's height streamed clipped to the live viewport and then grew to nearly a screen when it ended. While agentPane.debug.liveThoughtViewport is on, a finished thought taller than the 140px viewport now folds, so nothing grows after it streams; agentPane.debug.thoughtFoldThreshold counts only with the live viewport off. Review finding on #21661. Also: a test for the minutes label ("Thought for 1m 5s"), and the Swift tests check each tunable's defaultValue rather than its stored value. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot needs on-demand usage enabledBugbot 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. |
|
Closing and reopening to start a fresh CI run on the current base: #21679 fixed the base check:text-focus red, and a plain rerun would reuse the old merge commit. Head unchanged. |
…s check:text-focus fix)
|
Found 4 test failures on Blacksmith runners: Failures
|
… as a squash) # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneTunables.swift # Packages/macOS/CmuxNext/Tests/CmuxNextAgentPaneTests/AgentPaneThoughtTunablesTests.swift # webviews/src/agent-session/acpmux/conversation/ThoughtRow.test.tsx # webviews/src/agent-session/acpmux/conversation/ThoughtRow.tsx # webviews/src/agent-session/acpmux/conversation/conversation.css
Bugbot needs on-demand usage enabledBugbot 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. |
… as a squash) # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneTunables.swift # Packages/macOS/CmuxNext/Tests/CmuxNextAgentPaneTests/AgentPaneThoughtTunablesTests.swift # webviews/src/agent-session/acpmux/conversation/ThoughtRow.test.tsx # webviews/src/agent-session/acpmux/conversation/ThoughtRow.tsx
Bugbot needs on-demand usage enabledBugbot 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. |
|
Shipped in:
|
…rows Base built its own design for the transcript features this PR touched: long thoughts fold behind Debug toggles (#20948, #21656, #21661) and Codex-style tool runs build on ToolRun (#20969). This merge takes base's side in every conflict (ThoughtRow, TurnRows, turns, direct, model, the permission panel, the transcript gallery), keeps ToolRun.tsx and toolRunSummary.ts, drops the generated string tables (build output since #21970), and adds this PR's new catalog strings beside base's. The redesign on base's architecture follows in the next commits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…or lists every step (red) On base's ThoughtRow fold (#20948, #21656, #21661): by default every done thought folds to its "Thought for Ns" line, a streaming one reads "Thinking", and a thought sent as one chunk lasts until the next step starts. The Debug choices viewport and codex keep folding only long ones. On base's tool runs (#20969): a live turn's Codex-style run still folds under ToolRun, while an open "Worked for" lists every step unless the new Debug toggle agentPane.debug.workedForFoldsRuns folds it again. transcript-live-runs gives its calls ids apart from their titles: a title equal to the call's id now reads as no title (toolKinds.ts isCallId). agent-pane-step-rows goes back to base's: without the app's fold attribute a thought shows in full. Red at this commit: bun test ThoughtRow.test.tsx TurnRows.test.tsx transcript-live-runs transcript-row-thought transcript-worked-steps: 25 pass, 10 fail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Stacked on #21660, which is stacked on #21656. This branch includes both. Review only this PR's own commits:
e5b2e49db7d6and7da4f34c3a36. Land this last.Long thoughts in the agent chat now fold by default, as Leo asked on 2026-10-18.
agentPane.debug.foldLongThoughtsdefaults to on, so in a new agent tab a long thought streams in the seven-line live viewport (#21660). Once the agent moves on, it folds to "Thought for 12s" (#21656). Turning the toggle off in Debug Settings > Pages still keeps every thought in full.What counts as long:
agentPane.debug.thoughtFoldThreshold), decides.viewport(the default) keeps Agent chat: long thoughts fold once done, behind a Debug toggle #20948's rule: taller than the transcript, never under 400 px.codexfolds anything taller than seven lines (140 px). The app setsdata-thought-fold-threshold="codex"on<html>.Freeze WINDOW areas:
Packages/macOS/CmuxNext(Debug tunables inAgentPaneTunables.swift, including a changed default).Testing
bun test src/agent-session/acpmux/conversation/ThoughtRow.test.tsxpasses, 19 tests. They include:7da4f34c3a36's change, ase5b2e49db7d6has it. Next to it, a 140 px thought stays in full and a 141 px one folds.codexfolds past 140 px.bun run checkinwebviews/passes, andlint-ios-package-conventions.sh --namespace-fixis clean.AgentPaneThoughtTunablesTests.swiftchecks each tunable'sdefaultValue, including the fold being on, plus the threshold's key and itscodexattribute.check:text-focusonfeat-cmux-nextis fixed.Changelog
Changed: A long reasoning trace in agent chat folds to "Thought for 12s" once the agent moves on
🤖 Generated with Claude Code