Repository navigation
Agent chat: a turn's tokens split into output and input, its time and tokens quieter - #24259
Conversation
… tokens quieter Leo (2026-10-21): "shouldnt the token text and maybe time tho be less prominent? darker? also i think usually anthropic talks about output instead of read tokens... but its ok if we show both, we just ought to split it up". acpmux now marks each Claude model call's usage with its split (_meta.acpmux.tokens: input, cacheRead, cacheWrite, output), and the pane adds the split up per turn beside the total. The running line reads "Thinking 3m 27s · ↓ 12.4K out ↑ 3.9M in": output first, then all the model read (fresh input, cache reads and writes), with each part named on hover. A finished turn's Worked for line and its footer say the turn's tokens from its turn_result the same way. The time (beside Thinking, and inside "Working for" and "Worked for") and the tokens take the tertiary text token in tabular numerals; the words keep their color. A call without the split (an older acpmux) falls back to the one total; Codex reports no per-call usage and shows the time alone, as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16030-bf28-7072-b1f6-b83bbd0beacc&host=cosmic-gray
|
Owned by an agent session · session |
|
Bead |
|
Review (codex gpt-6.1-sol, xhigh): BLOCK at c20a1f1 One change introduces a webviews check failure:
No additional concrete correctness defects found in the token accumulation/reset/rebuild paths, memoization, translated time splitting, markup assertions, Rust usage metadata, catalog generation, or footer placement. Static review only: no builds, tests, web lint, rustfmt, or clippy were run on this host. |
# Conflicts: # webviews/src/agent-session/acpmux/conversation/Thinking.tsx # webviews/src/agent-session/acpmux/conversation/TurnRows.tsx # webviews/src/agent-session/acpmux/conversation/WorkingFor.tsx
The base merge reordered the catalog and dropped chatInspector.tasks.noTerminal.noCall and .remote; this restores base's file and adds only turn.tokens.out, .in and .detail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16030-bf28-7072-b1f6-b83bbd0beacc&host=cosmic-gray
# Conflicts: # webviews/src/agent-session/acpmux/App.tsx
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: web / Web status; base red: the same failure on the base 7e033f2; does not block Gallery before/after for
States
Pick other states with a |
|
Found 52 test failures on Blacksmith runners: Failures
...and 42 more test failures. View all on Blacksmith: run 40632112089, run 40632112134
|
|
Review (codex gpt-6.1-sol, xhigh): BLOCK at 664a571 The merge resolution is correct, including the
|
An empty turn_result (outputTokens 0) made a truthy split that TurnTokens rendered as nothing, leaving a dangling "·" on the Worked for line and the turn footer. resultTokenSplit now drops an all-zero split, and both separators use the same hasTokens check as the component. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16030-bf28-7072-b1f6-b83bbd0beacc&host=cosmic-gray
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. |
|
Review (codex gpt-6.1-sol, xhigh): SHIP at 0252905 Posted by the lane on the reviewer's behalf: the Codex reviewer (acpmux session
Reds at this head, all also red on base:
|
|
Orphaned: no activity for 13 h, and no lane holds a lease on it. The orphan sweep could not merge |
# Conflicts: # webviews/src/agent-session/acpmux/direct.ts
The fake daemon never reports the session idle, so waiting on isWorking timed out; wait for the turnSummary row the result adds instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16030-bf28-7072-b1f6-b83bbd0beacc&host=cosmic-gray
# Conflicts: # webviews/src/agent-session/acpmux/conversation/TurnRows.tsx # webviews/src/agent-session/acpmux/conversation/WorkingFor.tsx # webviews/src/agent-session/acpmux/conversation/conversation.css # webviews/src/agent-session/acpmux/direct.ts
|
|
|
Review (codex gpt-6-astra xhigh, next-review): SHIP at c4e7354 No blocking findings. Tests were not run because the supplied snapshot lacks the full project and dependencies. |
Resolve against #25118 (turn count is output only): the running count and "N out" fallback stay base's output-only `turnTokens`; the split's "in" and hover detail come from the four counts base's acpmux already sends on each marked call (inputTokens, cachedReadTokens, cachedWriteTokens, outputTokens), so the separate `_meta.acpmux.tokens` object is dropped. Worked for tokens from `turn_result` sit on a turn's Worked for when it is the turn's only one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-f68ebdd9a3c1704ffb42
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-f68ebdd9a3c1704ffb42
…okens land The split's gap moves to the 8px step (check:design-tokens). A finished turn's tokens sit on its Worked for only when that is the turn's one line; tests cover one fold, several stretches and a steered turn. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-f68ebdd9a3c1704ffb42
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40638365379 at a3cf5fd failed: cmux-next fast tier (cargo). |
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo (2026-10-21): "shouldnt the token text and maybe time tho be less prominent? darker? also i think usually anthropic talks about output instead of read tokens... but its ok if we show both, we just ought to split it up"
Follows #23996 (merged), which added tests for the quieter token count, and builds on #25118 (merged), which made the turn count output only.
What changes
turnTokens); output is never folded into one total with what the model read. "in" is everything the model read: fresh input plus cache reads plus cache writes. Hovering the count shows each part ("Output 12.4K · fresh input 18K · cache reads 2.1M · cache writes 42K").--cv-text-dim) with tabular numerals. That covers the time beside "Thinking" or a running call, and the time inside "Working for 35s" and "Worked for 1m 16s". "Thinking" and the other words keep their color.turn_result(outputTokens,inputTokens,cacheReadTokens,cacheWriteTokens, acpmux hub/turn_usage.rs, Claude Code's main loop).inputTokens,cachedReadTokens,cachedWriteTokens,outputTokensbesideused, claude_stdio/inbound.rs); acpmux sends nothing new. The pane (direct.ts) adds the read side up per turn beside the output count.turn.working.outputTokens), so it never shows a split that leaves calls out.turn.tokens.out,turn.tokens.in,turn.tokens.detail). Non-English strings are marked needs_review.Tests
test/agent-pane-turn-tokens.test.tsx:turn_resulttokens reach the summary row.test/agent-pane-turn-token-split.test.tsx:cmux-tui/.../context_window.rs: the streamed call'susedis 4200 (Show output tokens separately from context in agent turns #25118) and it carries input 1200, cache reads 3000, cache writes 0, output 300.agent-pane.transcriptgetsworking-tokens(split),working-tokens-total(fallback, "2.1M out") andworked-tokens(finished turn).Before / after
Gallery
agent-pane.transcript, synthetic fixtures with Reduce Motion on. Before is feat-cmux-next's live gallery; after is this branch.Computed colors in the dark theme: words rgb(170,170,170); time and tokens rgb(136,136,136). Light theme: words rgb(97,97,97); time and tokens rgb(127,128,128). Hover text in the after state: "Output 12.4K · fresh input 18K · cache reads 2.1M · cache writes 42K". The before Worked for has no tokens and its time is in the words' color ("Worked for 1m").
Changelog
Changed: The agent chat's turn line shows output and input tokens separately, with the time and token counts in a quieter color.
Observed / Not run
vp fmt, the browser-lane import check, the xcstrings duplicate-key check, andgen-strings.mjs.bun testfor agent-pane-turn-tokens, agent-pane-turn-token-split, transcript-codex-live-line and agent-pane-turn-tokens-muted (47 pass), thevp checktypecheck,vp fmtandvp linton the touched files, the xcstrings key check, andcargo test -p acpmux --test hub_integration context_window, clippy with-D warningsand rustfmt.Agent session: agent session
🤖 Generated with Claude Code