Conversation
📋 Review SummaryThis PR introduces comprehensive authentication enhancements including Alibaba Cloud Coding Plan support and a multi-language internationalization system for the WebUI onboarding experience. The implementation is well-structured overall, with good separation of concerns between CLI, VSCode extension, and WebUI packages. However, there are several areas requiring attention, particularly around type safety, error handling consistency, and some architectural decisions. 🔍 General Feedback
🎯 Specific Feedback🔴 Critical
🟡 High
🟢 Medium
🔵 Low
✅ Highlights
|
… frontend auth sync across sessions
… ensure ui hasContent evaluates to false to allow Onboarding panel render
…on is loaded to prevent old session data from stalling the UI rendering
…ing unscrollable header
…ent flex child overflow
ad7446e to
425eed1
Compare
… i18n overlay
This commit achieves the following:
- Redesigns the `Onboarding.tsx` screen to match Claude Code's minimalist structure with better spacing, robust dash borders, and solid styling on primary and secondary buttons.
- Disconnects UI languages from IDE language injection (`vscode.env.language`) in `acpConnection.ts`.
- Strips branch-specific multi-language wrapping (`t()` and `import { t }`) across components like `AskUserQuestionDialog.tsx` and `authMethods.ts`.
- Configures auth method identifiers properly stringified (`coding-plan`) instead of mutating global Enums.
- Fix connection error showing in chat instead of onboarding page - Fix OAuth race condition: keep onboarding visible during re-auth - Align auth method labels with CLI (Select Authentication Method, Free · Up to 1,000 requests/day, API Key / Bring your own API key) - Redesign Coding Plan flow: Region select → API Key (two-step) - Add API key validation (empty check + sk-sp- prefix for China) - Region options: 阿里云百炼 (aliyun.com) / Alibaba Cloud (alibabacloud.com) - Add 'Coding Plan API key here' link per CLI parity - Use Qwen brand purple (#6366f1) for primary buttons - Add outlined secondary buttons and ghost back buttons for better visual hierarchy and button affordance - Center-align all onboarding content Closes QwenLM#2134
Overview
This PR introduces comprehensive authentication enhancements including Alibaba Cloud Coding Plan support and a multi-language internationalization system for the WebUI onboarding experience.
Changes
Core Features
codingPlanLogic.tsutility for handling Coding Plan authentication flow2 Enhanced Onboarding Experience
methodIdand_metaparameter passingModified Files
CLI Package:
packages/cli/src/acp-integration/acpAgent.ts- Added Coding Plan auth handlingpackages/cli/src/acp-integration/authMethods.ts- Updated auth method list with i18npackages/cli/src/utils/codingPlanLogic.ts- New utility for Coding Plan authCore Package:
packages/core/src/core/contentGenerator.ts- Minor updatespackages/core/src/models/constants.ts- Added Coding Plan constantsVSCode Extension:
packages/vscode-ide-companion/src/services/acpConnection.tspackages/vscode-ide-companion/src/services/qwenAgentManager.tspackages/vscode-ide-companion/src/services/qwenConnectionHandler.tspackages/vscode-ide-companion/src/types/acpTypes.tspackages/vscode-ide-companion/src/utils/authErrors.tspackages/vscode-ide-companion/src/webview/App.tsxpackages/vscode-ide-companion/src/webview/components/layout/Onboarding.tsxpackages/vscode-ide-companion/src/webview/handlers/AuthMessageHandler.tspackages/vscode-ide-companion/src/webview/handlers/MessageRouter.tspackages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.tspackages/vscode-ide-companion/src/webview/hooks/useWebViewMessages.tspackages/vscode-ide-companion/src/webview/providers/MessageHandler.tspackages/vscode-ide-companion/src/webview/providers/WebViewProvider.tsWebUI:
packages/webui/src/components/layout/Onboarding.tsx- Complete UI overhaulpackages/webui/src/utils/i18n.ts- New i18n moduleTechnical Details
Authentication Flow
_metaparameter to authenticate handlerType Safety Notes
Some
anytypes were introduced to handle dynamic authentication metadata passing between components. These should be refined in future iterations with proper interface definitions.Testing
Related Issues
Screenshots
Video
vc.mp4