Status Line Not Refreshing on Thinking Mode Toggle
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Status Line Not Refreshing on Thinking Mode Toggle (Tab Key)
## Description
The status line does not update when toggling thinking mode with the Tab key. According to the documentation, the status line "updates every 300ms when conversation messages change,"
but Tab toggle does not trigger this refresh.
## Steps to Reproduce
- Configure status line in
~/.claude/settings.json:
```json
{
"statusLine": {
"type": "command",
"command": "jq -r '.model.display_name + \" | thinking: \" + (if .extended_thinking.enabled then \"on\" else \"off\" end)'"
}
}
- Start a conversation
- Press Tab to toggle thinking mode on/off
- Observe that status line shows old thinking state
- Send a message
- Status line now correctly shows updated thinking state
Expected Behavior
Status line should refresh immediately when Tab key toggles thinking mode, showing the updated extended_thinking.enabled state.
Actual Behavior
Status line only refreshes on message send/receive events, not on Tab toggle events. The thinking status becomes stale until the next message is sent.
Environment
- OS: Linux (Ubuntu/Debian)
- Claude Code CLI version: [latest as of 2025-10-10]
- Shell: bash
Workaround
Send any message after toggling thinking mode to force status line refresh. This is not ideal for quick status checks.
Root Cause Analysis
The status line documentation states it "updates every 300ms when conversation messages change." Tab toggle does not qualify as a "conversation message change," so the 300ms polling
never triggers a refresh.
Suggested Fix
Status line should refresh on ANY state change that affects the JSON input, not just message events. This includes:
- Tab key thinking toggle
- Model changes via /model command
- Any UI state changes that modify the status line JSON input
Impact
- Minor UX issue
- Users cannot see real-time thinking mode status
- Forces unnecessary message sending just to check status
Related
The status line command itself works correctly - testing the jq command manually with both extended_thinking.enabled: true and false produces correct output. The issue is purely with
the refresh trigger mechanism.
---
What Should Happen?
Status Line Not Refreshing on Thinking Mode Toggle (Tab Key)
## Description
The status line does not update when toggling thinking mode with the Tab key. According to the documentation, the status line "updates every 300ms when conversation messages change,"
but Tab toggle does not trigger this refresh.
## Steps to Reproduce
- Configure status line in
~/.claude/settings.json:
```json
{
"statusLine": {
"type": "command",
"command": "jq -r '.model.display_name + \" | thinking: \" + (if .extended_thinking.enabled then \"on\" else \"off\" end)'"
}
}
- Start a conversation
- Press Tab to toggle thinking mode on/off
- Observe that status line shows old thinking state
- Send a message
- Status line now correctly shows updated thinking state
Expected Behavior
Status line should refresh immediately when Tab key toggles thinking mode, showing the updated extended_thinking.enabled state.
Actual Behavior
Status line only refreshes on message send/receive events, not on Tab toggle events. The thinking status becomes stale until the next message is sent.
Environment
- OS: Linux (Ubuntu/Debian)
- Claude Code CLI version: [latest as of 2025-10-10]
- Shell: bash
Workaround
Send any message after toggling thinking mode to force status line refresh. This is not ideal for quick status checks.
Root Cause Analysis
The status line documentation states it "updates every 300ms when conversation messages change." Tab toggle does not qualify as a "conversation message change," so the 300ms polling
never triggers a refresh.
Suggested Fix
Status line should refresh on ANY state change that affects the JSON input, not just message events. This includes:
- Tab key thinking toggle
- Model changes via /model command
- Any UI state changes that modify the status line JSON input
Impact
- Minor UX issue
- Users cannot see real-time thinking mode status
- Forces unnecessary message sending just to check status
Related
The status line command itself works correctly - testing the jq command manually with both extended_thinking.enabled: true and false produces correct output. The issue is purely with
the refresh trigger mechanism.
---
Error Messages/Logs
Steps to Reproduce
Status Line Not Refreshing on Thinking Mode Toggle (Tab Key)
## Description
The status line does not update when toggling thinking mode with the Tab key. According to the documentation, the status line "updates every 300ms when conversation messages change,"
but Tab toggle does not trigger this refresh.
## Steps to Reproduce
- Configure status line in
~/.claude/settings.json:
```json
{
"statusLine": {
"type": "command",
"command": "jq -r '.model.display_name + \" | thinking: \" + (if .extended_thinking.enabled then \"on\" else \"off\" end)'"
}
}
- Start a conversation
- Press Tab to toggle thinking mode on/off
- Observe that status line shows old thinking state
- Send a message
- Status line now correctly shows updated thinking state
Expected Behavior
Status line should refresh immediately when Tab key toggles thinking mode, showing the updated extended_thinking.enabled state.
Actual Behavior
Status line only refreshes on message send/receive events, not on Tab toggle events. The thinking status becomes stale until the next message is sent.
Environment
- OS: Linux (Ubuntu/Debian)
- Claude Code CLI version: [latest as of 2025-10-10]
- Shell: bash
Workaround
Send any message after toggling thinking mode to force status line refresh. This is not ideal for quick status checks.
Root Cause Analysis
The status line documentation states it "updates every 300ms when conversation messages change." Tab toggle does not qualify as a "conversation message change," so the 300ms polling
never triggers a refresh.
Suggested Fix
Status line should refresh on ANY state change that affects the JSON input, not just message events. This includes:
- Tab key thinking toggle
- Model changes via /model command
- Any UI state changes that modify the status line JSON input
Impact
- Minor UX issue
- Users cannot see real-time thinking mode status
- Forces unnecessary message sending just to check status
Related
The status line command itself works correctly - testing the jq command manually with both extended_thinking.enabled: true and false produces correct output. The issue is purely with
the refresh trigger mechanism.
---
Claude Model
None
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
latest as of 2025-10-10
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
Status Line Not Refreshing on Thinking Mode Toggle (Tab Key)
## Description
The status line does not update when toggling thinking mode with the Tab key. According to the documentation, the status line "updates every 300ms when conversation messages change,"
but Tab toggle does not trigger this refresh.
## Steps to Reproduce
- Configure status line in
~/.claude/settings.json:
```json
{
"statusLine": {
"type": "command",
"command": "jq -r '.model.display_name + \" | thinking: \" + (if .extended_thinking.enabled then \"on\" else \"off\" end)'"
}
}
- Start a conversation
- Press Tab to toggle thinking mode on/off
- Observe that status line shows old thinking state
- Send a message
- Status line now correctly shows updated thinking state
Expected Behavior
Status line should refresh immediately when Tab key toggles thinking mode, showing the updated extended_thinking.enabled state.
Actual Behavior
Status line only refreshes on message send/receive events, not on Tab toggle events. The thinking status becomes stale until the next message is sent.
Environment
- OS: Linux (Ubuntu/Debian)
- Claude Code CLI version: [latest as of 2025-10-10]
- Shell: bash
Workaround
Send any message after toggling thinking mode to force status line refresh. This is not ideal for quick status checks.
Root Cause Analysis
The status line documentation states it "updates every 300ms when conversation messages change." Tab toggle does not qualify as a "conversation message change," so the 300ms polling
never triggers a refresh.
Suggested Fix
Status line should refresh on ANY state change that affects the JSON input, not just message events. This includes:
- Tab key thinking toggle
- Model changes via /model command
- Any UI state changes that modify the status line JSON input
Impact
- Minor UX issue
- Users cannot see real-time thinking mode status
- Forces unnecessary message sending just to check status
Related
The status line command itself works correctly - testing the jq command manually with both extended_thinking.enabled: true and false produces correct output. The issue is purely with
the refresh trigger mechanism.
---
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗