feat(auth): discontinue Qwen OAuth free tier (2026-04-15 cutoff)#3291
feat(auth): discontinue Qwen OAuth free tier (2026-04-15 cutoff)#3291pomelo-nwu merged 2 commits intomainfrom
Conversation
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.
📋 Review SummaryThis PR updates all client-side messaging to reflect that the Qwen OAuth free tier was discontinued on 2026-04-15. The changes are comprehensive, covering error handling, authentication validation, UI updates, i18n translations, and documentation. The implementation follows a "soft cutoff" design where existing cached tokens continue working until server rejection, while blocking new OAuth signups and providing clear user guidance. 🔍 General Feedback
🎯 Specific Feedback🟡 High
🟢 Medium
🔵 Low
✅ Highlights
|
…ations - 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
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
PR #3291 discontinued the Qwen OAuth free tier but intentionally left the ModelDialog unchanged, relying on server rejection for qwen-oauth models. This follow-up adds proper UI handling consistent with the AuthDialog: - Mark qwen-oauth model entries with "(Discontinued)" label and warning color - Replace descriptions with "Discontinued — switch to Coding Plan or API Key" - Block selection with inline error message instead of calling switchModel - Show ⚠ discontinuation notice in the detail panel for highlighted entries - Runtime OAuth models (existing cached tokens) remain selectable until server rejects them (soft cutoff principle from PR #3291) - Add i18n strings for the new error message across all 7 locale files Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
#3299) PR #3291 discontinued the Qwen OAuth free tier but intentionally left the ModelDialog unchanged, relying on server rejection for qwen-oauth models. This follow-up adds proper UI handling consistent with the AuthDialog: - Mark qwen-oauth model entries with "(Discontinued)" label and warning color - Replace descriptions with "Discontinued — switch to Coding Plan or API Key" - Block selection with inline error message instead of calling switchModel - Show ⚠ discontinuation notice in the detail panel for highlighted entries - Runtime OAuth models (existing cached tokens) remain selectable until server rejects them (soft cutoff principle from PR #3291) - Add i18n strings for the new error message across all 7 locale files Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
TLDR
The Qwen OAuth free tier reached its end-of-life on 2026-04-15. This PR updates all client-side messaging from future tense ("ending") to past tense ("discontinued"), blocks new OAuth signups, adds a persistent startup warning for existing OAuth users, and removes DashScope web search auto-injection.
Follows up on #3217 which reduced the quota from 1,000 to 100 requests/day.
Screenshots / Video Demo
N/A — messaging and validation changes only. No new UI components. Key user-visible changes:
Dive Deeper
Design decisions (documented in knowledge/qwen-code/design/qwen-oauth-free-tier-cutoff.md):
[qwen-oauth] coder-modelstays as-is. Server rejection handles it via the existing error path.Changes by area (25 files, +195 −127):
retry.ts,errorParsing.tsauth.tshandler.ts,AuthDialog.tsx,authMethods.tsgemini.tsxwebSearch.ts,config.tsREADME.md,auth.md,tos-privacy.md,web-search.md,SKILL.mdretry.test.ts,status.test.ts,auth.test.ts,AuthDialog.test.tsxReviewer Test Plan
qwen auth— verify OAuth is last in the list with "Discontinued" labelselectedType: "qwen-oauth"in settings, launchqwen— verify startup warning in the notification boxqwen auth statuswith OAuth configured — verify "discontinued" and "No longer available" textcd packages/core && npx vitest run src/utils/retry.test.tsandcd packages/cli && npx vitest run src/commands/auth/status.test.ts src/config/auth.test.ts src/ui/auth/AuthDialog.test.tsxTesting Matrix
Linked issues / bugs
Follow-up to #3217 (quota downgrade from 1,000 to 100 and end-date messaging)