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>
- 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>
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>
Improve the detectFileBOM method to handle edge cases better:
1. Add length check before accessing first character
- Prevents potential issues with empty strings
- Makes the intent explicit and defensive
2. Use codePointAt() instead of charCodeAt()
- Better Unicode support for characters beyond BMP
- More modern API for Unicode code point handling
This change maintains the same functionality while being more
robust and explicit about edge case handling.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- 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>
- Introduced AskUserQuestionDialog component for displaying questions and collecting user responses in the WebView.
- Updated ACP integration to handle ask user question requests and responses.
- Enhanced session management to include raw input and answers for user questions.
- Modified existing tools and services to support new ask user question feature.
- Updated types and message handling to accommodate new question structure and responses.
- 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>
- 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.
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>
- 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>
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>
- 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 #1764Fixes#1764
- 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
- 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
Add Twitter/X-optimized share card component for exporting insights as an
image. Include Vite dev setup for local development with hot reload. Increase
DataProcessor timeout and concurrency for better reliability with large
datasets.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Use Promise.race in handleSlashCommand so ESC abort immediately
unblocks the submitQuery await chain (fixes /compress blocking input)
- Suppress abort error messages in /compress and /summary when
cancelled via ESC (cancelSlashCommand already shows "Command cancelled")
- Add "(esc to cancel)" hint below pending slash command items
- Add i18n translations for the new hint in all 6 locales