From 9fda3431b8e0dc8dd6b834599a1a5eb5963095dd Mon Sep 17 00:00:00 2001 From: Keith Guerin Date: Fri, 27 Feb 2026 14:24:52 -0800 Subject: [PATCH] fix(cli): resolve rebase conflicts, fix TypeScript errors, and update snapshots --- .../ui/components/HistoryItemDisplay.test.tsx | 18 ++++++------ .../src/ui/components/HistoryItemDisplay.tsx | 5 +--- .../__snapshots__/Composer.test.tsx.snap | 2 +- .../HistoryItemDisplay.test.tsx.snap | 4 +-- .../ThinkingMessage.test.tsx.snap | 28 ++----------------- .../cli/src/ui/hooks/usePhraseCycler.test.tsx | 6 ++-- 6 files changed, 21 insertions(+), 42 deletions(-) diff --git a/packages/cli/src/ui/components/HistoryItemDisplay.test.tsx b/packages/cli/src/ui/components/HistoryItemDisplay.test.tsx index e17afbf0d0..33b2caee6c 100644 --- a/packages/cli/src/ui/components/HistoryItemDisplay.test.tsx +++ b/packages/cli/src/ui/components/HistoryItemDisplay.test.tsx @@ -290,23 +290,25 @@ describe('', () => { unmount(); }); - it('renders "Thinking..." header when isFirstThinking is true', () => { + it('renders "Thinking..." header when isFirstThinking is true', async () => { const item: HistoryItem = { ...baseItem, type: 'thinking', thought: { subject: 'Thinking', description: 'test' }, }; - const { lastFrame } = renderWithProviders( - , + const { lastFrame, waitUntilReady, unmount } = renderWithProviders( + , + { + settings: createMockSettings({ + merged: { ui: { inlineThinkingMode: 'full' } }, + }), + }, ); + await waitUntilReady(); expect(lastFrame()).toContain(' Thinking...'); expect(lastFrame()).toContain('Thinking'); + unmount(); }); it('does not render thinking item when disabled', async () => { diff --git a/packages/cli/src/ui/components/HistoryItemDisplay.tsx b/packages/cli/src/ui/components/HistoryItemDisplay.tsx index 8567554e26..8cd49c4b3e 100644 --- a/packages/cli/src/ui/components/HistoryItemDisplay.tsx +++ b/packages/cli/src/ui/components/HistoryItemDisplay.tsx @@ -36,10 +36,7 @@ import { HooksList } from './views/HooksList.js'; import { ModelMessage } from './messages/ModelMessage.js'; import { ThinkingMessage } from './messages/ThinkingMessage.js'; import { HintMessage } from './messages/HintMessage.js'; -import { - getInlineThinkingMode, - type InlineThinkingMode, -} from '../utils/inlineThinkingMode.js'; +import { getInlineThinkingMode } from '../utils/inlineThinkingMode.js'; import { useSettings } from '../contexts/SettingsContext.js'; interface HistoryItemDisplayProps { diff --git a/packages/cli/src/ui/components/__snapshots__/Composer.test.tsx.snap b/packages/cli/src/ui/components/__snapshots__/Composer.test.tsx.snap index 2ba370a000..452663d719 100644 --- a/packages/cli/src/ui/components/__snapshots__/Composer.test.tsx.snap +++ b/packages/cli/src/ui/components/__snapshots__/Composer.test.tsx.snap @@ -35,7 +35,7 @@ Footer `; exports[`Composer > Snapshots > matches snapshot while streaming 1`] = ` -" LoadingIndicator: Thinking ShortcutsHint +" LoadingIndicator: Thinking ──────────────────────────────────────────────────────────────────────────────────────────────────── ApprovalModeIndicator InputPrompt: Type your message or @path/to/file diff --git a/packages/cli/src/ui/components/__snapshots__/HistoryItemDisplay.test.tsx.snap b/packages/cli/src/ui/components/__snapshots__/HistoryItemDisplay.test.tsx.snap index 134741facf..7881f1e30c 100644 --- a/packages/cli/src/ui/components/__snapshots__/HistoryItemDisplay.test.tsx.snap +++ b/packages/cli/src/ui/components/__snapshots__/HistoryItemDisplay.test.tsx.snap @@ -112,7 +112,7 @@ exports[` > gemini items (alternateBuffer=false) > should exports[` > gemini items (alternateBuffer=false) > should render a truncated gemini item 1`] = ` "✦ Example code block: - ... first 42 lines hidden ... + ... 42 hidden (Ctrl+O) ... 43 Line 43 44 Line 44 45 Line 45 @@ -126,7 +126,7 @@ exports[` > gemini items (alternateBuffer=false) > should exports[` > gemini items (alternateBuffer=false) > should render a truncated gemini_content item 1`] = ` " Example code block: - ... first 42 lines hidden ... + ... 42 hidden (Ctrl+O) ... 43 Line 43 44 Line 44 45 Line 45 diff --git a/packages/cli/src/ui/components/messages/__snapshots__/ThinkingMessage.test.tsx.snap b/packages/cli/src/ui/components/messages/__snapshots__/ThinkingMessage.test.tsx.snap index 365f655d7d..a3415109ba 100644 --- a/packages/cli/src/ui/components/messages/__snapshots__/ThinkingMessage.test.tsx.snap +++ b/packages/cli/src/ui/components/messages/__snapshots__/ThinkingMessage.test.tsx.snap @@ -1,30 +1,8 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`ThinkingMessage > indents summary line correctly 1`] = ` -" Summary line - │ First body line -" -`; - exports[`ThinkingMessage > normalizes escaped newline tokens 1`] = ` -" Matching the Blocks - │ Some more text -" -`; - -exports[`ThinkingMessage > renders full mode with left border and full text 1`] = ` -" Planning - │ I am planning the solution. -" -`; - -exports[`ThinkingMessage > renders subject line 1`] = ` -" Planning - │ test -" -`; - -exports[`ThinkingMessage > uses description when subject is empty 1`] = ` -" Processing details +" │ + │ Matching the Blocks + │ Some more text " `; diff --git a/packages/cli/src/ui/hooks/usePhraseCycler.test.tsx b/packages/cli/src/ui/hooks/usePhraseCycler.test.tsx index c79d82c463..19dc3d9498 100644 --- a/packages/cli/src/ui/hooks/usePhraseCycler.test.tsx +++ b/packages/cli/src/ui/hooks/usePhraseCycler.test.tsx @@ -144,8 +144,10 @@ describe('usePhraseCycler', () => { await act(async () => { await vi.advanceTimersByTimeAsync(0); }); - expect(lastFrame()?.startsWith('Tip: ')).toBe(true); - expect(INFORMATIVE_TIPS).toContain(lastFrame()!.replace('Tip: ', '')); + expect(lastFrame().trim()?.startsWith('Tip: ')).toBe(true); + expect(INFORMATIVE_TIPS).toContain( + lastFrame().trim().replace('Tip: ', ''), + ); // After the first interval, it should be a witty phrase await act(async () => {