diff --git a/src/commands/setup-command.ts b/src/commands/setup-command.ts index 5b7acf5a..2f826fba 100644 --- a/src/commands/setup-command.ts +++ b/src/commands/setup-command.ts @@ -132,6 +132,11 @@ export function isFirstTimeInstall(): boolean { return false; } + // If setup wizard was completed, NOT first-time install + if (loaded.setup_completed) { + return false; + } + // Check for any meaningful configuration in unified config const hasProfiles = Object.keys(loaded.profiles || {}).length > 0; const hasAccounts = Object.keys(loaded.accounts || {}).length > 0; @@ -370,6 +375,7 @@ async function runSetupWizard(force: boolean = false): Promise { } // Save config + config.setup_completed = true; saveUnifiedConfig(config); // Final summary diff --git a/src/config/unified-config-types.ts b/src/config/unified-config-types.ts index 2315f67d..f2d3618e 100644 --- a/src/config/unified-config-types.ts +++ b/src/config/unified-config-types.ts @@ -521,6 +521,8 @@ export const DEFAULT_DASHBOARD_AUTH_CONFIG: DashboardAuthConfig = { export interface UnifiedConfig { /** Config version (7 for quota management) */ version: number; + /** Flag indicating setup wizard has been completed */ + setup_completed?: boolean; /** Default profile name to use when none specified */ default?: string; /** Account-based profiles (isolated Claude instances) */