From f989df7c8e13aba59bf8f4af64824a18f6a91673 Mon Sep 17 00:00:00 2001 From: creatixchu Date: Thu, 3 Sep 2026 17:04:29 +0800 Subject: [PATCH] test(file-upload): cover extensible request identifiers --- .../tests/commands-upload-file.host.spec.ts | 8 ++++++++ packages/client/file-upload/src/index.ts | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/api/session-controller/tests/commands-upload-file.host.spec.ts b/packages/api/session-controller/tests/commands-upload-file.host.spec.ts index c3091f76b4..7991a7cee8 100644 --- a/packages/api/session-controller/tests/commands-upload-file.host.spec.ts +++ b/packages/api/session-controller/tests/commands-upload-file.host.spec.ts @@ -294,6 +294,14 @@ describe('Session file uploads', () => { new AbortController().signal, ) await first.controller.prompt(promptRequest([{ type: 'file', receiptId: observed.receiptId }])) + first.ctx.emit('session/event', first.agent.session, { + type: 'user/message', + data: createUserMessage({ + content: [{ type: 'text', text: 'extension event' }], + source: { kind: 'user', rpcId: 1 } as never, + }), + } as never) + expect(first.uploads.resolve(first.agent, observed.receiptId)).toEqual(observed.file) first.agent.session.append('user/message', createUserMessage({ content: [{ type: 'text', text: 'observed' }], source: { kind: 'user', rpcId: 'req-1' as SessionRequestId }, diff --git a/packages/client/file-upload/src/index.ts b/packages/client/file-upload/src/index.ts index 7a6a3d3b85..4cd257f7e0 100644 --- a/packages/client/file-upload/src/index.ts +++ b/packages/client/file-upload/src/index.ts @@ -223,7 +223,7 @@ export class FileUploads extends TypertRemoteService { private observeSessionEvent(session: Session, event: SessionEvent): void { if (event.type !== 'user/message' || event.data.source.kind !== 'user' || !('rpcId' in event.data.source)) return - this.retire(session, event.data.source.rpcId) + if (typeof event.data.source.rpcId === 'string') this.retire(session, event.data.source.rpcId) } private retire(session: Session, requestId: string): void {