Sync upstream Gemini-CLI v0.8.2 (#838)

This commit is contained in:
tanzhenxin
2025-10-23 09:27:04 +08:00
committed by GitHub
parent 096fabb5d6
commit eb95c131be
644 changed files with 70389 additions and 23709 deletions

View File

@@ -0,0 +1,41 @@
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { useEffect } from 'react';
import process from 'node:process';
import { type HistoryItemWithoutId, MessageType } from '../types.js';
export const MEMORY_WARNING_THRESHOLD = 7 * 1024 * 1024 * 1024; // 7GB in bytes
export const MEMORY_CHECK_INTERVAL = 60 * 1000; // one minute
interface MemoryMonitorOptions {
addItem: (item: HistoryItemWithoutId, timestamp: number) => void;
}
export const useMemoryMonitor = ({ addItem }: MemoryMonitorOptions) => {
useEffect(() => {
const intervalId = setInterval(() => {
const usage = process.memoryUsage().rss;
if (usage > MEMORY_WARNING_THRESHOLD) {
addItem(
{
type: MessageType.WARNING,
text:
`High memory usage detected: ${(
usage /
(1024 * 1024 * 1024)
).toFixed(2)} GB. ` +
'If you experience a crash, please file a bug report by running `/bug`',
},
Date.now(),
);
clearInterval(intervalId);
}
}, MEMORY_CHECK_INTERVAL);
return () => clearInterval(intervalId);
}, [addItem]);
};