feat(tui): read display.streaming / show_reasoning / show_cost / inline_diffs from config

Extends ConfigDisplayConfig and UiState so the four new display flags
flow from `config.get {key:"full"}` into the nanostore. applyDisplay is
exported to keep the fan-out testable without an Ink harness.

Defaults mirror v1 parity: streaming + inline_diffs default true
(opt-out via `=== false`), show_cost + show_reasoning default false
(opt-in via plain truthy check).
This commit is contained in:
Brooklyn Nicholson 2026-04-18 09:23:29 -05:00
parent 586b2f2089
commit 200c17433c
5 changed files with 85 additions and 2 deletions

View file

@ -27,14 +27,18 @@ const quietRpc = async <T extends Record<string, any> = Record<string, any>>(
}
}
const applyDisplay = (cfg: ConfigFullResponse | null, setBell: (v: boolean) => void) => {
export const applyDisplay = (cfg: ConfigFullResponse | null, setBell: (v: boolean) => void) => {
const d = cfg?.config?.display ?? {}
setBell(!!d.bell_on_complete)
patchUiState({
compact: !!d.tui_compact,
detailsMode: resolveDetailsMode(d),
statusBar: d.tui_statusbar !== false
inlineDiffs: d.inline_diffs !== false,
showCost: !!d.show_cost,
showReasoning: !!d.show_reasoning,
statusBar: d.tui_statusbar !== false,
streaming: d.streaming !== false
})
}