Add independent controls for TUI visual effects (#46832)

## What changed

Replace `tui.whimsy` with `[tui.effects]` preferences for `starfield`, `shimmer`, `welcome`, `effort`, `progress`, and `title`. Each defaults to `true` and remains subordinate to the `tui.animations` master switch.

Wire the preferences into composer effects, welcome artwork, status and loading text, progress indicators, and terminal-title animations. For example, disable shimmering text while keeping progress animations:

```toml
[tui.effects]
shimmer = false
```

Keep retired `tui.whimsy` entries loadable but ignore their value. Update the configuration schema to expose the new preferences.

## Testing

Add and extend coverage for independent shimmer and progress effects, master-switch precedence, welcome and starfield controls, terminal-title blinking, and strict configuration loading with the retired setting.

GitOrigin-RevId: 28b37ba52872133b8954543cabe9ff424147f1c5
This commit is contained in:
Eric Traut
2026-09-20 16:16:46 +00:00
committed by copyberry
parent 5c5308fc9a
commit bba48e5ce8
41 changed files with 341 additions and 71 deletions
+1 -1
View File
@@ -1625,7 +1625,7 @@ impl ChatWidget {
self.flush_answer_stream_with_separator();
self.flush_active_cell();
self.transcript.active_cell = Some(Box::new(history_cell::new_mcp_inventory_loading(
self.local_settings.tui.animations,
self.local_settings.tui.animations && self.local_settings.tui.effects.progress,
)));
self.bump_active_cell_revision();
self.request_redraw();