* fix(cli): add "API Key" option to `qwen auth` interactive menu
The `qwen auth` CLI command only showed 2 options (Coding Plan, Qwen OAuth),
while the interactive `/auth` dialog showed 3 (Coding Plan, API Key, Qwen OAuth).
Users following the README instructions to configure OpenRouter/Fireworks via
`qwen auth` had no API Key entry point.
- Add "API Key" option to the `runInteractiveAuth` menu with two sub-paths:
"Alibaba Cloud ModelStudio Standard API Key" (guided flow) and
"Custom API Key" (prints docs link)
- Add `qwen auth api-key` yargs subcommand for direct access
- Extract `createMinimalArgv` / `loadAuthConfig` helpers to eliminate duplicated
CliArgs boilerplate
- Extract `promptForInput` to share raw-mode stdin logic between `promptForKey`
and `promptForModelIds`
- Improve `showAuthStatus` to distinguish Coding Plan, Standard API Key, and
generic OpenAI-compatible configurations
- Align menu labels and descriptions with the interactive `/auth` dialog
Closes#3413
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* docs: add `qwen auth api-key` to auth subcommand tables
Update documentation to reflect the new `qwen auth api-key` subcommand:
- auth.md: add to subcommands table, examples, and interactive menu display
- commands.md: add to CLI Auth Subcommands table
- quickstart.md: add to quick-reference command table
* fix(cli): restore incomplete Coding Plan warning in showAuthStatus
When selectedType is USE_OPENAI and Coding Plan metadata exists but
the API key is missing, show the incomplete warning instead of falling
through to the generic "OpenAI-compatible" status.
* refactor(cli): use endpoint constants in region selector and fix status formatting
- Use ALIBABA_STANDARD_API_KEY_ENDPOINTS constants for region
descriptions instead of hardcoded URLs
- Restore trailing newline in showAuthStatus "no auth" command list
for consistent spacing
* fix(cli): determine active auth method from model config in showAuthStatus
Previously showAuthStatus checked which env keys exist to determine
the auth method, causing false reports when users switch providers
(e.g., Coding Plan key still present after switching to Standard API Key).
Now it inspects the active model's provider config (baseUrl/envKey) to
determine the actual method, and validates the corresponding key exists:
- Coding Plan: check via isCodingPlanConfig + CODING_PLAN_ENV_KEY
- Standard API Key: check via DASHSCOPE_STANDARD_API_KEY_ENV_KEY + endpoints
- Generic OpenAI-compatible: check if the model's envKey is set
Also clear stale Coding Plan metadata (codingPlan.region/version and
process.env) when switching to Standard API Key.
* fix(cli): add legacy fallback in showAuthStatus and clear persisted Coding Plan env
- When no active model config is found (legacy setups without
modelProviders), fall back to env key / metadata checks for
Coding Plan status detection. Fixes CI test failures.
- When activeConfig exists but has no envKey, report incomplete
status instead of false positive "Configured".
- Clear persisted env.BAILIAN_CODING_PLAN_API_KEY from settings
when switching to Standard API Key, not just process.env.
* fix(cli): also remove Coding Plan model entries when switching to Standard API Key
When switching to Standard API Key, filter out existing Coding Plan
model entries from modelProviders.openai in addition to old Standard
entries. Previously these were preserved but their credential source
(BAILIAN_CODING_PLAN_API_KEY) was cleared, leaving broken model
entries visible in /model.
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* feat(auth): discontinue Qwen OAuth free tier (2026-04-15 cutoff)
The Qwen OAuth free tier has reached its end-of-life date. This updates
all client-side messaging, blocks new OAuth signups, and guides existing
users to alternative providers.
* fix(test): add getModelsConfig mock and update QWEN_OAUTH test expectations
- Add getModelsConfig() to Config mocks in gemini.test.tsx (3 failures)
- Update validateNonInterActiveAuth test to expect exit for QWEN_OAUTH
since validateAuthMethod now returns an error for discontinued free tier
* docs: update quota exceeded alternatives to OpenRouter and Fireworks
- Update README.md news section to recommend OpenRouter and Fireworks
as primary alternatives, with ModelStudio as third option
- Update retry.ts quota error message to include OpenRouter and
Fireworks URLs for users whose OAuth quota has been exhausted
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(test): update retry test assertions to match new quota error message
* docs: update free tier quota to 100 req/day with sunset notice and alternatives
Update all references to reflect the Qwen OAuth free tier policy change:
- 1,000 → 100 requests/day across code, i18n, and docs
- Add 2026-04-15 sunset date everywhere
- Guide users to OpenRouter, Fireworks AI, or ModelStudio in docs
- Remove CHANGELOG.md
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: tanzhenxin <tanzhenxing1987@gmail.com>
- Changed all instances of "Bailian Coding Plan" to "ModelStudio Coding Plan" in README.md and related documentation.
- Updated localization files for multiple languages to reflect the new branding.
- Ensured consistency across all references to the API key and subscription requirements for the ModelStudio Coding Plan.
- Replace nested API-KEY submenu with flat three-option layout
- Add descriptive labels for each authentication method:
- Qwen OAuth: Free, up to 1,000 requests/day
- Alibaba Cloud Coding Plan: Paid, multiple model providers
- API Key: Bring your own API key
- Simplify region selection for Coding Plan (China vs Global)
- Use DescriptiveRadioButtonSelect for better visual hierarchy
- Add itemGap prop to BaseSelectionList for spacing
- Update i18n strings in en.js, zh.js, and ru.js
- Simplify custom API key configuration info view
- Clean up unused region-specific strings
Closes#2016
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add backupSettingsFile() utility to create .orig backup before modifying settings
- Update success message to indicate backup was created
- Sync i18n translations for all supported languages
- Update documentation to reflect the change
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Added three new third-party models to the Bailian Coding Plan China region template
- All models configured with thinking enabled (enable_thinking: true)
- Updated README.md with example configurations for new models
- Updated documentation to list all available Coding Plan models
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add comprehensive quick setup section with 3-step guide for settings.json
- Include multiple practical examples (Coding Plan, multi-provider, thinking mode)
- Update README with settings.json quick reference table
- Enhance auth.md with one-file setup recommendation
- Clarify field descriptions and priority order for API key configuration
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>