mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-02 20:40:52 +08:00
Fixes issue where free tier users cannot access Gemini 3 preview models due to frontend/backend project ID mapping. ## Problem Google's Gemini API uses a frontend/backend project mapping system for free tier users: - Frontend projects (e.g., gen-lang-client-*) are user-visible - Backend projects (e.g., mystical-victor-*) host actual API access - Only backend projects have access to preview models (gemini-3-*) Previously, CLIProxyAPI ignored the backend project ID returned by Google's onboarding API and kept using the frontend ID, preventing access to preview models. ## Solution ### CLI (internal/cmd/login.go) - Detect free tier users (gen-lang-client-* projects or FREE/LEGACY tier) - Show interactive prompt allowing users to choose frontend or backend - Default to backend (recommended for preview model access) - Pro users: maintain original behavior (keep frontend ID) ### Web UI (internal/api/handlers/management/auth_files.go) - Detect free tier users using same logic - Automatically use backend project ID (recommended choice) - Pro users: maintain original behavior (keep frontend ID) ### Deduplication (internal/cmd/login.go) - Add deduplication when user selects ALL projects - Prevents redundant API calls when multiple frontend projects map to same backend - Skips duplicate project IDs in activation loop ## Impact - Free tier users: Can now access gemini-3-pro-preview and gemini-3-flash-preview models - Pro users: No change in behavior (backward compatible) - Only affects Gemini CLI OAuth (not antigravity or API key auth) ## Testing - Tested with free tier account selecting single project - Tested with free tier account selecting ALL projects - Verified deduplication prevents redundant onboarding calls - Confirmed pro user behavior unchanged