From bdb49ab73894af5693ff8a98c70e5c2d7800dde9 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Sat, 17 Oct 2026 00:31:31 -0700 Subject: [PATCH] Pin the resolved iterator promise in ownership experiment --- ...laude-stream-json-connection-close.test.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/claude/claude-stream-json-connection-close.test.ts b/src/main/claude/claude-stream-json-connection-close.test.ts index 92c3316fab2..d72cec22a95 100644 --- a/src/main/claude/claude-stream-json-connection-close.test.ts +++ b/src/main/claude/claude-stream-json-connection-close.test.ts @@ -116,10 +116,10 @@ describe('Claude stream-json close ordering', () => { const deferred = createDeferredStructuredAgentSessionEventSink(testEventSinkLogging()) deferred.bind({ journal: rig.journal, fence: 1, publish: () => {} }) const translator = createClaudeJournalTranslator({ sink: deferred.sink }) - const first = Promise.withResolvers>() + const first = Promise.withResolvers>>() const next = vi .fn<() => Promise>>>() - .mockImplementationOnce(async () => ({ value: await first.promise, done: false })) + .mockReturnValueOnce(first.promise) .mockResolvedValue({ value: undefined, done: true }) // oxlint-disable-next-line typescript/consistent-type-assertions -- SAFETY: This injected query exercises only the async iterator used by the connection. const queryImpl = ((params: Parameters[0]) => { @@ -159,12 +159,15 @@ describe('Claude stream-json close ordering', () => { expect(events).toEqual([]) // Resolve and exit in one stack, before the awaiting reader can consume the complete result. first.resolve({ - type: 'user', - uuid: 'resolved-before-exit', - session_id: 'provider-session', - message: { - role: 'user', - content: [{ type: 'tool_result', tool_use_id: 'received', content: 'MIDDLE:TAIL' }] + done: false, + value: { + type: 'user', + uuid: 'resolved-before-exit', + session_id: 'provider-session', + message: { + role: 'user', + content: [{ type: 'tool_result', tool_use_id: 'received', content: 'MIDDLE:TAIL' }] + } } }) child.emit('exit', 1, null)