feat(ui): implement refreshed UX for Composer layout

- Promotes refreshed multi-row status area and footer as the default experience.
- Stabilizes Composer row heights to prevent layout 'jitter' during typing and model turns.
- Unifies active hook status and model loading indicators into a single, stable Row 1.
- Refactors settings to use backward-compatible 'Hide' booleans (ui.hideStatusTips, ui.hideStatusWit).
- Removes vestigial context usage bleed-through logic in minimal mode to align with global UX direction.
- Relocates toast notifications to the top status row for improved visibility.
- Updates all CLI UI snapshots and architectural tests to reflect the stabilized layout.
This commit is contained in:
Keith Guerin
2026-03-17 23:03:55 -07:00
parent 4ecb4bb24b
commit d726c194ab
48 changed files with 1716 additions and 1134 deletions

View File

@@ -242,7 +242,12 @@ their corresponding top-level category object in your `settings.json` file.
- **Requires restart:** Yes
- **`ui.hideTips`** (boolean):
- **Description:** Hide helpful tips in the UI
- **Description:** Hide the introductory tips shown at the top of the screen.
- **Default:** `false`
- **`ui.hideIntroTips`** (boolean):
- **Description:** @deprecated Use ui.hideTips instead. Hide the intro tips in
the header.
- **Default:** `false`
- **`ui.escapePastedAtSymbols`** (boolean):
@@ -251,7 +256,8 @@ their corresponding top-level category object in your `settings.json` file.
- **Default:** `false`
- **`ui.showShortcutsHint`** (boolean):
- **Description:** Show the "? for shortcuts" hint above the input.
- **Description:** Show basic shortcut help ('?') when the status line is
idle.
- **Default:** `true`
- **`ui.hideBanner`** (boolean):
@@ -334,9 +340,26 @@ their corresponding top-level category object in your `settings.json` file.
- **Description:** Show the spinner during operations.
- **Default:** `true`
- **`ui.hideStatusTips`** (boolean):
- **Description:** Hide helpful tips in the footer while the model is working.
- **Default:** `false`
- **`ui.hideStatusWit`** (boolean):
- **Description:** Hide witty loading phrases in the footer while the model is
working.
- **Default:** `true`
- **`ui.statusHints`** (enum):
- **Description:** @deprecated Use ui.hideStatusTips and ui.hideStatusWit
instead. What to show in the status line: tips, witty comments, both, or off
(fallback to shortcuts help).
- **Default:** `"tips"`
- **Values:** `"tips"`, `"witty"`, `"all"`, `"off"`
- **`ui.loadingPhrases`** (enum):
- **Description:** What to show while the model is working: tips, witty
comments, both, or nothing.
- **Description:** @deprecated Use ui.hideStatusTips and ui.hideStatusWit
instead. What to show in the status line: tips, witty comments, both, or off
(fallback to shortcuts help).
- **Default:** `"tips"`
- **Values:** `"tips"`, `"witty"`, `"all"`, `"off"`