#11010: fix(control-ui): hide tool call cards when thinking toggle is off
app: web-ui
stale
Cluster:
UI Enhancements and Fixes
## Problem
When the thinking/reasoning toggle is off in the Control UI, tool call cards (exec, edit, read, sessions_history, etc.) still appear in the chat view. These cards show only the tool name and "Completed" status, cluttering the conversation without providing meaningful information to the user.
**Screenshot showing the issue:**
Tool cards like `exec`, `edit`, `sessions_history` appear inline even when thinking is toggled off, taking up space without adding value.
## Solution
This PR hides tool call cards when `showReasoning` is false:
1. **Standalone tool result cards** — Returns `nothing` instead of rendering tool cards when `showReasoning` is false (in `grouped-render.ts`)
2. **Inline tool cards** — Skips rendering tool cards within assistant message bubbles when `showReasoning` is false
3. **Pure tool-call assistant messages** — Filters out assistant messages that contain only `tool_call`/`thinking` blocks (extends the existing `toolResult` filter, related to #10985 / #10996)
## Changes
- `ui/src/ui/chat/grouped-render.ts` — Conditionally render tool cards based on `showReasoning`
- `ui/src/ui/views/chat.ts` — Filter assistant messages with only tool call/thinking content blocks
## Testing
1. Open Control UI chat
2. Toggle thinking/reasoning **off**
3. Verify tool call cards no longer appear in the conversation
4. Toggle thinking **on**
5. Verify tool call cards appear as before
Related: #10985, #10996
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
- Updates Control UI chat rendering to hide tool call/result cards when the thinking/reasoning toggle is disabled.
- `grouped-render.ts` now returns `nothing` for standalone tool-result-only bubbles and skips inline tool card rendering unless `showReasoning` is true.
- `chat.ts` extends message filtering to drop assistant messages whose content is only tool-call and/or thinking blocks when `showThinking` is false.
<h3>Confidence Score: 3/5</h3>
- This PR is likely safe to merge, but the new filtering may miss some tool-only message variants and leave the original clutter in certain provider/message formats.
- The rendering changes are small and gated by `showReasoning`, but the assistant-message filter relies on a narrow allowlist of block `type` strings; if other tool block variants are emitted, they won’t be filtered, undermining the intended behavior.
- ui/src/ui/views/chat.ts
<!-- greptile_other_comments_section -->
<sub>(5/5) You can turn off certain types of comments like style [here](https://app.greptile.com/review/github)!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#10996: fix(control-ui): hide tool call blocks when thinking/working toggle...
by Annaxiebot · 2026-02-07
89.5%
#11526: fix(control-ui): hide tool-only assistant messages when thinking is...
by Annaxiebot · 2026-02-07
88.6%
#12079: TUI: improve thinking UX, tool readability, and live running status...
by rubenfb23 · 2026-02-08
82.8%
#17448: ui: make tool cards collapsible with inline expansion
by karimStekelenburg · 2026-02-15
80.7%
#20317: feat(webchat): add toggle to hide tool calls and thinking blocks
by nmccready · 2026-02-18
80.4%
#16733: fix(ui): avoid injected newlines when tool output is hidden
by jp117 · 2026-02-15
78.2%
#10097: fix: add empty thinking blocks to tool call messages when thinking is…
by cyxer000 · 2026-02-06
77.2%
#8353: fix(ui): display tool calls during webchat streaming
by MarvinDontPanic · 2026-02-03
76.9%
#9248: Fix: Webchat UI goes grey/unresponsive after Slack message tool calls
by vishaltandale00 · 2026-02-05
76.6%
#19555: feat(android): collapsible thinking/code blocks in chat
by gregmousseau · 2026-02-17
75.5%