docs: update quota exceeded alternatives to OpenRouter and Fireworks (#3217)

* 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>
This commit is contained in:
pomelo 2026-04-13 21:45:38 +08:00 committed by GitHub
parent 4daf7f9353
commit e90abf4c35
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 65 additions and 174 deletions

View file

@ -182,7 +182,7 @@ Full reference: https://raw.githubusercontent.com/QwenLM/qwen-code/refs/heads/ma
### Authentication
Supports Qwen OAuth (browser-based, 1000 free requests/day) and OpenAI-compatible API keys.
Supports Qwen OAuth (browser-based, 100 free requests/day, ending 2026-04-15 — switch to OpenRouter, Fireworks AI, or Alibaba Cloud ModelStudio after that) and OpenAI-compatible API keys.
Full reference: https://raw.githubusercontent.com/QwenLM/qwen-code/refs/heads/main/docs/users/configuration/auth.md

View file

@ -1,121 +0,0 @@
# Changelog
## 0.0.14
- Added plan mode support for task planning
- Fixed unreliable editCorrector that injects extra escape characters
- Fixed task tool dynamic updates
- Added Qwen3-VL-Plus token limits (256K input, 32K output) and highres support
- Enhanced dashScope cache control
## 0.0.13
- Added YOLO mode support for automatic vision model switching with CLI arguments and environment variables.
- Fixed ripgrep lazy loading to resolve VS Code IDE companion startup issues.
- Fixed authentication hang when selecting Qwen OAuth.
- Added OpenAI and Qwen OAuth authentication support to Zed ACP integration.
- Fixed output token limit for Qwen models.
- Fixed Markdown list display issues on Windows.
- Enhanced vision model instructions and documentation.
- Improved authentication method compatibility across different IDE integrations.
## 0.0.12
- Added vision model support for Qwen-OAuth authentication.
- Synced upstream `gemini-cli` to v0.3.4 with numerous improvements and bug fixes.
- Enhanced subagent functionality with system reminders and improved user experience.
- Added tool call type coercion for better compatibility.
- Fixed arrow key navigation issues on Windows.
- Fixed missing tool call chunks for OpenAI logging.
- Fixed system prompt issues to avoid malformed tool calls.
- Fixed terminal flicker when subagent is executing.
- Fixed duplicate subagents configuration when running in home directory.
- Fixed Esc key unable to cancel subagent dialog.
- Added confirmation prompt for `/init` command when context file exists.
- Added `skipLoopDetection` configuration option.
- Fixed `is_background` parameter reset issues.
- Enhanced Windows compatibility with multi-line paste handling.
- Improved subagent documentation and branding consistency.
- Fixed various linting errors and improved code quality.
- Miscellaneous improvements and bug fixes.
## 0.0.11
- Added subagents feature with file-based configuration system for specialized AI assistants.
- Added Welcome Back Dialog with project summary and enhanced quit options.
- Fixed performance issues with SharedTokenManager causing 20-minute delays.
- Fixed tool calls UI issues and improved user experience.
- Fixed credential clearing when switching authentication types.
- Enhanced subagent capabilities to use tools requiring user confirmation.
- Improved ReadManyFiles tool with shared line limits across files.
- Re-implemented tokenLimits class for better compatibility with Qwen and other model types.
- Fixed chunk validation to avoid unnecessary retries.
- Resolved EditTool naming inconsistency causing agent confusion loops.
- Fixed unexpected re-authentication when auth-token is expired.
- Added Terminal Bench integration tests.
- Updated multilingual documentation links in README.
- Fixed various Windows compatibility issues.
- Miscellaneous improvements and bug fixes.
## 0.0.10
- Synced upstream `gemini-cli` to v0.2.1.
- Add todo write tool for task management and progress tracking.
## 0.0.9
- Synced upstream `gemini-cli` to v0.1.21.
- Fixed token synchronization among multiple Qwen sessions.
- Improved tool execution with early stop on invalid tool calls.
- Added explicit `is_background` parameter for shell tool.
- Enhanced memory management with sub-commands to switch between project and global memory operations.
- Renamed `GEMINI_DIR` to `QWEN_DIR` for better branding consistency.
- Added support for Qwen Markdown selection.
- Fixed parallel tool usage and improved tool reliability.
- Upgraded integration tests to use Vitest framework.
- Enhanced VS Code IDE integration with launch configurations.
- Added terminal setup command for Shift+Enter and Ctrl+Enter support.
- Fixed GitHub Workflows configuration issues.
- Improved settings directory and command descriptions.
- Fixed locale handling in yargs configuration.
- Added support for `trustedFolders.json` configuration file.
- Enhanced cross-platform compatibility for sandbox build scripts.
- Improved error handling and fixed ambiguous literals.
- Updated documentation links and added IDE integration documentation.
- Miscellaneous improvements and bug fixes.
## 0.0.8
- Synced upstream `gemini-cli` to v0.1.19.
- Updated documentation branding from **Gemini CLI** to **Qwen Code**.
- Added multilingual docs links in `README.md`.
- Added deterministic cache control for the DashScope provider.
- Added option to choose a project-level or global save location.
- Limited `grep` results to 25 items by default.
- `grep` now respects `.qwenignore`.
- Miscellaneous improvements and bug fixes.
## 0.0.7
- Synced upstream `gemini-cli` to v0.1.18.
- Fixed MCP tools.
- Fixed Web Fetch tool.
- Fixed Web Search tool by switching from Google/Gemini to the Tavily API.
- Made tool calls tolerant of invalid-JSON parameters occasionally returned by the LLM.
- Prevented concurrent query submissions in rare cases.
- Corrected Qwen logger exit-handler setup.
- Separated static QR code and dynamic spinner components.
## 0.0.6
- Added usage statistics logging for Qwen integration.
- Made `/init` respect the configured context filename and aligned docs with `QWEN.md`.
- Fixed `EPERM` error when running `qwen --sandbox` on macOS.
- Fixed terminal flicker while waiting for login.
- Fixed `glm-4.5` model request error.
## 0.0.5
- Added Qwen OAuth login and up to 1,000 free requests per day.
- Synced upstream `gemini-cli` to v0.1.17.
- Added the `systemPromptMappings` configuration option.

View file

@ -20,7 +20,7 @@
## 🎉 News
- **2026-04-13**: Qwen OAuth free tier policy update: daily quota adjusted to 100 requests/day (from 1,000). The free tier will be discontinued on 2026-04-15. Please upgrade to [Alibaba Cloud Coding Plan](https://www.alibabacloud.com/help/en/model-studio/coding-plan) for continued service with higher quotas and more models.
- **2026-04-13**: Qwen OAuth free tier policy update: daily quota adjusted to 100 requests/day (from 1,000). The free tier will be discontinued on 2026-04-15. Consider using [OpenRouter](https://openrouter.ai), [Fireworks AI](https://app.fireworks.ai), or [Alibaba Cloud ModelStudio](https://modelstudio.console.alibabacloud.com/ap-southeast-1?tab=doc#/doc/?type=model&url=2840914_2&modelId=qwen3.6-plus) as alternatives.
- **2026-04-02**: Qwen3.6-Plus is now live! Sign in via Qwen OAuth to use it directly, or get an API key from [Alibaba Cloud ModelStudio](https://modelstudio.console.alibabacloud.com/ap-southeast-1?tab=doc#/doc/?type=model&url=2840914_2&modelId=qwen3.6-plus) to access it through the OpenAI-compatible API.
@ -30,7 +30,7 @@
Qwen Code is an open-source AI agent for the terminal, optimized for Qwen series models. It helps you understand large codebases, automate tedious work, and ship faster.
- **Multi-protocol, OAuth free tier**: use OpenAI / Anthropic / Gemini-compatible APIs, or sign in with Qwen OAuth for 1,000 free requests/day.
- **Multi-protocol, OAuth free tier**: use OpenAI / Anthropic / Gemini-compatible APIs, or sign in with Qwen OAuth for 100 free requests/day (free tier ending 2026-04-15). After that, switch to [OpenRouter](https://openrouter.ai), [Fireworks AI](https://app.fireworks.ai), or [Alibaba Cloud ModelStudio](https://modelstudio.console.alibabacloud.com/ap-southeast-1?tab=doc#/doc/?type=model&url=2840914_2&modelId=qwen3.6-plus).
- **Open-source, co-evolving**: both the framework and the Qwen3-Coder model are open-source—and they ship and evolve together.
- **Agentic workflow, feature-rich**: rich built-in tools (Skills, SubAgents) for a full agentic workflow and a Claude Code-like experience.
- **Terminal-first, IDE-friendly**: built for developers who live in the command line, with optional integration for VS Code, Zed, and JetBrains IDEs.

View file

@ -8,7 +8,7 @@ Use `web_search` to perform a web search and get information from the internet.
### Supported Providers
1. **DashScope** (Official, Free) - Automatically available for Qwen OAuth users (200 requests/minute, 1000 requests/day)
1. **DashScope** (Official, Free) - Automatically available for Qwen OAuth users (200 requests/minute, 100 requests/day; free tier ending 2026-04-15)
2. **Tavily** - High-quality search API with built-in answer generation
3. **Google Custom Search** - Google's Custom Search JSON API
@ -135,7 +135,7 @@ web_search(query="best practices for React 19", provider="dashscope")
- **Cost:** Free
- **Authentication:** Automatically available when using Qwen OAuth authentication
- **Configuration:** No API key required, automatically added to provider list for Qwen OAuth users
- **Quota:** 200 requests/minute, 1000 requests/day
- **Quota:** 200 requests/minute, 100 requests/day (free tier ending 2026-04-15)
- **Best for:** General queries, always available as fallback for Qwen OAuth users
- **Auto-registration:** If you're using Qwen OAuth, DashScope is automatically added to your provider list even if you don't configure it explicitly

View file

@ -13,7 +13,7 @@ Use this if you want the simplest setup and you're using Qwen models.
- **How it works**: on first start, Qwen Code opens a browser login page. After you finish, credentials are cached locally so you usually won't need to log in again.
- **Requirements**: a `qwen.ai` account + internet access (at least for the first login).
- **Benefits**: no API key management, automatic credential refresh.
- **Cost & quota**: free, with a quota of **60 requests/minute** and **1,000 requests/day**.
- **Cost & quota**: free, with a quota of **60 requests/minute** and **100 requests/day**. Note: the free tier will be discontinued on 2026-04-15. After that, consider switching to [OpenRouter](https://openrouter.ai), [Fireworks AI](https://app.fireworks.ai), or [Alibaba Cloud ModelStudio](https://modelstudio.console.alibabacloud.com/ap-southeast-1?tab=doc#/doc/?type=model&url=2840914_2&modelId=qwen3.6-plus) — run `qwen auth` to configure your new provider.
Start the CLI and follow the browser flow:
@ -327,7 +327,7 @@ You'll see a selector with arrow-key navigation:
```
Select authentication method:
> Qwen OAuth - Free · Up to 1,000 requests/day · Qwen latest models
> Qwen OAuth - Free · 100 requests/day · Ending 2026-04-15
Alibaba Cloud Coding Plan - Paid · Up to 6,000 requests/5 hrs · All Alibaba Cloud Coding Plan Models
(Use ↑ ↓ arrows to navigate, Enter to select, Ctrl+C to exit)

View file

@ -6,7 +6,7 @@ Qwen Code is an open-source AI coding assistant tool maintained by the Qwen Code
Qwen Code supports three authentication methods to access AI models. Your authentication method determines which terms of service and privacy policies apply to your usage:
1. **Qwen OAuth** — Log in with your qwen.ai account (free daily quota)
1. **Qwen OAuth** — Log in with your qwen.ai account (free daily quota, ending 2026-04-15)
2. **Alibaba Cloud Coding Plan** — Use an API key from Alibaba Cloud
3. **API Key** — Bring your own API key

View file

@ -22,7 +22,7 @@ export function buildAuthMethods(): AuthMethod[] {
id: AuthType.QWEN_OAUTH,
name: 'Qwen OAuth',
description:
'OAuth authentication for Qwen models with free daily requests',
'OAuth authentication for Qwen models with free daily requests (ending 2026-04-15)',
_meta: {
type: 'terminal',
args: ['--auth-type=qwen-oauth'],

View file

@ -370,7 +370,7 @@ export async function runInteractiveAuth() {
{
value: 'qwen-oauth' as const,
label: t('Qwen OAuth'),
description: t('Free · Up to 1,000 requests/day · Qwen latest models'),
description: t('Free · 100 requests/day · Ending 2026-04-15'),
},
{
value: 'coding-plan' as const,
@ -428,8 +428,8 @@ export async function showAuthStatus(): Promise<void> {
// Display status based on auth type
if (selectedType === AuthType.QWEN_OAUTH) {
writeStdoutLine(t('✓ Authentication Method: Qwen OAuth'));
writeStdoutLine(t(' Type: Free tier'));
writeStdoutLine(t(' Limit: Up to 1,000 requests/day'));
writeStdoutLine(t(' Type: Free tier (ending 2026-04-15)'));
writeStdoutLine(t(' Limit: 100 requests/day'));
writeStdoutLine(t(' Models: Qwen latest models\n'));
} else if (selectedType === AuthType.USE_OPENAI) {
// Check for Coding Plan configuration

View file

@ -82,10 +82,10 @@ describe('showAuthStatus', () => {
expect.stringContaining('Qwen OAuth'),
);
expect(writeStdoutLine).toHaveBeenCalledWith(
expect.stringContaining('Free tier'),
expect.stringContaining('Free tier (ending 2026-04-15)'),
);
expect(writeStdoutLine).toHaveBeenCalledWith(
expect.stringContaining('1,000 requests/day'),
expect.stringContaining('100 requests/day'),
);
expect(process.exit).toHaveBeenCalledWith(0);
});

View file

@ -1245,8 +1245,8 @@ export default {
'Terms of Services and Privacy Notice':
'Nutzungsbedingungen und Datenschutzhinweis',
'Qwen OAuth': 'Qwen OAuth',
'Free \u00B7 Up to 1,000 requests/day \u00B7 Qwen latest models':
'Kostenlos \u00B7 Bis zu 1.000 Anfragen/Tag \u00B7 Qwen neueste Modelle',
'Free \u00B7 100 requests/day \u00B7 Ending 2026-04-15':
'Kostenlos \u00B7 100 Anfragen/Tag \u00B7 Endet am 2026-04-15',
'Login with QwenChat account to use daily free quota.':
'Melden Sie sich mit Ihrem QwenChat-Konto an, um das tägliche kostenlose Kontingent zu nutzen.',
'Paid \u00B7 Up to 6,000 requests/5 hrs \u00B7 All Alibaba Cloud Coding Plan Models':
@ -1957,8 +1957,9 @@ export default {
' qwen auth - Interaktive Authentifizierungseinrichtung\n',
'✓ Authentication Method: Qwen OAuth':
'✓ Authentifizierungsmethode: Qwen OAuth',
' Type: Free tier': ' Typ: Kostenlos',
' Limit: Up to 1,000 requests/day': ' Limit: Bis zu 1.000 Anfragen/Tag',
' Type: Free tier (ending 2026-04-15)':
' Typ: Kostenlos (endet am 2026-04-15)',
' Limit: 100 requests/day': ' Limit: 100 Anfragen/Tag',
' Models: Qwen latest models\n': ' Modelle: Qwen neueste Modelle\n',
'✓ Authentication Method: Alibaba Cloud Coding Plan':
'✓ Authentifizierungsmethode: Alibaba Cloud Coding Plan',

View file

@ -1298,8 +1298,8 @@ export default {
'Terms of Services and Privacy Notice':
'Terms of Services and Privacy Notice',
'Qwen OAuth': 'Qwen OAuth',
'Free \u00B7 Up to 1,000 requests/day \u00B7 Qwen latest models':
'Free \u00B7 Up to 1,000 requests/day \u00B7 Qwen latest models',
'Free \u00B7 100 requests/day \u00B7 Ending 2026-04-15':
'Free \u00B7 100 requests/day \u00B7 Ending 2026-04-15',
'Login with QwenChat account to use daily free quota.':
'Login with QwenChat account to use daily free quota.',
'Paid \u00B7 Up to 6,000 requests/5 hrs \u00B7 All Alibaba Cloud Coding Plan Models':
@ -1997,8 +1997,9 @@ export default {
' qwen auth - Interactive authentication setup\n':
' qwen auth - Interactive authentication setup\n',
'✓ Authentication Method: Qwen OAuth': '✓ Authentication Method: Qwen OAuth',
' Type: Free tier': ' Type: Free tier',
' Limit: Up to 1,000 requests/day': ' Limit: Up to 1,000 requests/day',
' Type: Free tier (ending 2026-04-15)':
' Type: Free tier (ending 2026-04-15)',
' Limit: 100 requests/day': ' Limit: 100 requests/day',
' Models: Qwen latest models\n': ' Models: Qwen latest models\n',
'✓ Authentication Method: Alibaba Cloud Coding Plan':
'✓ Authentication Method: Alibaba Cloud Coding Plan',

View file

@ -1329,8 +1329,8 @@ export default {
'Terms of Services and Privacy Notice':
"Conditions d'utilisation et avis de confidentialité",
'Qwen OAuth': 'Qwen OAuth',
'Free \u00B7 Up to 1,000 requests/day \u00B7 Qwen latest models':
"Gratuit · Jusqu'à 1 000 requêtes/jour · Derniers modèles Qwen",
'Free \u00B7 100 requests/day \u00B7 Ending 2026-04-15':
'Gratuit \u00B7 100 requêtes/jour \u00B7 Fin le 2026-04-15',
'Login with QwenChat account to use daily free quota.':
'Connectez-vous avec un compte QwenChat pour utiliser le quota gratuit quotidien.',
'Paid \u00B7 Up to 6,000 requests/5 hrs \u00B7 All Alibaba Cloud Coding Plan Models':
@ -2038,8 +2038,9 @@ export default {
" qwen auth - Configuration d'authentification interactive\n",
'✓ Authentication Method: Qwen OAuth':
"✓ Méthode d'authentification : Qwen OAuth",
' Type: Free tier': ' Type : Niveau gratuit',
' Limit: Up to 1,000 requests/day': " Limite : Jusqu'à 1 000 requêtes/jour",
' Type: Free tier (ending 2026-04-15)':
' Type : Niveau gratuit (fin le 2026-04-15)',
' Limit: 100 requests/day': ' Limite : 100 requêtes/jour',
' Models: Qwen latest models\n': ' Modèles : Derniers modèles Qwen\n',
'✓ Authentication Method: Alibaba Cloud Coding Plan':
"✓ Méthode d'authentification : Alibaba Cloud Coding Plan",

View file

@ -966,8 +966,8 @@ export default {
'続行するには認証方法を選択してください。Ctrl+C をもう一度押すと終了します',
'Terms of Services and Privacy Notice': '利用規約とプライバシー通知',
'Qwen OAuth': 'Qwen OAuth',
'Free \u00B7 Up to 1,000 requests/day \u00B7 Qwen latest models':
'無料 \u00B7 1日最大1,000リクエスト \u00B7 Qwen最新モデル',
'Free \u00B7 100 requests/day \u00B7 Ending 2026-04-15':
'無料 \u00B7 1日100リクエスト \u00B7 2026-04-15に終了',
'Login with QwenChat account to use daily free quota.':
'QwenChatアカウントでログインして、毎日の無料クォータをご利用ください。',
'Paid \u00B7 Up to 6,000 requests/5 hrs \u00B7 All Alibaba Cloud Coding Plan Models':
@ -1448,8 +1448,9 @@ export default {
' qwen auth - Interactive authentication setup\n':
' qwen auth - インタラクティブ認証セットアップ\n',
'✓ Authentication Method: Qwen OAuth': '✓ 認証方法: Qwen OAuth',
' Type: Free tier': ' タイプ: 無料プラン',
' Limit: Up to 1,000 requests/day': ' 制限: 1日最大1,000リクエスト',
' Type: Free tier (ending 2026-04-15)':
' タイプ: 無料プラン2026-04-15に終了',
' Limit: 100 requests/day': ' 制限: 1日100リクエスト',
' Models: Qwen latest models\n': ' モデル: Qwen 最新モデル\n',
'✓ Authentication Method: Alibaba Cloud Coding Plan':
'✓ 認証方法: Alibaba Cloud Coding Plan',

View file

@ -1251,8 +1251,8 @@ export default {
'Terms of Services and Privacy Notice':
'Termos de Serviço e Aviso de Privacidade',
'Qwen OAuth': 'Qwen OAuth',
'Free \u00B7 Up to 1,000 requests/day \u00B7 Qwen latest models':
'Gratuito \u00B7 Até 1.000 solicitações/dia \u00B7 Modelos Qwen mais recentes',
'Free \u00B7 100 requests/day \u00B7 Ending 2026-04-15':
'Gratuito \u00B7 100 solicitações/dia \u00B7 Encerra em 2026-04-15',
'Login with QwenChat account to use daily free quota.':
'Faça login com sua conta QwenChat para usar a cota gratuita diária.',
'Paid \u00B7 Up to 6,000 requests/5 hrs \u00B7 All Alibaba Cloud Coding Plan Models':
@ -1947,8 +1947,9 @@ export default {
' qwen auth - Interactive authentication setup\n':
' qwen auth - Configuração interativa de autenticação\n',
'✓ Authentication Method: Qwen OAuth': '✓ Método de autenticação: Qwen OAuth',
' Type: Free tier': ' Tipo: Gratuito',
' Limit: Up to 1,000 requests/day': ' Limite: Até 1.000 solicitações/dia',
' Type: Free tier (ending 2026-04-15)':
' Tipo: Gratuito (encerra em 2026-04-15)',
' Limit: 100 requests/day': ' Limite: 100 solicitações/dia',
' Models: Qwen latest models\n': ' Modelos: Modelos Qwen mais recentes\n',
'✓ Authentication Method: Alibaba Cloud Coding Plan':
'✓ Método de autenticação: Alibaba Cloud Coding Plan',

View file

@ -1175,8 +1175,8 @@ export default {
'Terms of Services and Privacy Notice':
'Условия обслуживания и уведомление о конфиденциальности',
'Qwen OAuth': 'Qwen OAuth',
'Free \u00B7 Up to 1,000 requests/day \u00B7 Qwen latest models':
'Бесплатно \u00B7 До 1 000 запросов/день \u00B7 Новейшие модели Qwen',
'Free \u00B7 100 requests/day \u00B7 Ending 2026-04-15':
'Бесплатно \u00B7 100 запросов/день \u00B7 Завершение 2026-04-15',
'Login with QwenChat account to use daily free quota.':
'Войдите с помощью аккаунта QwenChat, чтобы использовать ежедневную бесплатную квоту.',
'Paid \u00B7 Up to 6,000 requests/5 hrs \u00B7 All Alibaba Cloud Coding Plan Models':
@ -1954,8 +1954,9 @@ export default {
' qwen auth - Interactive authentication setup\n':
' qwen auth - Интерактивная настройка аутентификации\n',
'✓ Authentication Method: Qwen OAuth': '✓ Метод аутентификации: Qwen OAuth',
' Type: Free tier': ' Тип: Бесплатный',
' Limit: Up to 1,000 requests/day': ' Лимит: До 1 000 запросов/день',
' Type: Free tier (ending 2026-04-15)':
' Тип: Бесплатный (завершение 2026-04-15)',
' Limit: 100 requests/day': ' Лимит: 100 запросов/день',
' Models: Qwen latest models\n': ' Модели: Последние модели Qwen\n',
'✓ Authentication Method: Alibaba Cloud Coding Plan':
'✓ Метод аутентификации: Alibaba Cloud Coding Plan',

View file

@ -1227,8 +1227,8 @@ export default {
'您必须选择认证方法才能继续。再次按 Ctrl+C 退出',
'Terms of Services and Privacy Notice': '服务条款和隐私声明',
'Qwen OAuth': 'Qwen OAuth (免费)',
'Free \u00B7 Up to 1,000 requests/day \u00B7 Qwen latest models':
'免费 \u00B7 每天最多 1,000 次请求 \u00B7 Qwen 最新模型',
'Free \u00B7 100 requests/day \u00B7 Ending 2026-04-15':
'免费 \u00B7 每天 100 次请求 \u00B7 将于 2026-04-15 停止',
'Login with QwenChat account to use daily free quota.':
'使用 QwenChat 账号登录,享受每日免费额度。',
'Paid \u00B7 Up to 6,000 requests/5 hrs \u00B7 All Alibaba Cloud Coding Plan Models':
@ -1803,8 +1803,9 @@ export default {
' qwen auth - Interactive authentication setup\n':
' qwen auth - 交互式认证配置\n',
'✓ Authentication Method: Qwen OAuth': '✓ 认证方式Qwen OAuth',
' Type: Free tier': ' 类型:免费版',
' Limit: Up to 1,000 requests/day': ' 限额:每天最多 1,000 次请求',
' Type: Free tier (ending 2026-04-15)':
' 类型:免费版(将于 2026-04-15 停止)',
' Limit: 100 requests/day': ' 限额:每天 100 次请求',
' Models: Qwen latest models\n': ' 模型Qwen 最新模型\n',
'✓ Authentication Method: Alibaba Cloud Coding Plan':
'✓ 认证方式:阿里云百炼 Coding Plan',

View file

@ -106,9 +106,7 @@ export function AuthDialog(): React.JSX.Element {
key: AuthType.QWEN_OAUTH,
title: t('Qwen OAuth'),
label: t('Qwen OAuth'),
description: t(
'Free \u00B7 Up to 1,000 requests/day \u00B7 Qwen latest models',
),
description: t('Free \u00B7 100 requests/day \u00B7 Ending 2026-04-15'),
value: AuthType.QWEN_OAUTH as MainOption,
},
{

View file

@ -327,7 +327,9 @@ describe('retryWithBackoff', () => {
authType: AuthType.QWEN_OAUTH,
});
await expect(promise).rejects.toThrow(/Qwen OAuth quota exceeded/);
await expect(promise).rejects.toThrow(
/Qwen OAuth free tier quota exceeded/,
);
// Should be called only once (no retries)
expect(fn).toHaveBeenCalledTimes(1);
@ -348,7 +350,9 @@ describe('retryWithBackoff', () => {
authType: AuthType.QWEN_OAUTH,
});
await expect(promise).rejects.toThrow(/Qwen OAuth quota exceeded/);
await expect(promise).rejects.toThrow(
/Qwen OAuth free tier quota exceeded/,
);
// Should be called only once (no retries)
expect(fn).toHaveBeenCalledTimes(1);
@ -422,7 +426,9 @@ describe('retryWithBackoff', () => {
authType: AuthType.QWEN_OAUTH,
});
await expect(promise).rejects.toThrow(/Qwen OAuth quota exceeded/);
await expect(promise).rejects.toThrow(
/Qwen OAuth free tier quota exceeded/,
);
// Should be called only once (no retries)
expect(fn).toHaveBeenCalledTimes(1);

View file

@ -111,11 +111,12 @@ export async function retryWithBackoff<T>(
// Check for Qwen OAuth quota exceeded error - throw immediately without retry
if (authType === AuthType.QWEN_OAUTH && isQwenQuotaExceededError(error)) {
throw new Error(
`Qwen OAuth quota exceeded: Your free daily quota has been reached.\n\n` +
`To continue using Qwen Code without waiting, upgrade to the Alibaba Cloud Coding Plan:\n` +
` China: https://help.aliyun.com/zh/model-studio/coding-plan\n` +
` Global/Intl: https://www.alibabacloud.com/help/en/model-studio/coding-plan\n\n` +
`After subscribing, run /auth to configure your Coding Plan API key.`,
`Qwen OAuth free tier quota exceeded. Note: Qwen OAuth free tier will be discontinued on 2026-04-15.\n\n` +
`To continue using Qwen Code, try one of these alternatives:\n` +
` - OpenRouter: https://openrouter.ai/docs/quickstart\n` +
` - Fireworks AI: https://docs.fireworks.ai/api-reference/introduction\n` +
` - ModelStudio: https://help.aliyun.com/zh/model-studio/coding-plan\n\n` +
`After setting up your API key, run /auth to configure your provider.`,
);
}