diff --git a/package-lock.json b/package-lock.json index bcc891fe..ff815db9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@qwen-code/qwen-code", - "version": "0.4.0", + "version": "0.4.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@qwen-code/qwen-code", - "version": "0.4.0", + "version": "0.4.1", "workspaces": [ "packages/*" ], @@ -17493,7 +17493,7 @@ }, "packages/cli": { "name": "@qwen-code/qwen-code", - "version": "0.4.0", + "version": "0.4.1", "dependencies": { "@google/genai": "1.16.0", "@iarna/toml": "^2.2.5", @@ -17608,7 +17608,7 @@ }, "packages/core": { "name": "@qwen-code/qwen-code-core", - "version": "0.4.0", + "version": "0.4.1", "hasInstallScript": true, "dependencies": { "@google/genai": "1.16.0", @@ -20177,7 +20177,7 @@ }, "packages/test-utils": { "name": "@qwen-code/qwen-code-test-utils", - "version": "0.4.0", + "version": "0.4.1", "dev": true, "license": "Apache-2.0", "devDependencies": { diff --git a/package.json b/package.json index 563de8f7..4049e208 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/qwen-code", - "version": "0.4.0", + "version": "0.4.1", "engines": { "node": ">=20.0.0" }, @@ -13,7 +13,7 @@ "url": "git+https://github.com/QwenLM/qwen-code.git" }, "config": { - "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.4.0" + "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.4.1" }, "scripts": { "start": "cross-env node scripts/start.js", diff --git a/packages/cli/package.json b/packages/cli/package.json index 5ad51028..5571db1f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/qwen-code", - "version": "0.4.0", + "version": "0.4.1", "description": "Qwen Code", "repository": { "type": "git", @@ -33,7 +33,7 @@ "dist" ], "config": { - "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.4.0" + "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.4.1" }, "dependencies": { "@google/genai": "1.16.0", diff --git a/packages/core/package.json b/packages/core/package.json index 1a07067b..0cd64ea8 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/qwen-code-core", - "version": "0.4.0", + "version": "0.4.1", "description": "Qwen Code Core", "repository": { "type": "git", diff --git a/packages/core/src/utils/systemEncoding.test.ts b/packages/core/src/utils/systemEncoding.test.ts index bb594dd1..61558f38 100644 --- a/packages/core/src/utils/systemEncoding.test.ts +++ b/packages/core/src/utils/systemEncoding.test.ts @@ -391,6 +391,19 @@ describe('Shell Command Processor - Encoding Functions', () => { expect(result).toBe('windows-1252'); }); + it('should prioritize UTF-8 detection over Windows system encoding', () => { + mockedOsPlatform.mockReturnValue('win32'); + mockedExecSync.mockReturnValue('Active code page: 936'); // GBK + + const buffer = Buffer.from('test'); + // Mock chardet to return UTF-8 + mockedChardetDetect.mockReturnValue('UTF-8'); + + const result = getCachedEncodingForBuffer(buffer); + + expect(result).toBe('utf-8'); + }); + it('should cache null system encoding result', () => { // Reset the cache specifically for this test resetEncodingCache(); diff --git a/packages/core/src/utils/systemEncoding.ts b/packages/core/src/utils/systemEncoding.ts index 4f43b24a..d76bdbab 100644 --- a/packages/core/src/utils/systemEncoding.ts +++ b/packages/core/src/utils/systemEncoding.ts @@ -34,6 +34,15 @@ export function getCachedEncodingForBuffer(buffer: Buffer): string { // If we have a cached system encoding, use it if (cachedSystemEncoding) { + // If the system encoding is not UTF-8 (e.g. Windows CP936), but the buffer + // is detected as UTF-8, prefer UTF-8. This handles tools like 'git' which + // often output UTF-8 regardless of the system code page. + if (cachedSystemEncoding !== 'utf-8') { + const detected = detectEncodingFromBuffer(buffer); + if (detected === 'utf-8') { + return 'utf-8'; + } + } return cachedSystemEncoding; } diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index a8a6ead2..7365c059 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@qwen-code/qwen-code-test-utils", - "version": "0.4.0", + "version": "0.4.1", "private": true, "main": "src/index.ts", "license": "Apache-2.0",