diff --git a/packages/server/src/server/agent/providers/codex-app-server-agent.test.ts b/packages/server/src/server/agent/providers/codex-app-server-agent.test.ts index b56999c4fb..54bf967cac 100644 --- a/packages/server/src/server/agent/providers/codex-app-server-agent.test.ts +++ b/packages/server/src/server/agent/providers/codex-app-server-agent.test.ts @@ -228,7 +228,7 @@ function deferred() { } describe("Codex file-change approvals", () => { - test("file-change approval includes the matching started patch", async () => { + test("file-change approval includes the matching patch when notifications are still queued", async () => { const appServer = createFakeCodexAppServer(); const { session } = await startPublicSteeringSession(appServer); try { @@ -236,7 +236,6 @@ describe("Codex file-change approvals", () => { ["file-alpha", "/workspace/project/alpha.txt", "@@ -1 +1 @@\n-blue\n+green\n"], ["file-beta", "/workspace/project/beta.txt", "@@ -1 +1 @@\n-small\n+large\n"], ]) { - const started = waitForTimelineToolCall(session, id); appServer.child.stdout.write( `${JSON.stringify({ method: "item/started", @@ -252,7 +251,6 @@ describe("Codex file-change approvals", () => { }, })}\n`, ); - await started; } const permission = waitForNextPermission(session); appServer.requestFileChangeApproval({ diff --git a/packages/server/src/server/agent/providers/codex-app-server-agent.ts b/packages/server/src/server/agent/providers/codex-app-server-agent.ts index 473a38738e..a3e87087bb 100644 --- a/packages/server/src/server/agent/providers/codex-app-server-agent.ts +++ b/packages/server/src/server/agent/providers/codex-app-server-agent.ts @@ -7262,7 +7262,8 @@ export class CodexAppServerAgentSession implements AgentSession { }); } - private handleFileChangeApprovalRequest(params: unknown): Promise { + private async handleFileChangeApprovalRequest(params: unknown): Promise { + await this.pendingNotifications; const parsed = z .object({ itemId: z.string(),