From 9dcef360e225f02e5c66b3782b618001b383bfb0 Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Sun, 30 Aug 2026 17:08:24 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B3=20fix:=20Carry=20Stateful=20Enviro?= =?UTF-8?q?nments=20Through=20Runtime=20Config=20(#15374)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/agents/__tests__/initialize.test.ts | 62 ++++++++++++++----- 1 file changed, 46 insertions(+), 16 deletions(-) diff --git a/packages/api/src/agents/__tests__/initialize.test.ts b/packages/api/src/agents/__tests__/initialize.test.ts index 3455003831..049a247235 100644 --- a/packages/api/src/agents/__tests__/initialize.test.ts +++ b/packages/api/src/agents/__tests__/initialize.test.ts @@ -266,24 +266,54 @@ describe('initializeAgent — execution context', () => { it('initializes without Express request or response objects', async () => { const { agent, loadTools, db } = createMocks(); - - await expect( - initializeAgent( - { - runtime: { - user: { id: 'user-1' } as never, - appConfig: {} as never, - requestBody: { timezone: 'America/New_York' }, + const previousReqDescriptor = Object.getOwnPropertyDescriptor(globalThis, 'req'); + Object.defineProperty(globalThis, 'req', { + configurable: true, + writable: true, + value: undefined, + }); + const appConfig = { + endpoints: { + [EModelEndpoint.agents]: { + statefulCodeSessions: { + environments: [ + { + id: 'request-free-stateful', + name: 'Request-free stateful', + type: 'attached', + baseURL: 'https://stateful.example.com/v1', + }, + ], }, - agent, - loadTools, - endpointOption: { endpoint: EModelEndpoint.agents }, - allowedProviders: new Set([Providers.OPENAI]), - isInitialAgent: true, }, - db, - ), - ).resolves.toBeDefined(); + }, + }; + + try { + await expect( + initializeAgent( + { + runtime: { + user: { id: 'user-1' } as never, + appConfig: appConfig as never, + requestBody: { timezone: 'America/New_York' }, + }, + agent, + loadTools, + endpointOption: { endpoint: EModelEndpoint.agents }, + allowedProviders: new Set([Providers.OPENAI]), + isInitialAgent: true, + }, + db, + ), + ).resolves.toBeDefined(); + } finally { + if (previousReqDescriptor == null) { + delete (globalThis as typeof globalThis & { req?: unknown }).req; + } else { + Object.defineProperty(globalThis, 'req', previousReqDescriptor); + } + } expect(loadTools).toHaveBeenCalledWith(expect.not.objectContaining({ req: expect.anything() })); expect(loadTools).toHaveBeenCalledWith(expect.not.objectContaining({ res: expect.anything() }));