- Introduce AgentStatus.IDLE for agents that finished work but can accept follow-up messages
- Add isSettledStatus() helper to check if agent is settled (IDLE or terminal)
- Update ArenaManager to transition to IDLE after agents finish initial task
- Keep agent tabs visible when session is IDLE so users can continue interacting
- Fix listener cleanup to not detach on IDLE (agents remain alive)
- Update tests to expect 'idle' status after successful completion
This enables the arena collaboration feature where agents can receive
additional tasks after completing their initial work.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The test was failing because readFile returns content with a trailing
newline, causing '1.0.1\n' to not equal '1.0.1' with toBe.
Using toContain handles this gracefully.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The tests used fixed wait times (200ms) that were too close to the
auto-advance timeout (150ms). In CI environments (especially Windows
with Node 20), timing can be less predictable due to event loop
scheduling differences, causing race conditions.
Changes:
- Increased wait(200) to wait(300) for auto-advance tests
- Increased wait() to wait(100) for navigation tests in custom input state test
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Use consistent kebab-case prefix 'qwen-code.' for all view IDs
- Update package.json views and viewsContainers to match new naming
- Add fine-grained activationEvents for views and commands
- Add test verifying all three view positions are registered correctly
This ensures consistent naming across commands, views, and containers.
When discovering OAuth configuration for MCP servers, the scopes_supported
field from Protected Resource Metadata was being ignored. According to
RFC 9728, Protected Resource Metadata defines scopes specific to that
resource, which should take precedence over Authorization Server Metadata
scopes.
This fix ensures that scopes from Protected Resource Metadata are used
when available, while maintaining backward compatibility by falling back
to Authorization Server Metadata scopes.
Fixes OAuth authorization links missing scope parameter for ModelScope
MCP server.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Use 8-char short names derived from session UUID for worktrees
- Fix cleanup to use short worktreeDirName
- Simplify model display names (remove authType prefix)
- Improve messaging when <2 models available
- Show agent worktree paths in startup output
Prevents long path issues and provides clearer model setup guidance.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add extractSessionListItems() utility for robust ACP response parsing
- Refactor getSessionList() and getSessionListPaged() to use the new utility
- Add openNewChatTabCommand to create new session when opening chat tab
- Add comprehensive test coverage for session list extraction
Co-authored-by: ZZAoYe <zzbuaoye@gmail.com>
Add agents.displayMode, arena/team/swarm settings, and refactor
acpAgent to use local ApprovalModeValue type.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- In ACP mode: allow ask_user_question in YOLO mode (user must respond)
- In ACP mode: allow ask_user_question in plan mode for clarifications
- Hide footer when confirmation dialog is active
- Fix tab index overflow with functional state updates
- Fix ask_user_question detection in VSCode companion (use rawInput)
- Add cleanup for pending ACP promises on panel/provider dispose
- Use theme.text.accent consistently for highlighted elements
- Remove unused 'answers' param from AskUserQuestionParams
This ensures users can always respond to clarification questions
in ACP mode regardless of approval mode, and improves dialog UX.
Guard the setTimeout callback in captureTab() against panel being
disposed or replaced before the deferred callback runs. Capture a
reference to the current panel before the timeout and verify it is
still the active panel inside the callback.
Co-authored-by: ZZBuAoYe <zzbuaoye@gmail.com>
- Guard captureTab() setTimeout callback against panel dispose/replace
that can occur before the deferred callback runs
- Add AcpConnection.resetSessionState() to clear session without
disconnecting the child process
- Add QwenAgentManager.clearCurrentSession() so sidebar/panel views
can force creation of a fresh session
Co-authored-by: ZZBuAoYe <zzbuaoye@gmail.com>
All chat positions (sidebar, editor tab, panel, secondary sidebar) are now
available simultaneously. Remove the old chat.location configuration and
setChatLocation commands. Add focusChat, newConversation, and showLogs commands.
Refactor ChatWebviewViewProvider to use lazy factory pattern and move webview
files into providers/ subdirectory.