Rename ArenaWorktreeConfig → WorktreeSetupConfig, setupArenaWorktrees →
setupWorktrees, cleanupArenaSession → cleanupSession, etc. Change default
storage path from ~/.qwen/arena/ to ~/.qwen/worktrees/ and branch prefix
from arena/ to worktrees/. Add branchPrefix and metadata options for
flexibility. Remove auto-repo-init behavior; fail fast instead.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Add AgentViewContext, AgentTabBar, and AgentChatView components for tab-based
agent switching. Add useArenaInProcess hook bridging ArenaManager events to
React state. Add agentHistoryAdapter converting AgentMessage[] to HistoryItem[].
Core support changes:
- Replace stream buffers with ROUND_TEXT events (complete round text)
- Add TOOL_OUTPUT_UPDATE events for live tool output streaming
- Add pendingApprovals/liveOutputs/shellPids state to AgentInteractive
- Fix missing ROUND_END emission for final text rounds
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Added qwen3-coder-next model to the Global/Intl Coding Plan template
- Removed thinking mode from qwen3-coder-next (both China and Global regions)
- Updated test expectations to reflect the new model count
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Added glm-4.7 and kimi-k2.5 to the Global/Intl region template
- Excluded qwen3-coder-next as it's not yet supported internationally
- Both models configured with thinking enabled
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- 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>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Add InProcessBackend to run subagents in-process rather than via subprocess,
enabling faster initialization and better resource management for agent
collaboration arenas.
Key changes:
- Add InProcessBackend with sandboxed in-process agent execution
- Refactor agent runtime into headless vs interactive modes
- Add AsyncMessageQueue utility for agent message passing
- Update ArenaManager with backend selection (in-process vs subprocess)
- Refactor subagent types/exports; consolidate in subagents/types
- Remove deprecated agent-hooks.ts (functionality merged into runtime)
- Update task tool to support new agent lifecycle
Breaking: Subagent type exports restructured; import from subagents/types
- Rename SubAgentScope → AgentHeadless and runNonInteractive → execute
- Move agents-collab/ into agents/ with new runtime/ subdirectory
- Split subagent.ts into agent-core.ts and agent-headless.ts
- Update all event types, emitters, and statistics classes
BREAKING CHANGE: SubAgentScope renamed to AgentHeadless;
runNonInteractive() renamed to execute()
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add qwen3.5-plus configuration for both China and Global regions
- Update README with qwen3.5-plus setup instructions
- Fix Coding Plan console URL for international users
- Update tests for new model count
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- 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>
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>