diff --git a/extensions/codex/src/app-server/approval-bridge.test.ts b/extensions/codex/src/app-server/approval-bridge.test.ts index 00f07f32063..7494a5a59f5 100644 --- a/extensions/codex/src/app-server/approval-bridge.test.ts +++ b/extensions/codex/src/app-server/approval-bridge.test.ts @@ -757,6 +757,24 @@ describe("Codex app-server approval bridge", () => { }, }, }); + expect( + buildApprovalResponse( + "item/commandExecution/requestApproval", + { availableDecisions: ["decline"] }, + "approved-once", + ), + ).toEqual({ + decision: "decline", + }); + expect( + buildApprovalResponse( + "item/commandExecution/requestApproval", + { availableDecisions: ["decline"] }, + "approved-session", + ), + ).toEqual({ + decision: "decline", + }); expect(buildApprovalResponse("item/fileChange/requestApproval", undefined, "denied")).toEqual({ decision: "decline", }); diff --git a/extensions/codex/src/app-server/approval-bridge.ts b/extensions/codex/src/app-server/approval-bridge.ts index 71d5527ac58..55cf909566a 100644 --- a/extensions/codex/src/app-server/approval-bridge.ts +++ b/extensions/codex/src/app-server/approval-bridge.ts @@ -274,7 +274,7 @@ function commandApprovalDecision( return amendmentDecision; } } - return "accept"; + return hasAvailableDecision(requestParams, "accept") ? "accept" : "decline"; } function fileChangeApprovalDecision(outcome: AppServerApprovalOutcome): JsonValue {