diff --git a/packages/cli/src/ui/components/SessionSummaryDisplay.test.tsx b/packages/cli/src/ui/components/SessionSummaryDisplay.test.tsx
index ba008feade..a0ebcd2433 100644
--- a/packages/cli/src/ui/components/SessionSummaryDisplay.test.tsx
+++ b/packages/cli/src/ui/components/SessionSummaryDisplay.test.tsx
@@ -103,15 +103,15 @@ describe('', () => {
});
it('renders a standard UUID-formatted session ID in the footer', async () => {
- const uuidSessionId = 'a2b4-1b3d-e6g8-5f7h';
+ const uuidSessionId = '1234-abcd-5678-efgh';
const { lastFrame, unmount } = await renderWithMockedStats(
emptyMetrics,
uuidSessionId,
);
const output = lastFrame();
- // Standard UUID characters (alphanumeric and hyphens) should not be escaped.
- expect(output).toContain('gemini --resume a2b4-1b3d-e6g8-5f7h');
+ // Standard UUID characters should not be escaped/quoted by default for bash.
+ expect(output).toContain('gemini --resume 1234-abcd-5678-efgh');
unmount();
});
@@ -123,9 +123,8 @@ describe('', () => {
);
const output = lastFrame();
- // We expect every non-alphanumeric character to be backslash-escaped
- // to keep it a single argument without needing surrounding quotes.
- expect(output).toContain("gemini --resume \\'\\;\\ rm\\ -rf\\ \\/\\ \\#");
+ // escapeShellArg (using shell-quote for bash) will wrap special characters in double quotes.
+ expect(output).toContain('gemini --resume "\'; rm -rf / #"');
unmount();
});
});
diff --git a/packages/cli/src/ui/components/SessionSummaryDisplay.tsx b/packages/cli/src/ui/components/SessionSummaryDisplay.tsx
index 6436936b7c..84572d8f41 100644
--- a/packages/cli/src/ui/components/SessionSummaryDisplay.tsx
+++ b/packages/cli/src/ui/components/SessionSummaryDisplay.tsx
@@ -7,6 +7,7 @@
import type React from 'react';
import { StatsDisplay } from './StatsDisplay.js';
import { useSessionStats } from '../contexts/SessionContext.js';
+import { escapeShellArg, getShellConfiguration } from '@google/gemini-cli-core';
interface SessionSummaryDisplayProps {
duration: string;
@@ -16,7 +17,8 @@ export const SessionSummaryDisplay: React.FC = ({
duration,
}) => {
const { stats } = useSessionStats();
- const footer = `To resume this session, run:\n gemini --resume ${stats.sessionId.replace(/([^a-zA-Z0-9.\-_])/g, '\\$1')}`;
+ const { shell } = getShellConfiguration();
+ const footer = `To resume this session, run:\n gemini --resume ${escapeShellArg(stats.sessionId, shell)}`;
return (