- Strip BOM character (\uFEFF) from content before prepending BOM bytes
- Use FileEncoding.UTF8 constant instead of string literal
- Ensure file descriptor is closed in finally block
- Add test for double BOM prevention
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Prevents workflow failure when some platform VSIXes are already
published (e.g., darwin-arm64, darwin-x64) during retry runs.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Add filtering to block unauthorized tool calls in subagents. When a model
attempts to call a tool not in the allowed tools list, the call is now
blocked and an error is returned instead of executing.
- Pass toolsList to scheduleToolCalls for filtering
- Emit TOOL_CALL and TOOL_RESULT events for blocked calls (for visibility)
- Extract recordToolCallStats helper to reduce duplication
- Add comprehensive test coverage for tool restriction enforcement
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Add support for loading skills from symlinked directories in the skill manager. This allows users to organize and share skills more flexibly by using symbolic links.
Changes:
- Modified skill discovery logic to detect and follow symlinks
- Added validation to ensure symlink targets point to valid directories
- Skip broken or invalid symlinks with appropriate warnings
- Added comprehensive test coverage for symlink scenarios
Remove unconditional trimming of trailing whitespace from newString in
normalizeEditStrings(). This fixes cases where intentional trailing
whitespace (e.g., in multi-line strings, heredocs) was being stripped.
The oldString fuzzy matching still works correctly, and newString is
now preserved exactly as the LLM intended.
Fixes#1618
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
When vitest loads @qwen-code/qwen-code-core from source files (via alias),
ripgrepUtils.ts failed to find the bundled ripgrep binary because it only
handled bundle and transpiled code paths.
Added detection for source file loading (.ts files in src/utils/) to correctly
resolve the vendor path (2 levels up instead of 3).
Also refactored the path resolution logic to be more concise using levelsUp
calculation.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
VSCode IDE Companion depends on @qwen-code/webui, but npm workspaces
build packages in alphabetical order, causing webui to be built after
its dependent.
Fixed by explicitly defining the build order:
1. test-utils
2. core
3. cli
4. webui
5. sdk
6. vscode-ide-companion
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Update license header to include Qwen copyright
- Add error handler for spawn in dev.js
- Refactor core/src/index.ts to export all public APIs
- Simplify core/index.ts to be a clean re-export
- Fix vitest alias to point to package entry
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Edit tool now respects defaultFileEncoding for new files
- Edit tool preserves BOM character for existing files without re-adding
- AcpFileSystemService detects BOM through ACP client with fallback
- Use line: null, limit: 1 for efficient BOM detection
- Add unit tests for AcpFileSystemService.detectFileBOM
- Add unit tests for EditTool BOM handling
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add requestId mechanism to prevent stale async responses from overwriting newer results
- Implement case-insensitive file search with buildCaseInsensitiveGlob method
- Filter gitignored files using FileDiscoveryService integration
- Allow completion list refresh during search by removing query check condition
- Add --experimental-skills CLI argument for qwen connection
- Add unit tests for FileMessageHandler
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove duplicate webui build in vscode-ide-companion (fixes double build)
- Fix misleading [watch] log messages in esbuild.js (only show in watch mode)
- Update vite-plugin-dts to ^4.5.4 for TypeScript 5.8+ support
- Update baseline-browser-mapping to ^2.9.19 to silence outdated data warnings
- Fix vitest config to use @qwen-code/qwen-code-core instead of old gemini-cli-core
- Add resolve.alias in cli vitest.config.ts for source-based testing
- Add npm run dev script for running from TypeScript source without build
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add normalizeSkillFileContent function to skill-load.ts
- Update regex to allow frontmatter ending without trailing newline
- Add comprehensive tests for CRLF, BOM, and edge cases
Fixes#1666
When create_preview_release is enabled, allow the workflow_dispatch version input
to control the preview version (and avoid appending a timestamp if a preview id
is already provided) to match user intent.