Commit graph

512 commits

Author SHA1 Message Date
LaZzyMan
c01a309cda fix core tool config 2026-03-13 17:58:34 +08:00
LaZzyMan
7450067e37 Merge branch 'main' into feat/support-permission 2026-03-11 17:11:28 +08:00
LaZzyMan
e793e82729 feat(permissions): add workspace directory management tab
- Add Workspace tab to PermissionsDialog with full directory management UI
  - Directory list view: initial (non-removable) dirs shown inline,
    runtime-added dirs selectable; "Add directory…" always first
  - Add directory input view: filesystem autocomplete with ↑/↓ navigation
    and Tab-to-complete; path validation (existence, type, duplicate,
    subdirectory checks)
  - Remove directory confirmation view
  - Save directly to project settings (SettingScope.Workspace), no scope
    selection step
- Add onTab/onUp/onDown props to TextInput to intercept keys before buffer
- Add removeDirectory() and isInitialDirectory() to WorkspaceContext
- Add --add-dir CLI alias for --include-directories
- Add /add-dir slash command (alias for /directory add)
- Add permissions.additionalDirectories settings field
- Add i18n keys for all workspace directory UI strings (en/zh/de/ja/pt/ru)"
2026-03-11 10:54:59 +08:00
LaZzyMan
db0e373ad7 feat test tool permissions 2026-03-10 16:30:22 +08:00
LaZzyMan
d32dcab5db fix: remove redundant scope field from MCP server display and add CONCAT merge strategy for mcp allowed/excluded lists 2026-03-09 21:38:42 +08:00
LaZzyMan
32d499944a Merge branch 'main' into feat/mcp-tui 2026-03-06 16:55:38 +08:00
tanzhenxin
23df34b204 chore(cli): remove unused debugLogger import from settings
Removes an unused debugLogger import that was left over from previous changes.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-06 15:06:17 +08:00
tanzhenxin
38dafeb839 Merge branch 'main' into feat/mcp-tui 2026-03-06 15:03:47 +08:00
tanzhenxin
648d48edbc Merge branch 'main' into feat/shell-pty-default-and-enhancements 2026-03-06 15:02:41 +08:00
tanzhenxin
3a549419ba Merge branch 'main' into feat/sandbox-config-improvements 2026-03-06 14:38:39 +08:00
tanzhenxin
ca3a2be2ec Merge branch 'main' into feat/shell-pty-default-and-enhancements 2026-03-06 14:36:18 +08:00
LaZzyMan
7b227a7eb5 Merge branch 'main' into feat/mcp-tui 2026-03-06 14:27:56 +08:00
tanzhenxin
fcebd14a90
Merge pull request #2092 from QwenLM/fix/disable-llm-loop-detection
fix(core): remove LLM-based loop detection and enable skipLoopDetection by default
2026-03-06 14:13:36 +08:00
DennisYu07
79939e8ebe
Merge pull request #1988 from QwenLM/feat/hook-stop-implementation
Some checks are pending
Qwen Code CI / CodeQL (push) Waiting to run
Qwen Code CI / Lint (push) Waiting to run
Qwen Code CI / Test (push) Blocked by required conditions
Qwen Code CI / Test-1 (push) Blocked by required conditions
Qwen Code CI / Test-2 (push) Blocked by required conditions
Qwen Code CI / Test-3 (push) Blocked by required conditions
Qwen Code CI / Test-4 (push) Blocked by required conditions
Qwen Code CI / Test-5 (push) Blocked by required conditions
Qwen Code CI / Test-6 (push) Blocked by required conditions
Qwen Code CI / Test-7 (push) Blocked by required conditions
Qwen Code CI / Test-8 (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
E2E Tests / E2E Test - macOS (push) Waiting to run
feat(hooks): Implement hooks system infrastructure with CLI and UI management
2026-03-06 12:59:16 +08:00
顾盼
881bef1ad2
Merge pull request #2082 from zy6p/fix/2062-preserve-default-agents-context-loading
fix(cli): keep AGENTS.md enabled by default context reset
2026-03-06 11:58:03 +08:00
tanzhenxin
076f4c9afa
Merge pull request #2037 from QwenLM/mingholy/refactor/settings-migration
Refactor settings migration to sequential framework with atomic file writes
2026-03-06 11:17:33 +08:00
tanzhenxin
b48e3caa75 feat(shell): enable PTY by default and various enhancements
### Shell & Interactive Terminal Improvements
- PTY shell is now enabled by default instead of disabled
- Improved shell output rendering, process termination, and added fallback warning
- Background commands now properly capture subprocess PIDs on non-Windows

### Coding Plan Improvements
- Simplified auth message, added /model tip, improved system info display
- Reordered model list to prioritize glm-5, kimi-k2.5, MiniMax-M2.5
- Model selection is now preserved when updating if the model still exists

### Other Changes
- Added shared symlink utility; debug logs now have latest alias
- Unknown settings warnings go to debug log instead of user-facing warnings
- Fixed subagent confirmation state detection
- Removed debug UI from AgentCreationWizard

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-05 11:28:13 +08:00
zy6p
d7d2ffb304 fix: follow review for default context filename handling 2026-03-05 10:33:52 +08:00
tanzhenxin
396248e296 fix(core): remove LLM-based loop detection and enable skipLoopDetection by default
The LLM-based loop detection was causing issues where the process would
stop unexpectedly. This change removes the LLM-based loop detection
feature entirely and sets skipLoopDetection to true by default to
prevent false positives from interrupting user sessions.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-04 23:21:04 +08:00
LaZzyMan
eeb4d85785 feat(permissions): add permission system and rename folder trust command 2026-03-04 19:24:43 +08:00
zy6p
0c155768df fix(cli): keep AGENTS.md in default context file set 2026-03-04 16:22:18 +08:00
DennisYu07
7cde98e238 move enable/disable to hooksConfig 2026-03-02 23:57:12 -08:00
DennisYu07
7b0929d00c add integration test and --experimental-hooks 2026-03-02 19:05:28 -08:00
DennisYu07
e4e21bb6b7 resolve comment 2026-03-02 06:11:11 -08:00
DennisYu07
74e1bf17d6 remove conflict experimental 2026-03-02 03:50:37 -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
74f5b76754
Merge pull request #1993 from zhangxy-zju/fix/subagent-output-language
fix(subagent): append output-language.md to subagent system prompt and prioritize project-level settings
2026-03-02 17:08:52 +08:00
mingholy.lmh
d38077423d refactor: use pre-defined utils 2026-03-02 12:38:26 +08:00
DennisYu07
4b18cfe3f3 Revert "implementation 10 hooks"
This reverts commit c9126e043f.
2026-03-01 17:58:11 -08:00
DennisYu07
c9126e043f implementation 10 hooks 2026-03-01 17:50:48 -08:00
mingholy.lmh
ae8c0d3d4e refactor(settings): sequential settings migration 2026-03-02 00:12:51 +08:00
DennisYu07
1ce5bfb629 resole conflict and remove hook extension definition 2026-02-27 17:58:07 -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
沐目
127a7dc3c2 fix(subagent): append output-language.md to subagent system prompt and prioritize project-level settings
- SubAgentScope now automatically appends global memory (including QWEN.md and output-language.md) to its system prompt, ensuring subagents respect project conventions and language preferences.
- The CLI config loader now checks for `.qwen/output-language.md` in the project directory before falling back to the global `~/.qwen/output-language.md`, allowing project-specific language settings.

Made-with: Cursor
2026-02-27 20:01:22 +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
mingholy.lmh
42a5b4d1e0 fix: add model resolution warnings to start warnings 2026-02-26 14:43:07 +08:00
mingholy.lmh
740f4e0949 fix: remove test code and switch-mode 2026-02-26 14:43:07 +08:00
qwen-code-ci-bot
ae6716c651 refactor: merge coder-model and qwen3.5-plus, remove vision model switching
- Merge coder-model and qwen3.5-plus into a single coder-model with vision capability
- Remove vlmSwitchMode CLI argument and experimental.vlmSwitchMode setting
- Remove useVisionAutoSwitch hook and inline image format checking into useGeminiStream
- Remove ModelSwitchDialog and related vision switch UI components
- Update all related tests to reflect the simplified model structure
- Set DEFAULT_QWEN_MODEL to coder-model

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-26 14:43:07 +08:00
LaZzyMan
1542a2bdc4 Merge branch 'main' into feat/mcp-tui 2026-02-25 16:31:42 +08:00
LaZzyMan
c504cc0c6b feat(mcp): update i18n locales and tests for MCP TUI 2026-02-25 16:28:29 +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
DennisYu07
fdc47c4597 rename event 2026-02-22 05:30:03 -08:00
DennisYu07
43d64e26ca refactor stop hook 2026-02-22 02:20:45 -08:00
mingholy.lmh
9daf20f3c7 refactor: rename session-id to sessionId for consistency in CLI argument handling 2026-02-13 22:05:38 +08:00
mingholy.lmh
82dc79629c feat: enhance session ID handling and error propagation 2026-02-13 21:41:38 +08:00
mingholy.lmh
5d939fdb83 feat: add --session-id support for CLI and SDK
- Add --session-id flag to CLI for specifying custom session ID
- Add sessionId option to SDK QueryOptions
- Implement UUID validation for session IDs
- Pass session ID from SDK to CLI via --session-id argument
- Add integration tests for session-id functionality
- Update unit tests for ProcessTransport

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-13 21:40:57 +08:00
LaZzyMan
428901f136 fix: correct showLineNumbers default value to true
- Changed default value from false to true in settingsSchema.ts
- This aligns the schema with the actual code behavior (?? true fallback)
- Matches documentation and test expectations
- Resolves inconsistency reported in issue #1764

Fixes #1764
2026-02-12 11:42:58 +08:00
mingholy.lmh
a8a05188cb feat(coding-plan): implement Coding Plan configuration management and update prompts 2026-02-11 16:18:23 +08:00
pomelo-nwu
8b3aeb4550 refactor: unify sandbox configuration naming and improve telemetry config
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-11 11:08:15 +08:00
LaZzyMan
56030f9291 Merge branch 'main' into feat/image-attachment 2026-02-10 14:16:21 +08:00