Commit graph

4838 commits

Author SHA1 Message Date
mingholy.lmh
82dc79629c feat: enhance session ID handling and error propagation 2026-02-13 21:41:38 +08:00
mingholy.lmh
51760fe3a6 fix: ci errors 2026-02-13 21:40:58 +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
Mingholy
e8259092c6
Merge pull request #1823 from QwenLM/mingholy/fix/text-color
Fix auth UI to use semantic theme colors and correct selection sync
2026-02-13 21:39:54 +08:00
Mingholy
ffa2d89ecd
Merge pull request #1824 from QwenLM/mingholy/fix/esc-interrupt
refactor(cli): unify Escape key handling in AppContainer
2026-02-13 21:39:11 +08:00
Mingholy
f12c9edd20
Merge pull request #1825 from QwenLM/mingholy/fix/subagent-memory-leak
Fix abort listener accumulation in subagent while loop
2026-02-13 21:39:02 +08:00
tanzhenxin
597c9dc846
Merge pull request #1784 from QwenLM/fix/dev-debug-config
Some checks are pending
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
Qwen Code CI / CodeQL (push) Waiting to run
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
Add dev launch config and preserve existing NODE_OPTIONS
2026-02-13 21:03:48 +08:00
pomelo
e7e67467e5
Merge pull request #1821 from QwenLM/fix/issue-1818-playwright-mcp-schema
fix: support JSON Schema draft-2020-12 for MCP tools (fixes #1818)
2026-02-13 17:59:56 +08:00
pomelo
b44e978c7d
Merge pull request #1813 from QwenLM/fix/issue-1764-showlinenumbers-default
fix: correct showLineNumbers default value to true
2026-02-13 17:58:43 +08:00
LaZzyMan
fe0ec8049c feat: add MCP management TUI with dynamic enable/disable and runtime updates 2026-02-13 17:54:04 +08:00
pomelo
001d0103f3
Merge pull request #1791 from wenshao/feat/tpm-throttling-retry
feat: add TPM throttling error handling with 1-minute retry delay
2026-02-13 17:34:05 +08:00
DragonnZhang
01c66ca333 feat: add JSON Schema validation for VS Code settings
Add JSON Schema generation for settings.json files to provide IntelliSense
and validation support in VS Code. The schema is automatically generated
from the internal SETTINGS_SCHEMA definition during the build process.

- Add generate-settings-schema.ts script to convert TypeScript schema to JSON Schema
- Add jsonValidation contribution to vscode-ide-companion package.json
- Include schemas directory in .vscodeignore for packaging
- Integrate schema generation into build process

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-13 17:32:18 +08:00
DragonnZhang
fbbe21da67 feat: Add permission options for 'ask_user_question' confirmation 2026-02-13 17:24:35 +08:00
pomelo-nwu
77fd945474 feat: add /context command to display context window token usage breakdown
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-13 16:36:50 +08:00
DragonnZhang
197d26c07a feat: Add internationalization support for Ask User Question Tool in multiple languages 2026-02-13 16:14:14 +08:00
DragonnZhang
35b5bc8a1e feat: Implement AskUserQuestionTool for interactive user queries
- Added AskUserQuestionDialog component for handling user questions in CLI.
- Integrated AskUserQuestionTool into the core toolset, allowing for dynamic user input during execution.
- Enhanced ToolConfirmationMessage to utilize the new AskUserQuestionDialog for 'ask_user_question' type confirmations.
- Updated core configuration to register the AskUserQuestionTool.
- Implemented validation and execution logic for user questions, including multi-select options.
- Added comprehensive tests for AskUserQuestionTool to ensure functionality and validation rules.
- Updated tool names and display names to include AskUserQuestion.
2026-02-13 15:47:58 +08:00
DragonnZhang
12b669d7c6 feat: update .gitignore to include .claude and CLAUDE.md; add project context documentation in QWEN.md 2026-02-13 15:47:58 +08:00
yiliang114
6eb6812f5e feat(core): add rate limit error detection utility
- Extract rate-limit detection into dedicated rateLimit.ts module
- Support detection from ApiError, StructuredError, HttpError, and JSON strings
- Handle common rate-limit codes: 429, 503, 1302 (GLM)
- Simplify retry.ts by removing duplicated detection logic
2026-02-13 15:32:35 +08:00
DragonnZhang
cdcdf85dcd feat: add support for printable CSI-u keys in KeypressContext
Add handling for printable CSI-u keys (including space) to ensure they
behave like regular character input. This allows downstream text inputs
to receive the literal character when using Kitty protocol.

- Parse CSI-u space as space key with literal sequence
- Parse CSI-u printable letters as literal input
- Handle keyCode range 32-0x10ffff (excluding 127 DEL)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-13 15:29:09 +08:00
LaZzyMan
f64f08d8a1 feat: add mcp dialog 2026-02-13 14:38:54 +08:00
顾盼
aefea076b0
Merge pull request #1811 from QwenLM/fix/abort-signal-listener-leak
Some checks are pending
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
Qwen Code CI / CodeQL (push) Waiting to run
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
fix: prevent AbortSignal listener memory leak
2026-02-13 10:35:20 +08:00
mingholy.lmh
48a403407d Fix: Prevent abort listener accumulation in subagent while loop
Move AbortController creation inside while(true) loop to create a new
instance per round. This prevents listeners from accumulating across
multiple rounds which was causing maxListener warnings.

Key changes:
- Create roundAbortController at the start of each loop iteration
- Track current round's controller with currentRoundAbortController
- External abort signal propagates to current round's controller in real-time
- Cleanup external listener and clear reference in finally block

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-12 23:20:44 +08:00
mingholy.lmh
86a358d26d fix: use semantic theme colors instead of hardcoded values in auth UI
- Replace hardcoded Colors.* with theme.* in AuthDialog and ApiKeyInput
- Fix selectedIndex reset when going back from API-KEY sub-view to main view

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-12 20:22:00 +08:00
mingholy.lmh
e7290c5d9a refactor(cli): unify Escape key handling in AppContainer
Consolidate Escape key behavior to improve UX and prevent conflicts:

- Move Escape handling from useGeminiStream to AppContainer
- Input with content: double-press to clear, then single-press to cancel
- Empty input: single-press immediately cancels ongoing request
- Preserve embeddedShellFocused check to allow shell's own escape handling
- Update tests to use cancelOngoingRequest directly instead of simulating keypress

Fixes inconsistent escape behavior between input clearing and request cancellation.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-12 20:20:51 +08:00
yiliang114
0d2e394ef1 fix(openai): tool call cleanup order when fixing streaming errors 2026-02-12 18:09:58 +08:00
yiliang114
85a90b1080 refactor(core): simplify rate limit retry with fixed 60s delay
- Use fixed 60s delay matching DashScope per-minute quota window
- Increase max retries from 3 to 10 to align with Claude Code behavior
- Remove unused isTPMThrottlingError, isGLMRateLimitError, isRateLimitThrottlingError functions
- Simplify getRateLimitRetryInfo to only extract reason, delay is now caller's responsibility

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-12 18:09:31 +08:00
yiliang114
3153ff5caa Merge branch 'main' into feat/tpm-throttling-retry-wenshao 2026-02-12 17:01:18 +08:00
LaZzyMan
3ae2f8f671 fix: support JSON Schema draft-2020-12 for MCP tools (fixes #1818)
- Add Ajv2020 validator to support draft-2020-12 schemas used by playwright-mcp
- Auto-select validator based on $schema field
- Gracefully skip validation when schema compilation fails
- Add comprehensive tests for JSON Schema version support

Reference: gemini-cli implementation pattern
2026-02-12 16:31:01 +08:00
yiliang114
3fb641ca1a feat(core, cli): add rate limit throttling retry with countdown UI
- Refactor retry utility to support GLM rate limit errors (code 1302) and TPM throttling
- Add getRateLimitRetryInfo() for unified rate-limit error detection
- Add exponential backoff for non-TPM rate limit errors
- Extend StreamEventType.RETRY with RetryInfo payload for UI feedback
- Add RetryCountdownMessage component for visual retry countdown
- Update useGeminiStream hook to handle retry events with countdown timer
- Add i18n support for rate limit messages (en/zh)
2026-02-12 16:21:10 +08:00
pomelo
51fdf3c16a
Merge pull request #1819 from QwenLM/fix/installation-script
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
Fix: Fix node installation permission issue in shell script
2026-02-12 16:13:36 +08:00
DennisYu07
6cd07a5f8c fix warning in shell script 2026-02-12 00:01:24 -08:00
DennisYu07
23294b88a2 fix issue in script 2026-02-11 23:43:59 -08:00
DennisYu07
be37ba0fda change staff group for cross platform 2026-02-11 23:26:41 -08:00
DennisYu07
66e3cdfb71 fix warning 2026-02-11 23:08:00 -08:00
DennisYu07
1c38840490 fix installation user permission issue 2026-02-11 23:03:09 -08:00
yiliang114
2394d732c3 Revert "wip"
This reverts commit 9b882b4752.
2026-02-12 13:11:22 +08:00
yiliang114
1c38455190 test(core): add rejection handler to prevent unhandled rejection in TPM throttling test
Add a .catch() handler to the promise before advancing timers to prevent
Node.js from reporting an unhandled rejection when maxAttempts is exhausted
during the TPM throttling retry test.
2026-02-12 12:55:51 +08:00
yiliang114
9b882b4752 wip 2026-02-12 12:55:26 +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
yiliang114
c06dbfbd80 fix(ide): add async DNS check for host.docker.internal in container environments
In container environments like code-server where host.docker.internal may
not be configured, the IDE client would fail to connect. This change makes
getIdeServerHost() async and adds a DNS lookup to verify the hostname is
actually resolvable before using it, falling back to 127.0.0.1 if not.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 11:29:04 +08:00
LaZzyMan
785d0ef5b7 fix: enforce plan mode restrictions in ACP sessions (issue #1806)
- Add plan mode enforcement in Session.runTool to block write tools
- Align ACP behavior with CoreToolScheduler plan mode logic
- Add test case to verify write tools are blocked in plan mode
- Fixes #1806
2026-02-12 11:29:02 +08:00
LaZzyMan
3f04217458 fix: prevent AbortSignal listener memory leak
- Add abort listener cleanup in Query.close() to prevent memory leak
- Add abort listener cleanup in ControlDispatcher.shutdown()
- Remove AbortController recreation in Session.handleInterrupt()

This fixes the MaxListenersExceededWarning that occurred when:
- Creating 11+ Query instances in SDK/non-interactive mode
- Multiple user interrupts (Ctrl+C) in interactive mode
- Intensive control request scenarios
2026-02-12 10:39:19 +08:00
yiliang114
aef292125a test(core): fix type assertion in pipeline test for error_finish chunk
- Change 'as' to 'as unknown as' for proper type casting
2026-02-11 21:28:30 +08:00
DennisYu07
8355c96cf1 fix installation script 2026-02-11 05:23:55 -08:00
yiliang114
e00ee9d45b refactor(core): prioritize TPM throttling check over shouldRetryOnError
- Move TPM throttling check before shouldRetryOnError to ensure TPM errors
  without standard HTTP status codes are still retried
- Add comprehensive unit tests for edge cases:
  - TPM error without status property
  - Nested TPM error object without top-level status
  - Consecutive TPM throttling errors
  - Max attempts exhaustion for TPM errors
2026-02-11 21:17:52 +08:00
yiliang114
e9d2ead38f refactor(core): simplify TPM throttling error detection logic
- Remove redundant error checking logic in isTPMThrottlingError function
- Reuse isStructuredError and isApiError utilities from quotaErrorDetection module
- Clean up duplicate import statements
2026-02-11 20:42:20 +08:00
yiliang114
93a131dd7b Handle TPM throttling in stream retries 2026-02-11 20:39:46 +08:00
Mingholy
fb9f3fb4dc
Merge pull request #1808 from QwenLM/chore/v0.10.1
Some checks are pending
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
Qwen Code CI / CodeQL (push) Waiting to run
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
chore: bump version to 0.10.1
2026-02-11 19:24:44 +08:00
mingholy.lmh
cc4ad12e06 chore: bump version to 0.10.1
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-11 19:22:31 +08:00
DragonnZhang
2421bb185b feat(insight): refactor prompts and integrate dynamic prompt retrieval 2026-02-11 19:01:47 +08:00