fix(cli): support CRLF and UTF-8 BOM in markdown frontmatter#2095
Closed
echoVic wants to merge 5 commits intoQwenLM:mainfrom
Closed
fix(cli): support CRLF and UTF-8 BOM in markdown frontmatter#2095echoVic wants to merge 5 commits intoQwenLM:mainfrom
echoVic wants to merge 5 commits intoQwenLM:mainfrom
Conversation
added 5 commits
March 2, 2026 17:07
…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
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.
Collaborator
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 #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
Testing