diff --git a/packages/client/ui-conversation/src/client/conversation/location-index.ts b/packages/client/ui-conversation/src/client/conversation/location-index.ts index 018fc92e7c..f7bac8eb1c 100644 --- a/packages/client/ui-conversation/src/client/conversation/location-index.ts +++ b/packages/client/ui-conversation/src/client/conversation/location-index.ts @@ -137,9 +137,7 @@ const SESSION_LOCATION = { kind: 'session' } as const const UNRESOLVED_LOCATION = { kind: 'unresolved' } as const function payloadCoordinates(event: SessionEventLike): Coordinates { - const payload: unknown = event.data - if (typeof payload !== 'object' || payload === null || Array.isArray(payload)) return {} - const data = payload as { turn?: unknown; step?: unknown } + const data = event.data as unknown as { turn?: unknown; step?: unknown } if (data.turn === null) return { session: true } const turn = Number.isSafeInteger(data.turn) && (data.turn as number) >= 0 ? data.turn as number diff --git a/packages/client/ui-deliverables/tests/produced-files.client.spec.tsx b/packages/client/ui-deliverables/tests/produced-files.client.spec.tsx index 7db4fe3a27..9a01d5e3a1 100644 --- a/packages/client/ui-deliverables/tests/produced-files.client.spec.tsx +++ b/packages/client/ui-deliverables/tests/produced-files.client.spec.tsx @@ -600,7 +600,11 @@ describe('presented files', () => { }) -it.each([null, [], 'invalid', {}, { turn: '1', callId: 'bad', files: [] }, +it.each([null, [], 'invalid'])('declines non-object delivery data: %j', (data) => { + expect(deliverablesDefinition.match(at(1, 'deliverables/presented', data))).toBeNull() +}) + +it.each([{}, { turn: '1', callId: 'bad', files: [] }, { turn: 1.5, callId: 'bad', files: [] }, { turn: 0, callId: 'bad', files: [] }, { turn: 1, files: [] }, { turn: 1, callId: '', files: [] }, { turn: 1, callId: 'bad', files: null }, ])('ignores malformed delivery data and keeps the existing produced row: %j', (data) => {