diff --git a/src/cliproxy/routing/pool-onboarding-hint.ts b/src/cliproxy/routing/pool-onboarding-hint.ts index 338c290c..1eb1ad0e 100644 --- a/src/cliproxy/routing/pool-onboarding-hint.ts +++ b/src/cliproxy/routing/pool-onboarding-hint.ts @@ -96,6 +96,11 @@ function isPoolEnabled(config?: UnifiedConfig): boolean { * * Uses ProfileRegistry so the count respects both legacy profiles.json and * unified config accounts - same source of truth as the rest of the codebase. + * + * type === 'account' implies Claude: per the profile-registry schema, every + * account profile is an isolated Claude instance (CLAUDE_CONFIG_DIR lane) with + * no CLI discriminator. Gemini/Codex multi-account lives in CLIProxy auth + * files, never in profiles.json, so this filter cannot over-count. */ export function countNativeClaudeProfiles(): number { try { diff --git a/src/cliproxy/routing/pool-opt-in-prompt.ts b/src/cliproxy/routing/pool-opt-in-prompt.ts index c5783860..c0f29f6e 100644 --- a/src/cliproxy/routing/pool-opt-in-prompt.ts +++ b/src/cliproxy/routing/pool-opt-in-prompt.ts @@ -149,13 +149,10 @@ export async function maybeOfferPoolRouting( // orphaning the user's config.json profiles. Skip entirely before any prompt // or dismissal persistence. Mirrors the guards in create-command.ts and // account-flow.ts and the hazard documented in pool-onboarding-hint.ts. + // Silent by design: legacy installs receive pool guidance exclusively from + // ccs doctor (pool-onboarding-hint site 1); printing here would nag on every + // account add with no dismissal available. if (!hasUnifiedConfig()) { - console.log( - info( - '[i] Multiple accounts detected, but pool routing needs the unified config. ' + - "Run 'ccs migrate' first, then 'ccs cliproxy pool --enable'." - ) - ); return { prompted: false, enabled: false, skipped: true, skipReason: 'legacy-config' }; }