From 0a80d21df70c4ad2af73b28e4aad2ed725e2eb75 Mon Sep 17 00:00:00 2001 From: Juwan Date: Wed, 19 Aug 2026 08:23:38 +0800 Subject: [PATCH] fix: strip unused ALL_INPUTS environment variable from Claude subprocess env (#1692) --- base-action/src/parse-sdk-options.ts | 4 ++++ base-action/test/parse-sdk-options.test.ts | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/base-action/src/parse-sdk-options.ts b/base-action/src/parse-sdk-options.ts index 0cd65580..d9a5e74b 100644 --- a/base-action/src/parse-sdk-options.ts +++ b/base-action/src/parse-sdk-options.ts @@ -289,6 +289,10 @@ export function parseSdkOptions(options: ClaudeOptions): ParsedSdkOptions { delete env.ACTIONS_ID_TOKEN_REQUEST_URL; delete env.ACTIONS_ID_TOKEN_REQUEST_TOKEN; + // Remove ALL_INPUTS as it is only needed during initial setup to determine + // input presence (collectActionInputsPresence) and contains serialized workflow inputs. + delete env.ALL_INPUTS; + // Build system prompt option - default to claude_code preset let systemPrompt: SdkOptions["systemPrompt"]; if (options.systemPrompt) { diff --git a/base-action/test/parse-sdk-options.test.ts b/base-action/test/parse-sdk-options.test.ts index fc524e15..25e89020 100644 --- a/base-action/test/parse-sdk-options.test.ts +++ b/base-action/test/parse-sdk-options.test.ts @@ -620,5 +620,22 @@ describe("parseSdkOptions", () => { process.env = originalEnv; } }); + + test("should strip ALL_INPUTS from env", () => { + const originalEnv = { ...process.env }; + process.env.ALL_INPUTS = JSON.stringify({ + anthropic_api_key: "sk-ant-test-key", + github_token: "ghp_test_token", + }); + + try { + const options: ClaudeOptions = {}; + const result = parseSdkOptions(options); + + expect(result.sdkOptions.env?.ALL_INPUTS).toBeUndefined(); + } finally { + process.env = originalEnv; + } + }); }); });