fix(tui): gate messageLine on content-bearing sections, not all sections
Round-2 Copilot review on #14968 caught two leftover spots that didn't fully respect per-section overrides: - messageLine.tsx (trail branch): the previous fix gated on `SECTION_NAMES.some(...)`, which stayed true whenever any section was visible. With `thinking: 'expanded'` as the new built-in default, that meant `display.sections.tools: hidden` left an empty wrapper Box alive for trail messages. Now gates on the actual content-bearing sections for a trail message — `tools` OR `activity` — so a tools-hidden config drops the wrapper cleanly. - messageLine.tsx (showDetails): still keyed off the global `detailsMode !== 'hidden'`, so per-section overrides like `sections.thinking: expanded` couldn't escape global hidden for assistant messages with reasoning + tool metadata. Recomputed via resolved per-section modes (`thinkingMode`/`toolsMode`). - types.ts: rewrote the SectionVisibility doc comment to reflect the actual resolution order (explicit override → SECTION_DEFAULTS → global), so the docstring stops claiming "missing keys fall back to the global mode" when SECTION_DEFAULTS now layers in between. All three lookups (thinking/tools/activity) are computed once at the top of MessageLine and shared by every branch.
This commit is contained in:
+5
-5
@@ -116,11 +116,11 @@ export type Role = 'assistant' | 'system' | 'tool' | 'user'
|
||||
export type DetailsMode = 'hidden' | 'collapsed' | 'expanded'
|
||||
export type ThinkingMode = 'collapsed' | 'truncated' | 'full'
|
||||
|
||||
// Per-section overrides on top of the global DetailsMode. Each missing key
|
||||
// falls back to the global mode; an explicit value overrides for that one
|
||||
// section only — so users can keep the accordion collapsed by default while
|
||||
// auto-expanding tools, or hide the activity panel entirely without touching
|
||||
// thinking/tools/subagents.
|
||||
// Per-section overrides for the agent details accordion. Resolution order
|
||||
// at lookup time is: explicit `display.sections.<name>` → built-in
|
||||
// SECTION_DEFAULTS → global `details_mode`. Today the built-in defaults
|
||||
// expand `thinking`/`tools` and hide `activity`; `subagents` falls through
|
||||
// to the global mode. Any explicit value still wins for that one section.
|
||||
export type SectionName = 'thinking' | 'tools' | 'subagents' | 'activity'
|
||||
export type SectionVisibility = Partial<Record<SectionName, DetailsMode>>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user