diff --git a/packages/cli/src/ui/commands/chatCommand.ts b/packages/cli/src/ui/commands/chatCommand.ts index f2f04e8e..9d91892b 100644 --- a/packages/cli/src/ui/commands/chatCommand.ts +++ b/packages/cli/src/ui/commands/chatCommand.ts @@ -419,6 +419,7 @@ const summaryCommand: SlashCommand = { summary: { isPending: false, stage: 'completed', + filePath: '.qwen/PROJECT_SUMMARY.md', }, }; ui.addItem(completedSummaryItem, Date.now()); @@ -426,7 +427,7 @@ const summaryCommand: SlashCommand = { return { type: 'message', messageType: 'info', - content: `Project summary generated and saved to .qwen/PROJECT_SUMMARY.md`, + content: '', // Empty content since we show the message in UI component }; } catch (error) { // Clear pending item on error diff --git a/packages/cli/src/ui/components/messages/InfoMessage.tsx b/packages/cli/src/ui/components/messages/InfoMessage.tsx index 18175875..8262d417 100644 --- a/packages/cli/src/ui/components/messages/InfoMessage.tsx +++ b/packages/cli/src/ui/components/messages/InfoMessage.tsx @@ -14,6 +14,11 @@ interface InfoMessageProps { } export const InfoMessage: React.FC = ({ text }) => { + // Don't render anything if text is empty + if (!text || text.trim() === '') { + return null; + } + const prefix = 'ℹ '; const prefixWidth = prefix.length; diff --git a/packages/cli/src/ui/components/messages/SummaryMessage.tsx b/packages/cli/src/ui/components/messages/SummaryMessage.tsx index f8377bdb..03dc0d7a 100644 --- a/packages/cli/src/ui/components/messages/SummaryMessage.tsx +++ b/packages/cli/src/ui/components/messages/SummaryMessage.tsx @@ -1,6 +1,6 @@ /** * @license - * Copyright 2025 Google LLC + * Copyright 2025 Qwen * SPDX-License-Identifier: Apache-2.0 */ @@ -30,7 +30,11 @@ export const SummaryMessage: React.FC = ({ summary }) => { return 'Processing summary...'; } } - return 'Project summary generated and saved successfully!'; + const baseMessage = 'Project summary generated and saved successfully!'; + if (summary.filePath) { + return `${baseMessage} Saved to: ${summary.filePath}`; + } + return baseMessage; }; const getIcon = () => { diff --git a/packages/cli/src/ui/types.ts b/packages/cli/src/ui/types.ts index 795bc7ae..ae09087a 100644 --- a/packages/cli/src/ui/types.ts +++ b/packages/cli/src/ui/types.ts @@ -61,6 +61,7 @@ export interface CompressionProps { export interface SummaryProps { isPending: boolean; stage: 'generating' | 'saving' | 'completed'; + filePath?: string; // Path to the saved summary file } export interface HistoryItemBase {