Running tray: the header's counts change in place, with no fade, in tabular digits

Merged
TE
4d ago
+48-3

Leo, 2026-10-31: "I hate how this keeps jolting every time there's a new subagent or command, it looks terrible."

Leo-ask: ask-063dff8f1d

The running tray's header ("Running in background · 9 subagents · 13 commands") crossfaded its whole title on every count change (Tick), and its digits were proportional, so each new subagent or command flickered the words and nudged the elapsed time after them.

  • Tick gains steadyCounts: a change in the numbers alone swaps in place with no fade; a change in the words (between turns and in a turn) still ticks. Only the tray header opts in; the other Tick users are unchanged.
  • The header title's digits are tabular, so a count ticking over moves nothing after it unless it gains a digit.

Already landed since the ask, on the same complaint: the tray starts folded so new lines don't rise in (#29794/#29885), calmer arrivals (#29792), opening the tray moves no transcript row (#30141), the header keeps the lines' text column with no 3/4 ring (#31424), and the newest row rests 56px over the composer stack (#30297).

Test: webviews/test/subagent-tray-motion.test.tsx "steady counts: a count ticking over swaps in place; new words still tick".

Agent session: agent session

🤖 Generated with Claude Code


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


Summary by cubic

Stops the running tray's header from jolting when a subagent or command count ticks over. The title previously crossfaded on every count change and its proportional digits nudged the elapsed time; now a change in only the numbers swaps in place with no fade, while a change in the wording still ticks.

  • Tick gains a steadyCounts option that skips the fade for number-only changes; only the tray header opts in, other Tick users are unchanged.
  • The header title now uses tabular-nums, so a count gaining a digit is the only thing that moves anything after it.
  • Adds a test covering a count ticking over in place and a wording change still ticking.