From e63207dfec592bce22cb9879012272e5163cfdf2 Mon Sep 17 00:00:00 2001 From: Keith Guerin Date: Sat, 28 Feb 2026 11:30:36 -0800 Subject: [PATCH] feat(cli): finalize footer layout refinements - Remove extra bottom padding in DefaultAppLayout - Update responsive wrapping logic for narrow terminals - Update research report with testing summary --- _footer-ui.md | 39 ++++++++++++++++--- .../src/ui/components/LoadingIndicator.tsx | 12 +++++- .../cli/src/ui/layouts/DefaultAppLayout.tsx | 3 -- 3 files changed, 43 insertions(+), 11 deletions(-) diff --git a/_footer-ui.md b/_footer-ui.md index 4ce260b586..f967e291ac 100644 --- a/_footer-ui.md +++ b/_footer-ui.md @@ -727,10 +727,37 @@ better discoverability of features: wit). This provides a more even distribution of content while Gemini is processing. -### 3. Concise System Copy +--- -- **Pause State:** Now displays as `⏸ Awaiting user approval...` (using the - unicode symbol) rather than `[Paused]`. -- **Shell Focus Hint:** The long interactive shell toast has been shortened to - `! Shell awaiting input (Tab to focus)` for better readability and less row - collision. +## 12. Testing Summary & Final Feedback + +The implementation has been verified through targeted unit tests and manual code +review against the updated specification. + +### Final Layout Behavior + +- **Setting:** Toggle via `/settings` -> `UI` -> `New Footer Layout`. +- **Divider Options:** + - `New Layout`: Divider above everything. + - `New Layout (Divider Down)`: Divider between status and indicators. +- **Input State:** Drafted text remains visible during tool approval; the input + box is greyed out and focus is removed. +- **Toasts:** Claims 100% width, left-aligned, prominent warning color. + Overrides ambient tips. +- **Hooks:** Uses `↪` (Before) / `↩` (After) icons. Text is white and italic. +- **Responsive:** + - Tips/Wit disappear on narrow windows or if they collide with long statuses. + - Status text wraps onto multiple lines only when the window is narrow. +- **Cleaning:** No more `💬` or `⏸️` emojis. No more empty line at the bottom of + the footer. + +### Identified Gaps / Future Triage + +- [ ] **Shortcut Hint Discoverability:** On very narrow windows, the + `? for shortcuts` hint is completely hidden. Users might forget the hotkey + if they rely on the visual hint. +- [ ] **Ambient Truncation:** Ambient tips are currently all-or-nothing (either + shown or hidden). Partial truncation might allow them to persist longer on + medium-width windows. +- [x] **Empty Footer Line:** Verified removed via `paddingBottom={0}` in both + `Footer.tsx` and `DefaultAppLayout.tsx`. diff --git a/packages/cli/src/ui/components/LoadingIndicator.tsx b/packages/cli/src/ui/components/LoadingIndicator.tsx index 27dbd7de87..94bdd23ec3 100644 --- a/packages/cli/src/ui/components/LoadingIndicator.tsx +++ b/packages/cli/src/ui/components/LoadingIndicator.tsx @@ -82,7 +82,11 @@ export const LoadingIndicator: React.FC = ({ /> {primaryText && ( - + {thinkingIndicator} {primaryText} @@ -116,7 +120,11 @@ export const LoadingIndicator: React.FC = ({ /> {primaryText && ( - + {thinkingIndicator} {primaryText} diff --git a/packages/cli/src/ui/layouts/DefaultAppLayout.tsx b/packages/cli/src/ui/layouts/DefaultAppLayout.tsx index c703f5102f..74c02c1d9a 100644 --- a/packages/cli/src/ui/layouts/DefaultAppLayout.tsx +++ b/packages/cli/src/ui/layouts/DefaultAppLayout.tsx @@ -31,9 +31,6 @@ export const DefaultAppLayout: React.FC = () => { flexDirection="column" width={uiState.terminalWidth} height={isAlternateBuffer ? terminalHeight : undefined} - paddingBottom={ - isAlternateBuffer && !uiState.copyModeEnabled ? 1 : undefined - } flexShrink={0} flexGrow={0} overflow="hidden"