summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/App.tsx
diff options
context:
space:
mode:
authorSeth Troisi <[email protected]>2025-05-21 07:36:22 +0000
committerGitHub <[email protected]>2025-05-21 00:36:22 -0700
commitcd13c5881b7cb60c0fca9e674c0344815ca0070d (patch)
tree661f72841f8005f07b510be5d0d987224ade31cd /packages/cli/src/ui/App.tsx
parentbda472f1476476a1bcd4a2b7050ab2823a6d3bb5 (diff)
Add Logger for command history (#435)
Diffstat (limited to 'packages/cli/src/ui/App.tsx')
-rw-r--r--packages/cli/src/ui/App.tsx43
1 files changed, 27 insertions, 16 deletions
diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx
index 7f16f4e5..88b95481 100644
--- a/packages/cli/src/ui/App.tsx
+++ b/packages/cli/src/ui/App.tsx
@@ -20,7 +20,6 @@ import { ShellModeIndicator } from './components/ShellModeIndicator.js';
import { InputPrompt } from './components/InputPrompt.js';
import { Footer } from './components/Footer.js';
import { ThemeDialog } from './components/ThemeDialog.js';
-import { type Config } from '@gemini-code/server';
import { Colors } from './colors.js';
import { Help } from './components/Help.js';
import { loadHierarchicalGeminiMemory } from '../config/config.js';
@@ -29,9 +28,10 @@ import { Tips } from './components/Tips.js';
import { ConsoleOutput } from './components/ConsolePatcher.js';
import { HistoryItemDisplay } from './components/HistoryItemDisplay.js';
import { useHistory } from './hooks/useHistoryManager.js';
-import process from 'node:process'; // For performMemoryRefresh
-import { MessageType } from './types.js'; // For performMemoryRefresh
-import { getErrorMessage } from '@gemini-code/server'; // For performMemoryRefresh
+import { useLogger } from './hooks/useLogger.js';
+import process from 'node:process';
+import { MessageType } from './types.js';
+import { getErrorMessage, type Config } from '@gemini-code/server';
interface AppProps {
config: Config;
@@ -157,18 +157,29 @@ export const App = ({
[submitQuery],
);
- const userMessages = useMemo(
- () =>
- history
- .filter(
- (item): item is HistoryItem & { type: 'user'; text: string } =>
- item.type === 'user' &&
- typeof item.text === 'string' &&
- item.text.trim() !== '',
- )
- .map((item) => item.text),
- [history],
- );
+ const logger = useLogger();
+ const [userMessages, setUserMessages] = useState<string[]>([]);
+
+ useEffect(() => {
+ const fetchUserMessages = async () => {
+ const pastMessages = (await logger?.getPreviousUserMessages()) || [];
+ if (pastMessages.length > 0) {
+ setUserMessages(pastMessages.reverse());
+ } else {
+ setUserMessages(
+ history
+ .filter(
+ (item): item is HistoryItem & { type: 'user'; text: string } =>
+ item.type === 'user' &&
+ typeof item.text === 'string' &&
+ item.text.trim() !== '',
+ )
+ .map((item) => item.text),
+ );
+ }
+ };
+ fetchUserMessages();
+ }, [history, logger]);
const isInputActive = streamingState === StreamingState.Idle && !initError;