feat(tui): stream thinking + tools expanded by default

Extends SECTION_DEFAULTS so the out-of-the-box TUI shows the turn as
a live transcript (reasoning + tool calls streaming inline) instead of
a wall of `▸` chevrons the user has to click every turn.

Final default matrix:

  - thinking: expanded
  - tools:    expanded
  - activity: hidden    (unchanged from the previous commit)
  - subagents: falls through to details_mode (collapsed by default)

Everything explicit in `display.sections` still wins, so anyone who
already pinned an override keeps their layout.  One-line revert is
`display.sections.<name>: collapsed`.
This commit is contained in:
Brooklyn Nicholson 2026-04-24 02:53:44 -05:00
parent 70925363b6
commit 67bfd4b828
3 changed files with 53 additions and 26 deletions

View file

@ -132,24 +132,29 @@ Runtime toggles:
**Default visibility**
- `thinking`, `tools`, `subagents` — fall through to the global `details_mode`
(collapsed under chevron by default, click to expand).
- `activity`**hidden by default**. The activity panel surfaces ambient
meta (gateway hints, terminal-parity nudges, background notifications) and
is noise for most day-to-day use. Tool failures still render inline on the
failing tool row, so this default suppresses the noise feed without losing
the signal.
The TUI ships with opinionated per-section defaults that stream the turn as
a live transcript instead of a wall of chevrons:
- `thinking`**expanded**. Reasoning streams inline as the model emits it.
- `tools`**expanded**. Tool calls and their results render open.
- `subagents` — falls through to the global `details_mode` (collapsed under
chevron by default — stays quiet until a delegation actually happens).
- `activity`**hidden**. Ambient meta (gateway hints, terminal-parity
nudges, background notifications) is noise for most day-to-day use. Tool
failures still render inline on the failing tool row; ambient
errors/warnings surface via a floating-alert backstop when every panel
is hidden.
Per-section overrides take precedence over both the section default and the
global `details_mode`. To opt the activity panel back in:
global `details_mode`. To reshape the layout:
- `display.sections.activity: collapsed` — under a chevron
- `display.sections.activity: expanded` — always open
- `/details activity collapsed` at runtime
- `display.sections.thinking: collapsed` — put thinking back under a chevron
- `display.sections.tools: collapsed` — put tool calls back under a chevron
- `display.sections.activity: collapsed` — opt the activity panel back in
- `/details <section> <mode>` at runtime
With `activity: hidden` (the default), errors/warnings are suppressed entirely
— the floating-alert fallback that surfaces under `details_mode: hidden` is
silenced as well.
Anything set explicitly in `display.sections` wins over the defaults, so
existing configs keep working unchanged.
## Sessions