From a3889f92e4ce5ee1f8d1bbe9bea8ba91a8997607 Mon Sep 17 00:00:00 2001 From: Tomas Cupr Date: Sun, 20 Apr 2025 02:00:33 +0200 Subject: [PATCH] fix: `full-auto` support in quiet mode (#374) Fixes https://github.com/openai/codex/issues/292 --------- Co-authored-by: Thibault Sottiaux --- codex-cli/src/cli.tsx | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/codex-cli/src/cli.tsx b/codex-cli/src/cli.tsx index 169ead94..08b95cb8 100644 --- a/codex-cli/src/cli.tsx +++ b/codex-cli/src/cli.tsx @@ -327,9 +327,6 @@ const additionalWritableRoots: ReadonlyArray = ( // If we are running in --quiet mode, do that and exit. const quietMode = Boolean(cli.flags.quiet); -const autoApproveEverything = Boolean( - cli.flags.dangerouslyAutoApproveEverything, -); const fullStdout = Boolean(cli.flags.fullStdout); if (quietMode) { @@ -341,12 +338,19 @@ if (quietMode) { ); process.exit(1); } + + // Determine approval policy for quiet mode based on flags + const quietApprovalPolicy: ApprovalPolicy = + cli.flags.fullAuto || cli.flags.approvalMode === "full-auto" + ? AutoApprovalMode.FULL_AUTO + : cli.flags.autoEdit || cli.flags.approvalMode === "auto-edit" + ? AutoApprovalMode.AUTO_EDIT + : config.approvalMode || AutoApprovalMode.SUGGEST; + await runQuietMode({ prompt: prompt as string, imagePaths: imagePaths || [], - approvalPolicy: autoApproveEverything - ? AutoApprovalMode.FULL_AUTO - : config.approvalMode || AutoApprovalMode.SUGGEST, + approvalPolicy: quietApprovalPolicy, additionalWritableRoots, config, }); @@ -470,7 +474,12 @@ async function runQuietMode({ getCommandConfirmation: ( _command: Array, ): Promise => { - return Promise.resolve({ review: ReviewDecision.NO_CONTINUE }); + // In quiet mode, default to NO_CONTINUE, except when in full-auto mode + const reviewDecision = + approvalPolicy === AutoApprovalMode.FULL_AUTO + ? ReviewDecision.YES + : ReviewDecision.NO_CONTINUE; + return Promise.resolve({ review: reviewDecision }); }, onLastResponseId: () => { /* intentionally ignored in quiet mode */