Skip to content

Commit d9e7933

Browse files
fix(patch): cherry-pick ee6556c to release/v0.21.0-preview.1-pr-14691 to patch version v0.21.0-preview.1 and create version 0.21.0-preview.2 (#14908)
Co-authored-by: Jack Wotherspoon <[email protected]>
1 parent 68b7714 commit d9e7933

File tree

6 files changed

+305
-344
lines changed

6 files changed

+305
-344
lines changed

packages/cli/src/gemini.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,20 @@ export async function main() {
498498

499499
// Handle --list-sessions flag
500500
if (config.getListSessions()) {
501+
// Attempt auth for summary generation (gracefully skips if not configured)
502+
const authType = settings.merged.security?.auth?.selectedType;
503+
if (authType) {
504+
try {
505+
await config.refreshAuth(authType);
506+
} catch (e) {
507+
// Auth failed - continue without summary generation capability
508+
debugLogger.debug(
509+
'Auth failed for --list-sessions, summaries may not be generated:',
510+
e,
511+
);
512+
}
513+
}
514+
501515
await listSessions(config);
502516
await runExitCleanup();
503517
process.exit(ExitCodes.SUCCESS);

packages/cli/src/ui/AppContainer.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ import {
6363
SessionEndReason,
6464
fireSessionStartHook,
6565
fireSessionEndHook,
66-
generateAndSaveSummary,
66+
generateSummary,
6767
} from '@google/gemini-cli-core';
6868
import { validateAuthMethod } from '../config/auth.js';
6969
import process from 'node:process';
@@ -312,9 +312,13 @@ export const AppContainer = (props: AppContainerProps) => {
312312
: SessionStartSource.Startup;
313313
await fireSessionStartHook(hookMessageBus, sessionStartSource);
314314
}
315+
316+
// Fire-and-forget: generate summary for previous session in background
317+
generateSummary(config).catch((e) => {
318+
debugLogger.warn('Background summary generation failed:', e);
319+
});
315320
})();
316321
registerCleanup(async () => {
317-
await generateAndSaveSummary(config);
318322
// Turn off mouse scroll.
319323
disableMouseEvents();
320324
const ideClient = await IdeClient.getInstance();

packages/cli/src/utils/sessions.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ vi.mock('@google/gemini-cli-core', async () => {
2121
return {
2222
...actual,
2323
ChatRecordingService: vi.fn(),
24+
generateSummary: vi.fn().mockResolvedValue(undefined),
2425
};
2526
});
2627

packages/cli/src/utils/sessions.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,21 @@
44
* SPDX-License-Identifier: Apache-2.0
55
*/
66

7-
import { ChatRecordingService, type Config } from '@google/gemini-cli-core';
7+
import {
8+
ChatRecordingService,
9+
generateSummary,
10+
type Config,
11+
} from '@google/gemini-cli-core';
812
import {
913
formatRelativeTime,
1014
SessionSelector,
1115
type SessionInfo,
1216
} from './sessionUtils.js';
1317

1418
export async function listSessions(config: Config): Promise<void> {
19+
// Generate summary for most recent session if needed
20+
await generateSummary(config);
21+
1522
const sessionSelector = new SessionSelector(config);
1623
const sessions = await sessionSelector.listSessions();
1724

0 commit comments

Comments
 (0)