Commit graph

3109 commits

Author SHA1 Message Date
tanzhenxin
193bc438bd feat(arena): Persist arena events to chat history and add progress updates
- Replace SESSION_WARNING with SESSION_UPDATE supporting info/warning types
- Emit setup progress messages from ArenaManager during agent initialization
- Record all arena UI events to session JSONL for chat history replay
- Clean up unused agent event types (stream, tool calls, stats)
- Update arena select/stop dialogs to record their output

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-18 14:33:37 +08:00
tanzhenxin
6b55c8161f feat(arena): Add agent collaboration arena feature
Introduces a new Arena system for running multiple AI agents in parallel
terminal sessions with support for iTerm and Tmux backends.

Core:
- Add ArenaManager and ArenaAgentClient for orchestrating multi-agent sessions
- Add terminal backends (ITermBackend, TmuxBackend) with feature detection
- Add git worktree service for isolated agent workspaces
- Add arena event system for real-time status updates

CLI:
- Add /arena command with start, stop, status, and select subcommands
- Add Arena dialogs (Select, Start, Status, Stop)
- Add ArenaCards component for displaying parallel agent outputs
- Consolidate message components into StatusMessages and ConversationMessages
- Add MultiSelect component for agent selection

Config:
- Add arena-related settings to schema and config

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-18 10:51:35 +08:00
Mingholy
6bc37c6c23
Merge pull request #1860 from QwenLM/fix-intl-coding-plan
Add Coding Plan Global/Intl region support
2026-02-18 09:44:13 +08:00
Mingholy
8fe60daa46
Merge pull request #1843 from QwenLM/mingholy/fix/sandbox-sdk-e2e
Fix sandbox user permission in integration tests
2026-02-18 09:24:04 +08:00
mingholy.lmh
78a4ab1b48 fix(cli): update regionName format from 'Bailian Coding Plan (Global/Intl)' to 'Coding Plan (Bailian, Global/Intl)'
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-18 09:21:16 +08:00
mingholy.lmh
c1789a0458 fix(cli): update Coding Plan Global/Intl labels and fix description logic
- Fix AuthDialog to show correct description for coding-plan-intl mode
- Update i18n keys from 'Coding Plan (Bailian, Global/Intl)' to 'Bailian Coding Plan (Global/Intl)'
- Sync translations across all locales (en, zh, de, ja, pt, ru)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-18 08:29:34 +08:00
mingholy.lmh
39360dc058 feat(cli): add Coding Plan Global/Intl region support
Add support for Coding Plan international region with separate base URL:
- Add CodingPlanRegion enum (CHINA, GLOBAL) for region management
- Add CODING_PLAN_INTL_MODELS template with intl base URL
- Add version storage for both regions (codingPlan.version/versionIntl)
- Update AuthDialog to show both region options
- Update useCodingPlanUpdates to handle region-specific updates
- Add i18n translations for all supported languages
- Fix and update unit tests

Users can now choose between:
- Coding Plan (Bailian, China) - https://coding.dashscope.aliyuncs.com/v1
- Coding Plan (Bailian, Global/Intl) - https://coding-intl.dashscope.aliyuncs.com/v1

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-17 20:28:46 +08:00
pomelo-nwu
0f842f4733 feat(models): add Qwen 3.5 Plus model support with updated descriptions and token limits
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-16 16:52:42 +08:00
mingholy.lmh
07b97282aa chore: bump version to 0.10.2
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-15 11:51:04 +08:00
mingholy.lmh
020c78b43b fix: update mail 2026-02-15 11:45:35 +08:00
mingholy.lmh
ee5e47bb5f fix: sandbox user permission in integration tests
- Allow SANDBOX_SET_UID_GID to control user identity in integration tests
- Fix project naming from gemini-cli to qwen-code
- Use random UUID in tests to avoid conflicts

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-15 11:02:32 +08:00
mingholy.lmh
32af4c7157 fix: ts error 2026-02-13 22:12:00 +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
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
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
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
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
顾盼
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
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
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
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
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.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
mingholy.lmh
a5c7f1db3b feat(i18n): add translations for "Configure authentication information for login" in multiple languages 2026-02-11 17:00:43 +08:00
Shaojin Wen
c573c6a743
Update packages/core/src/utils/retry.ts
Co-authored-by: 易良 <1204183885@qq.com>
2026-02-11 16:56:35 +08:00
mingholy.lmh
54d9073cc0 feat(auth): enhance AuthDialog with error handling and update API key link 2026-02-11 16:48:54 +08:00
mingholy.lmh
a8a05188cb feat(coding-plan): implement Coding Plan configuration management and update prompts 2026-02-11 16:18:23 +08:00
mingholy.lmh
5f710b5f6f fix: ui 2026-02-11 11:58:34 +08:00
mingholy.lmh
50e5cf7508 feat(ui): enhance AuthDialog with theming and documentation link 2026-02-11 11:58:34 +08:00
Mingholy
6626745197 fix: type & i18n & ut 2026-02-11 11:58:33 +08:00
mingholy.lmh
b9dd080bd1 feat: add auth entry: coding plan 2026-02-11 11:58:33 +08:00
Mingholy
169ad2d030
Merge pull request #1756 from QwenLM/feat/mcp-progress-updates
feat: add MCP tool progress update support in TUI and SDK mode
2026-02-11 11:07:20 +08:00
Mingholy
f7e3bd0ead
Merge pull request #1773 from QwenLM/fix/auth-model-login-ui
fix(auth-model-login-ui): prevent Enter key from triggering empty message submission
2026-02-11 11:07:11 +08:00