Commit graph

148 commits

Author SHA1 Message Date
tanzhenxin
112318d092 Merge branch 'main' into feat/improve-auth-dialog-ux 2026-03-02 19:16:45 +08:00
易良
c353fbbfa3
feat(cli): add Ctrl+Y shortcut to retry failed requests (#2011)
* feat: add Ctrl+Y shortcut to retry failed requests

- Add Ctrl+Y keyboard shortcut for retrying the last failed request
- Add isNetworkError() to detect transient network failures (ECONNREFUSED, ETIMEDOUT, etc.)
- Add DashScope 1305 error code to rate limit detection
- Add error hint \"Press Ctrl+Y to retry\" in error messages
- Support user-defined error codes for retry via config
- Add retryLastPrompt() hook in useGeminiStream
- Update keyboard shortcuts documentation

* feat: improve Ctrl+Y retry feature with tests, docs, and rate limit config

- Add comprehensive tests for Ctrl+Y retry shortcut in InputPrompt
- Add unit tests for retryLastPrompt in useGeminiStream hook
- Add detailed JSDoc comments for retryLastPrompt function and Ctrl+Y shortcut
- Extend isRateLimitError to support custom error codes via retryErrorCodes config
- Fix rate limit retry log variable reference (RATE_LIMIT_RETRY_OPTIONS → maxRateLimitRetries)
- Add Eclipse IDE files to .gitignore

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* refactor(ui): consolidate retry countdown as inline hint in error messages

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* feat(cli): enhance error handling with improved retry mechanism

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

- Modify ErrorMessage component to remove dim color from hint text

- Update useGeminiStream hook to improve retry countdown behavior with option to preserve or clear hints

- Adjust tests to match new error handling implementation

* feat: add Ctrl+Y shortcut to retry the last failed request

When a request errors out, the error message shows an inline hint
"(Press Ctrl+Y to retry.)" in secondary color. Pressing Ctrl+Y
re-submits the same prompt, commits the error text to history
(without the hint), and clears the hint from the UI.

- Add retryLastPrompt action wired to Ctrl+Y via keyBindings and InputPrompt
- Track last submitted prompt and error state in useGeminiStream refs
- Show retry hint inline with error text in ErrorMessage component,
  wrapping naturally on narrow terminals while preserving hint color
- Expose retryLastPrompt through UIActionsContext
- Add keyboard shortcut entry in KeyboardShortcuts display
- Add i18n strings for hint and no-retry-available message
- Document Ctrl+Y in keyboard-shortcuts.md

* docs(configuration): Update model provider configuration document

* chore: remove YOLO mode code from core

* fix: prevent Ctrl+Y hint from overriding auto-retry countdown

When an auto-retry countdown is active (retryCountdownTimerRef is set),
handleErrorEvent should not overwrite it with the Ctrl+Y hint. The auto-retry
hint ("retrying in Xs...") and manual retry hint ("Press Ctrl+Y to retry.")
are mutually exclusive:

- Auto-retry errors (e.g., rate limits): show countdown hint
- Other errors: show Ctrl+Y hint

Also removed retryErrorCodes from ContentGeneratorConfig as it's not part
of the minimal Ctrl+Y feature scope.

* simplify: remove complex options from clearRetryCountdown

Revert clearRetryCountdown to simplest form without options parameter.
The function now just clears the timer and pending item without any
automatic history commit logic.

* fix: restore pendingRetryCountdownItem as separate state from pendingRetryErrorItem

Auto-retry countdown and manual retry hint are now independent:
- pendingRetryErrorItem: displays error message with optional hint
- pendingRetryCountdownItem: displays separate countdown line for auto-retry

This ensures both can be shown simultaneously without overriding each other.

* fix: restore RetryCountdownMessage rendering in HistoryItemDisplay

The retry_countdown type should be rendered as a separate message,
not inline in ErrorMessage. This allows auto-retry countdown and
manual retry hint to coexist properly.

* fix(cli): properly commit retry error item to history before clearing

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* fix(cli): remove trailing period from retry hint translations

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

Remove unnecessary period from 'Press Ctrl+Y to retry' translation strings in both en.js and zh.js locales. Also update the corresponding usage in useGeminiStream hook.

* chore(sdk-java): add Eclipse project configuration files

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

Add .project configuration files for client and qwencode modules to support Eclipse IDE development environment.

* feat(cli): add retry countdown hint to error message

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Revert "chore(sdk-java): add Eclipse project configuration files"

This reverts commit da83b5e571.

---------

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-02 17:59:18 +08:00
tanzhenxin
6a617f5248
Merge pull request #1982 from QwenLM/fix/modality-defaults-pdf-error
fix: add modality defaults to prevent API errors when reading PDFs and other media
2026-03-02 17:42:17 +08:00
tanzhenxin
1e0f6f4fc8
Merge pull request #1994 from QwenLM/fix-docs-by-yijing
docs: update installation instructions
2026-03-02 17:41:56 +08:00
tanzhenxin
d3cdad5100 feat(cli): improve auth dialog UX with clearer three-option layout
- 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>
2026-03-01 15:22:35 +08:00
tanzhenxin
89f5f9c4c4 fix(openai): improve modality error messages and docs
- Update error messages for unsupported image/PDF inputs with clearer guidance
- Add `modalities` setting to override auto-detected input modalities
- Document `modalities` config in model-providers.md and settings.md
- Update converter tests to match new error message format

This provides users with actionable alternatives when their selected model doesn't support certain input types, and allows manual modality overrides for models not recognized by auto-detection.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-28 16:05:22 +08:00
tanzhenxin
00f9c56660 Merge branch 'main' into fix/modality-defaults-pdf-error
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-28 14:20:40 +08:00
joeytoday
ef55909cc3 docs: update installation instructions with quick install and manual install options 2026-02-28 10:52:49 +08:00
tanzhenxin
1979e2121b
Merge pull request #1952 from QwenLM/coding-plan-ui-fix
feat(auth): add automatic backup of settings.json before auth modification
2026-02-27 21:29:45 +08:00
tanzhenxin
9dc758cfc0
Merge pull request #1852 from QwenLM/feat/qwen3.5-plus
Merge coder-model and qwen3.5-plus, remove vision auto-switching
2026-02-27 21:19:37 +08:00
joeytoday
ec178b782f docs: fix custom command path in mapping table
- Corrected the file path in commands.md mapping table from
  '<project>/commands/git/commit.md' to '<project>/.qwen/commands/git/commit.md'
- Removed trailing blank line in sandbox.md code block

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 12:51:05 +08:00
joeytoday
8cead5a469 docs: fix alert block formatting and command path 2026-02-27 11:20:25 +08:00
mingholy.lmh
0c53b19a74 feat(auth): backup settings file before auth modification
- 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>
2026-02-26 20:38:38 +08:00
qwen-code-ci-bot
f90ed9efe9 feat: update model configs and tests for qwen3.5-plus
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-26 14:43:06 +08:00
pomelo
33a5116eca
Merge pull request #1612 from QwenLM/feat/image-attachment
feat: Add clipboard image support and attachment UI to CLI
2026-02-25 15:16:29 +08:00
pomelo
95e8ddc70d
Merge pull request #1927 from QwenLM/mingholy/docs/model-providers
docs: enhance modelProviders documentation with comprehensive examples and behavior clarifications
2026-02-25 15:08:50 +08:00
mingholy.lmh
c4f5c82468 docs: update link to model-providers.md in auth.md
Fix broken link from settings.md#modelproviders to new model-providers.md

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-25 10:11:33 +08:00
mingholy.lmh
9cb624f79f docs: extract modelProviders section to standalone model-providers.md document
- Create new model-providers.md with complete model provider configuration guide
- Add Bailian Coding Plan documentation with setup and auto-update details
- Remove modelProviders content from settings.md to avoid duplication
- Document reserved envKey BAILIAN_CODING_PLAN_API_KEY and security recommendations

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-25 10:07:41 +08:00
mingholy.lmh
1c9ff66c76 docs: enhance modelProviders configuration documentation
- Add comprehensive configuration examples for all auth types (openai, anthropic, gemini, vertex-ai)
- Add local self-hosted model examples (vLLM, Ollama, LM Studio)
- Clarify generation config layering with impermeable provider layer concept
- Add Provider Model vs Runtime Model explanation
- Document duplicate model ID limitation
- Deprecate security.auth.apiKey and security.auth.baseUrl settings
- Add notes about extra_body parameter support limitations

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-24 22:18:50 +08:00
pomelo-nwu
b0e8c66523 feat: add qwen3-coder-next, glm-4.7, and kimi-k2.5 to Coding Plan (China region)
- 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>
2026-02-23 10:17:44 +08:00
pomelo-nwu
ed81e89620 docs: improve settings.json configuration guide with quick setup examples
- 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>
2026-02-16 14:22:40 +08:00
pomelo-nwu
489890cf93 docs: update auth docs for multi-protocol support
Add Anthropic/Gemini protocols, modelProviders config, and env var priority docs

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-11 17:37:58 +08:00
joeytoday
63c067bf34 docs: update authentication documentation with Coding Plan setup guide
- Update images to use CDN links
- Add Coding Plan quick setup instructions
- Add settings.json modelProviders configuration guide
- Add direct configuration via Qwen Code conversation guide
- Improve formatting and structure
2026-02-11 13:54:31 +08:00
LaZzyMan
56030f9291 Merge branch 'main' into feat/image-attachment 2026-02-10 14:16:21 +08:00
tanzhenxin
a4ffc6eb24 feat: promote Agent Skills from experimental to stable
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-06 13:04:08 +08:00
pomelo-nwu
0aedfbd779 chore: 降低 Qwen OAuth 免费配额从 2000 次到每天 1000 次
为了让更多用户能够使用 Qwen Code,将 Qwen OAuth 的免费额度从每天 2000 次降低到每天 1000 次。修改涉及以下文档:
- CHANGELOG.md: 更新版本说明
- README.md: 更新功能介绍
- docs/developers/tools/web-search.md: 更新 Web Search 工具文档
- docs/users/configuration/auth.md: 更新认证文档

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-05 19:51:16 +08:00
tanzhenxin
ff0ba0cc4e Merge branch and resolve conflicts
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-05 13:41:37 +08:00
LaZzyMan
c8297300d9 Merge branch 'main' into feat/image-attachment 2026-02-05 11:09:34 +08:00
tanzhenxin
4c41dd9dd3
Merge pull request #1607 from QwenLM/fix/shift-tab-windows-powershell
fix: enable Shift+Tab shortcut in Windows PowerShell
2026-02-04 14:30:33 +08:00
LaZzyMan
c92e2b8351 Merge branch 'main' into feat/image-attachment 2026-02-02 20:23:34 +08:00
LaZzyMan
86ba86e297 Merge branch 'main' into fix/shift-tab-windows-powershell 2026-02-02 19:51:32 +08:00
LaZzyMan
3296785b23 feat use tab on windows instead of shift+tab 2026-02-02 19:48:07 +08:00
LaZzyMan
1050163804 fix paste image on windows 2026-02-02 17:07:39 +08:00
Mingholy
0bcc5a96f4 docs: add settings migration instructions 2026-02-01 17:32:08 +08:00
Alexander Farber
561fda297e Rename disable* settings to enable* and consolidated 1 setting 2026-02-01 16:04:49 +08:00
tanzhenxin
831d74dbfe feat: Preserve UTF-8 BOM when editing files (Fix #1672)
- Add FileEncoding constants (UTF8, UTF8_BOM)
- Add detectFileBOM() to detect existing file encoding
- Modify writeTextFile() to support BOM option
- Add defaultFileEncoding configuration option
- Preserve BOM when editing existing files
- Use configured encoding for new files
- Add comprehensive tests (unit, integration, e2e)
- Update documentation

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-01 10:32:20 +08:00
tanzhenxin
1c5b74ebd9 Merge branch 'main' into pr-1539 2026-01-29 19:18:23 +08:00
tanzhenxin
a896fc4a70
Merge pull request #1401 from QwenLM/feat/support-lsp
Add experimental LSP support for code intelligence
2026-01-29 15:03:23 +08:00
tanzhenxin
532d97670b feat: add extra_body support for OpenAI-compatible providers
Add extra_body configuration option to model.generationConfig for passing
custom parameters to OpenAI-compatible API request bodies.

- Add extra_body to ContentGeneratorConfig type
- Add extra_body to MODEL_GENERATION_CONFIG_FIELDS and ModelGenerationConfig
- Implement extra_body merging in DefaultOpenAICompatibleProvider
- Implement extra_body merging in DashScopeOpenAICompatibleProvider
- Update documentation with examples and provider compatibility notes
- Note: This feature is only for OpenAI-compatible providers (openai, qwen-oauth)

Resolves #1647
Resolves #1644

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-01-29 12:33:54 +08:00
yiliang114
894edc6e4d Merge branch 'main' of https://github.com/QwenLM/qwen-code into feat/support-lsp 2026-01-28 18:54:01 +08:00
yiliang114
7ec79e6806 feat(lsp): support for loading lspServers configurations from extensions 2026-01-27 11:21:29 +08:00
yiliang114
0bff045d3d Merge branch 'main' of https://github.com/QwenLM/qwen-code into feat/support-lsp 2026-01-26 23:13:53 +08:00
pomelo-nwu
de3bc5fe3a Merge branch 'k-kanade/main' into i18n-0116 and resolve conflicts 2026-01-26 22:55:04 +08:00
xwj02155382
e77a67cd5e refactor: remove maxOutputTokens user configuration
- Remove maxOutputTokens field from ContentGeneratorConfig
- Remove maxOutputTokens auto-calculation logic in contentGenerator.ts
- Remove maxOutputTokens sync logic in config.ts hot-update
- Update dashscope.ts to use tokenLimit() function for dynamic calculation
- Remove maxOutputTokens from documentation (settings.md)
- Update all test cases to use correct model output limits
- All 143 tests passing (config.test.ts: 105, dashscope.test.ts: 38)

Changes:
- Users can no longer configure maxOutputTokens via settings
- Output token limits are now always dynamically calculated based on model
- contextWindowSize (input) remains user-configurable
- Prevents long text output truncation caused by default value settings
2026-01-26 16:30:12 +08:00
xwj02155382
f9db8d5a73 refactor: improve config consistency and token limits
- Remove legacy childKey field from settingsSchema

- Add contextWindowSize and maxOutputTokens to documentation

- Refactor ContextUsageDisplay to accept contextWindowSize directly instead of Config object

- Add useMemo optimization for contextWindowSize in Footer component

- Fix logic gaps in contentGenerator for contextWindowSize and maxOutputTokens initialization

- Increase DEFAULT_OUTPUT_TOKEN_LIMIT from 4K to 8K for better usability

- Add fallback to default values when model is not available
2026-01-26 10:26:44 +08:00
LaZzyMan
f640705e4d fix typo error 2026-01-26 10:00:33 +08:00
yiliang114
8420386d14 feat(lsp): Removes built-in LSP configuration options and improves configuration loading mechanism
- remove configuration options such as lsp.enabled, lsp.allowed, lsp.excluded, etc. from settings.json schema
- Delete lspSettingsSchema.ts files and associated JSON schema definitions
- Removed VS Code settings loading function, no longer merge. vscode/settings.json configuration
- Updated LSP documentation to reflect new configurations and experimental flags
-remove allow/exclude parameters in NativeLspService constructor
- Create new LspConfigLoader classes to handle LSP configuration loading and merging
- Updated debug guide to match the new configuration mechanism
- Simplify loadCliConfig functions, remove startLsp options
- Reconstruct the configuration loading process to remove duplicate configuration merge logic
- Add LspConfigLoader classes to implement configuration parsing and merging functions
2026-01-25 20:59:44 +08:00
yiliang114
45e947dcbc Merge branch 'main' of https://github.com/QwenLM/qwen-code into feat/support-lsp 2026-01-24 13:06:44 +08:00
LaZzyMan
63e24301f8 fix copy error 2026-01-23 16:41:23 +08:00
LaZzyMan
9af9ea259d feat: add select ui for claude marketplace 2026-01-23 16:23:30 +08:00