* fix(editor): detect Zed.app on macOS when CLI is not in PATH
On macOS, Zed editor is typically installed via Homebrew or direct download,
but the CLI command 'zed' is not automatically added to PATH.
This fix adds detection for Zed.app bundle at:
- /Applications/Zed.app
- ~/Applications/Zed.app
When the CLI is not found but the app bundle exists, the code now falls back
to using the CLI inside the app bundle at Contents/MacOS/zed.
Fixes#3287
* fix(editor): use shared getEditorExecutable in useLaunchEditor
- Export getEditorExecutable() from editor.ts for use by both getDiffCommand and useLaunchEditor
- Updated useLaunchEditor.ts to use getEditorExecutable instead of its own implementation
- Updated tests to be platform-agnostic for macOS app bundle path testing
- Fixes: Zed on macOS is now detected when installed via app bundle (not just CLI in PATH)
* fix(editor): use correct Zed CLI path (Contents/MacOS/cli)
- Changed from Contents/MacOS/zed (GUI binary) to Contents/MacOS/cli (actual CLI)
- The GUI binary does not support --wait/--diff flags
- Updated tests to verify correct CLI path with regex matching for cross-platform
* style(editor): fix prettier trailing whitespace issues
Trailing spaces and array line-wrapping in zed macOS detection code.
* fix(editor): return null when editor not found + remove unused var
- getEditorExecutable now returns null (not fallback string) so
useLaunchEditor error handling actually works
- remove unused getAppBundleCliPath in test file (typecheck fix)
* fix: add vitest globals to eslint config for test files
* fix: remove duplicate empty test with orphan toEqual call
* fix: resolve ESLint errors in editor.test.ts (arrow-body-style, no-useless-escape)
* chore: remove debug script check_braces.js
* fix: sync checkHasEditorType with getEditorExecutable, remove pr-body.md
- Replace zedAppExists() check in checkHasEditorType with
getEditorExecutable() !== null, keeping availability detection
and execution in sync (fixes partial install false positive)
- Remove unused zedAppExists() function
- Remove scratch file pr-body.md
* fix(editor): defer os.homedir() call to avoid breaking tests with incomplete node:os mocks
The zedMacOsPaths constant was calling homedir() at module initialization
time, which caused 'homedir is not a function' errors in CLI test files
(systemInfo.test.ts, shellCommandProcessor.test.ts) that mock node:os
without providing a homedir mock.
Fix: convert zedMacOsPaths from a constant to a lazy function
getZedAppPaths() that computes the paths only when called.
---------
Co-authored-by: lamb <906276457@qq.com>
- Add test-engineer agent for bug reproduction and verification
- Add /qc:bugfix command for structured bugfix workflow
- Add e2e-testing skill covering headless/interactive modes, MCP testing
- Add structured-debugging skill for hypothesis-driven debugging
- Simplify AGENTS.md to focus on essential commands and conventions
- Add terminal-capture scenario for bugfix workflow testing
- Add .qwen folder to ESLint ignore list
Known limitations: The /qc:bugfix workflow and e2e-testing skill
are experimental and may be unstable or consume significant tokens.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add PairingStore for managing pending requests and approved users
- Update SenderGate to support pairing policy with code generation
- Add CLI commands: `qwen channel pairing list/approve`
- Document pairing flow with rules and usage examples
This allows unknown senders to request access via a pairing code
that the bot operator approves through the CLI.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Moves export-html and insight templates from cli/assets to a new
dedicated web-templates package. Updates Dockerfile and build scripts
to use consolidated bundle/prepare:package/pack workflow.
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>
- Add 'no-console': 'error' to main source files (packages/core/src, packages/cli/src)
- Configure targeted allowlist for:
- Test files and scripts
- VS Code extension (out of scope)
- WebUI package (UI component library)
- Integration tests
- Intentionally excluded files (acpAgent.ts, stdioHelpers.ts)
- Consolidate no-console overrides into a single clearly-marked section
- Enforced in CI via npm run lint:ci
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit includes several updates:
- Updated eslint configuration with improved formatting and organization
- Added SaveMemoryToolCall support in vscode-ide-companion
- Translated Chinese comments and UI text to English in various components
- Made minor code formatting improvements across multiple files
- Introduced a new logging system with adjustable log levels (debug, info, warn, error).
- Updated query options to include a logLevel parameter for controlling verbosity.
- Refactored existing code to utilize the new logging system for better error handling and debugging.
- Cleaned up unused code and improved the structure of the SDK.