From e0f4f428fc6bef4f81db379ce1e0368004079c76 Mon Sep 17 00:00:00 2001 From: Louis Jimenez Date: Wed, 11 Jun 2025 15:33:09 -0400 Subject: Restore Checkpoint Feature (#934) --- packages/cli/src/ui/App.test.tsx | 3 + packages/cli/src/ui/App.tsx | 6 +- .../cli/src/ui/hooks/slashCommandProcessor.test.ts | 50 ++++-- packages/cli/src/ui/hooks/slashCommandProcessor.ts | 185 ++++++++++++++++++--- packages/cli/src/ui/hooks/useGeminiStream.test.tsx | 35 ++-- packages/cli/src/ui/hooks/useGeminiStream.ts | 119 ++++++++++++- packages/cli/src/ui/hooks/useHistoryManager.ts | 6 + packages/cli/src/ui/hooks/useLogger.ts | 3 +- 8 files changed, 345 insertions(+), 62 deletions(-) (limited to 'packages/cli/src/ui') diff --git a/packages/cli/src/ui/App.test.tsx b/packages/cli/src/ui/App.test.tsx index fefb2fe2..bfd2efaf 100644 --- a/packages/cli/src/ui/App.test.tsx +++ b/packages/cli/src/ui/App.test.tsx @@ -63,6 +63,7 @@ interface MockServerConfig { getVertexAI: Mock<() => boolean | undefined>; getShowMemoryUsage: Mock<() => boolean>; getAccessibility: Mock<() => AccessibilitySettings>; + getProjectRoot: Mock<() => string | undefined>; } // Mock @gemini-cli/core and its Config class @@ -120,7 +121,9 @@ vi.mock('@gemini-cli/core', async (importOriginal) => { getVertexAI: vi.fn(() => opts.vertexai), getShowMemoryUsage: vi.fn(() => opts.showMemoryUsage ?? false), getAccessibility: vi.fn(() => opts.accessibility ?? {}), + getProjectRoot: vi.fn(() => opts.projectRoot), getGeminiClient: vi.fn(() => ({})), + getCheckpointEnabled: vi.fn(() => opts.checkpoint ?? true), }; }); return { diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index bf8c2abb..cdec11e2 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -66,7 +66,7 @@ export const AppWrapper = (props: AppProps) => ( ); const App = ({ config, settings, startupWarnings = [] }: AppProps) => { - const { history, addItem, clearItems } = useHistory(); + const { history, addItem, clearItems, loadHistory } = useHistory(); const { consoleMessages, handleNewMessage, @@ -151,8 +151,10 @@ const App = ({ config, settings, startupWarnings = [] }: AppProps) => { const { handleSlashCommand, slashCommands } = useSlashCommandProcessor( config, + history, addItem, clearItems, + loadHistory, refreshStatic, setShowHelp, setDebugMessage, @@ -217,6 +219,7 @@ const App = ({ config, settings, startupWarnings = [] }: AppProps) => { const { streamingState, submitQuery, initError, pendingHistoryItems } = useGeminiStream( config.getGeminiClient(), + history, addItem, setShowHelp, config, @@ -512,7 +515,6 @@ const App = ({ config, settings, startupWarnings = [] }: AppProps) => { )} )} -