diff --git a/packages/vscode-ide-companion/src/cli/cliVersionChecker.ts b/packages/vscode-ide-companion/src/cli/cliVersionChecker.ts index 3a9db333..bb760d62 100644 --- a/packages/vscode-ide-companion/src/cli/cliVersionChecker.ts +++ b/packages/vscode-ide-companion/src/cli/cliVersionChecker.ts @@ -10,6 +10,9 @@ import { CliVersionManager } from './cliVersionManager.js'; import { MIN_CLI_VERSION_FOR_SESSION_METHODS } from './cliVersionManager.js'; import type { CliVersionInfo } from './cliVersionManager.js'; +// Track which versions have already been warned about to avoid repetitive warnings +const warnedVersions = new Set(); + /** * Check CLI version and show warning if below minimum requirement * @@ -23,9 +26,14 @@ export async function checkCliVersionAndWarn(): Promise { cliContextManager.setCurrentVersionInfo(versionInfo); if (!versionInfo.isSupported) { - vscode.window.showWarningMessage( - `Qwen Code CLI version ${versionInfo.version} is below the minimum required version. Some features may not work properly. Please upgrade to version ${MIN_CLI_VERSION_FOR_SESSION_METHODS} or later.`, - ); + // Only show warning if we haven't already warned about this specific version + const versionKey = versionInfo.version || 'unknown'; + if (!warnedVersions.has(versionKey)) { + vscode.window.showWarningMessage( + `Qwen Code CLI version ${versionInfo.version} is below the minimum required version. Some features may not work properly. Please upgrade to version ${MIN_CLI_VERSION_FOR_SESSION_METHODS} or later.`, + ); + warnedVersions.add(versionKey); + } } } catch (error) { console.error('[CliVersionChecker] Failed to check CLI version:', error); diff --git a/packages/vscode-ide-companion/src/webview/components/layout/EmptyState.tsx b/packages/vscode-ide-companion/src/webview/components/layout/EmptyState.tsx index f1b15c4c..4c4a486e 100644 --- a/packages/vscode-ide-companion/src/webview/components/layout/EmptyState.tsx +++ b/packages/vscode-ide-companion/src/webview/components/layout/EmptyState.tsx @@ -27,6 +27,16 @@ export const EmptyState: React.FC = ({ return (
+ {/* Loading overlay */} + {loadingMessage && ( +
+
+
+

{loadingMessage}

+
+
+ )} +
{/* Qwen Logo */}
@@ -39,12 +49,6 @@ export const EmptyState: React.FC = ({
{description}
- {loadingMessage && ( -
- - {loadingMessage} -
- )}