mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-04-28 11:41:04 +00:00
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:
parent
4daf7f9353
commit
e90abf4c35
19 changed files with 65 additions and 174 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
121
CHANGELOG.md
121
CHANGELOG.md
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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'],
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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.`,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue