From 46aeec27256d22dcf4d39b9056a4f97e32e97a66 Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 17 Jul 2026 16:09:41 +0800 Subject: [PATCH 1/2] test(cli): isolate sandbox-relaunch tests from ambient QWEN_SANDBOX_IMAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The suite already saves/clears QWEN_SANDBOX/SANDBOX/QWEN_CODE_SIMPLE but not QWEN_SANDBOX_IMAGE. main() treats that env var as a custom sandbox image and takes the custom-image relaunch branch, skipping the host-update capability computation — so 'passes host update capability into a container sandbox' fails (getInstallationInfo never called) in any environment that exports a resolved image, e.g. the autofix runner (its resolve-sandbox-image step appends QWEN_SANDBOX_IMAGE to GITHUB_ENV). This blocked two otherwise-complete verified pushes by the autofix loop. Save/clear/restore it like its siblings. --- packages/cli/src/gemini.test.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/cli/src/gemini.test.tsx b/packages/cli/src/gemini.test.tsx index 8bde98c6d40..9b499af9e91 100644 --- a/packages/cli/src/gemini.test.tsx +++ b/packages/cli/src/gemini.test.tsx @@ -236,6 +236,7 @@ function withLspDisabledConfig( describe('gemini.tsx main function', () => { let originalEnvGeminiSandbox: string | undefined; let originalEnvSandbox: string | undefined; + let originalEnvQwenSandboxImage: string | undefined; let originalEnvQwenCodeSimple: string | undefined; let initialUnhandledRejectionListeners: NodeJS.UnhandledRejectionListener[] = []; @@ -249,9 +250,15 @@ describe('gemini.tsx main function', () => { // Store and clear sandbox-related env variables to ensure a consistent test environment originalEnvGeminiSandbox = process.env['QWEN_SANDBOX']; originalEnvSandbox = process.env['SANDBOX']; + // QWEN_SANDBOX_IMAGE selects the custom-image relaunch branch in main(), + // which skips the host-update capability computation; CI environments that + // export a resolved sandbox image (e.g. the autofix runner) would otherwise + // flip these tests' code path. + originalEnvQwenSandboxImage = process.env['QWEN_SANDBOX_IMAGE']; originalEnvQwenCodeSimple = process.env['QWEN_CODE_SIMPLE']; delete process.env['QWEN_SANDBOX']; delete process.env['SANDBOX']; + delete process.env['QWEN_SANDBOX_IMAGE']; delete process.env['QWEN_CODE_SIMPLE']; initialUnhandledRejectionListeners = @@ -270,6 +277,11 @@ describe('gemini.tsx main function', () => { } else { delete process.env['SANDBOX']; } + if (originalEnvQwenSandboxImage !== undefined) { + process.env['QWEN_SANDBOX_IMAGE'] = originalEnvQwenSandboxImage; + } else { + delete process.env['QWEN_SANDBOX_IMAGE']; + } if (originalEnvQwenCodeSimple !== undefined) { process.env['QWEN_CODE_SIMPLE'] = originalEnvQwenCodeSimple; } else { From 4f1638c5549742c28fe4b8a5da67aee04ed2760c Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 17 Jul 2026 18:43:09 +0800 Subject: [PATCH 2/2] chore: retrigger CI (rerun attempts wedged in queue)