fix(cli): support CRLF and UTF-8 BOM in markdown frontmatter#2
Open
fix(cli): support CRLF and UTF-8 BOM in markdown frontmatter#2
Conversation
…n matching Fixes QwenLM#1760 Windows file system is case-insensitive (e:\work equals E:\work), but string hashing is case-sensitive, causing different session directories for the same physical path. Solution: normalize paths to lowercase on Windows before hashing to ensure consistent session directory across different case variations.
Ensures consistent Windows path normalization across all path hashing. Previously Storage used its own getFilePathHash() which didn't apply Windows lowercase normalization, causing test failures on Windows CI.
- Add HTML template for insights display. - Create JavaScript application logic for rendering insights. - Introduce CSS styles for layout and design. - Develop a test generator for validating the static insight generator. - Define TypeScript interfaces for structured insight data. - Refactor insight command to generate insights and open in browser. - Remove the need for a server process by generating static files directly.
- Refine DataProcessor and StaticInsightGenerator logic - Update StaticInsightTypes definitions - Enhance insight command implementation - Update package dependencies
- Add backupSettingsFile() utility to create .orig backup before modifying settings - Update success message to indicate backup was created - Sync i18n translations for all supported languages - Update documentation to reflect the change 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>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Remove unused npmCommand variable from build.mjs - Add no-undef and .mjs file support to web-templates eslint config Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
chore: bump version to 0.11.0
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
feat: Add insight command for personalized programming insights
The test 'blocks write tools in plan mode' was failing because the model would attempt to exit plan mode via exit_plan_mode tool. By cancelling switch_mode tool calls in the permission handler, we ensure plan mode stays active throughout the test. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
fix(test): keep plan mode active during ACP integration test
- Update integration test environment variable name - Ensure sandbox container naming works correctly with new variable Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Corrected the file path in commands.md mapping table from '<project>/commands/git/commit.md' to '<project>/.qwen/commands/git/commit.md' - Removed trailing blank line in sandbox.md code block Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
docs: fix documentation errors in commands and model-providers - 测试通过 `<project>/git/commit.md` → `<project>/.qwen/commands/git/commit.md)` - 修复 develoers/sandbox 文档格式显示问题,代码块显示混乱
Merge coder-model and qwen3.5-plus, remove vision auto-switching
Rename GEMINI_CLI_INTEGRATION_TEST to QWEN_CODE_INTEGRATION_TEST and refactor sandbox user handling
feat(auth): add automatic backup of settings.json before auth modification
…eFolders-capability fix: change workspaceFolders capability to boolean for LSP servers
…e-pr fix: unblock input after ESC cancel
- Add weighted tip system to make certain tips appear more frequently - Set /insight tip to weight 3 (3x more likely than regular tips) - Add i18n translations for the new tip across all supported languages - Add comprehensive unit tests for weighted tip selection Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
…sure feat(cli): Increase /insight feature exposure via weighted tips
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
chore: bump version to 0.11.1
…ol args Fixes QwenLM#2032 The model sometimes adds spaces between Chinese characters and numbers in file paths, causing file read failures (e.g., '测试 1 文件.txt' instead of '测试1文件.txt'). This fix sanitizes tool arguments by removing such spaces before processing. Changes: - Added sanitizeToolArgs() function in turn.ts and subagent.ts - Applied sanitization to all tool arguments before creating ToolCallRequestInfo
Fixes QwenLM#2004 When users type '@' in large projects, the file crawler scans the entire project directory which can cause OOM crashes if there are too many files. This fix adds a maxFiles limit (default 100,000) to the crawler to prevent memory issues. When the limit is exceeded, a warning is shown and only the first N files are used. Changes: - Added maxFiles option to CrawlOptions interface - Added file count check and limit in crawl() function - Shows warning when project has too many files
…mpatibility Fixes QwenLM#2058 On Windows, files typically use CRLF (\r\n) line endings, but the model may provide edit strings with CRLF that don't match the normalized file content. This fix normalizes both old_string and new_string to use LF line endings before processing, ensuring consistent matching on all platforms.
…tter Fixes QwenLM#2053 On Windows, markdown command files often use CRLF line endings and may have UTF-8 BOM. The previous regex only matched LF line endings, causing frontmatter parsing to fail. Changes: - Remove UTF-8 BOM before parsing - Update regex to support both LF and CRLF line endings - Add test cases for Windows scenarios Tested: - CRLF line endings - UTF-8 BOM - Combined CRLF + UTF-8 BOM
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
Fixes QwenLM#2054 When tools array is empty, the DashScope API returns error about tools being too short. Changes: - Filter out empty tools arrays in addDashScopeCacheControl - Exclude tools from request spread to avoid overriding processed tools - Only include tools param when array has items Tested with 43 tests including new cases for empty and non-empty tools.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes QwenLM#2053
Problem
On Windows, markdown command files with YAML frontmatter were not being parsed correctly because:
This caused the UI to display generic 'Custom command from {{filename}}.md' instead of the actual description.
Solution
Changes
Testing
All 13 tests pass including 3 new Windows-specific test cases.