"almost done thinking" spinner text is a wall-clock guess and stays shown for minutes — stop asserting false progress

Open 💬 0 comments Opened Jul 9, 2026 by davidpmclaughlin

Feature request

The extended-thinking spinner escalates its status phrase on a hardcoded wall-clock ladder and, past 45 seconds, parks on "almost done thinking" and stays there indefinitely. The observed sequence:

| Elapsed thinking time | Phrase shown |
| --- | --- |
| 0–10s | thinking |
| 10s+ | still thinking |
| 20s+ | thinking more |
| 30s+ | thinking some more |
| 45s+ | almost done thinking (terminal rung — never advances) |

The only input to the phrase is elapsed wall-clock time (now - thinkingBurstStart). There is no model signal behind it — nothing about tokens produced, reasoning progress, or an actual estimate of remaining work. So "almost done thinking" is shown at 45 seconds and is still shown at 1 minute, 5 minutes, 15 minutes, or 20 minutes into the same burst.

It is extremely annoying to watch the UI claim "almost done" and then sit on that exact phrase for a minute, five minutes, fifteen, twenty. The label makes a promise about progress that the tool has no basis for and does not keep. A status line that asserts something demonstrably false, for minutes on end, is worse than a neutral one — it repeatedly sets and breaks an expectation on every long turn.

spinnerVerbs doesn't help here (it covers tool-execution verbs), and spinnerTipsEnabled gates the unrelated tips feature. There is currently no setting or environment variable to change or disable this phrase. Related: #48789 asks to hide/customize the "Thinking" label; this issue is narrower and about the misleading progress claim specifically.

Requested change (any one of these resolves it)

  1. Stop asserting "almost done." Replace the 45s+ terminal rung with wording that doesn't promise completion — e.g. still thinking, thinking (Ns), or simply keep it at thinking with the existing elapsed-time counter that's already rendered alongside it. The elapsed counter already conveys "this is taking a while" honestly; the editorializing phrase adds nothing but a false promise.
  2. Make the phrases configurable/disable-able, the way spinnerVerbs already works for tool verbs — let users replace or blank the thinking-status phrases (this would also close #48789).
  3. If a progress-style phrase is kept, drive it from an actual signal (tokens emitted, or a real remaining estimate) rather than pure elapsed time, so "almost done" only appears when it's plausibly true.

Option 1 is the minimal fix and would remove the annoyance entirely.

Environment

  • Claude Code 2.1.205
  • macOS (Apple Silicon)
  • Model: Opus 4.8, max effort (long thinking bursts are routine at this setting, so the 45s+ rung is hit constantly)

---
🤖 _Written with Claude Code AI assistance (Opus 4.8, max effort)_

View original on GitHub ↗