diff --git a/packages/core/session/tests/invariant.spec.ts b/packages/core/session/tests/invariant.spec.ts index 61f017e275..1c6ca93fb7 100644 --- a/packages/core/session/tests/invariant.spec.ts +++ b/packages/core/session/tests/invariant.spec.ts @@ -131,6 +131,13 @@ describe('session-log invariants', () => { expect(() => second.append('turn/start', { turn: 3 })) .toThrow(/expected turn 2, got 3/) + const third = (await setup()).ctx.sessions.create() + third.append('turn/start', { turn: 1 }) + third.append('step/start', { turn: 1, step: 1 }) + third.append('step/end', { turn: 1, step: 1 }) + expect(() => third.append('turn/end', { turn: 1, step: 2, reason: { kind: 'completed' } })) + .toThrow(/expected last step 1, got 2/) + const outside = (await setup()).ctx.sessions.create() expect(() => outside.append('user/message', createUserMessage({ content: [{ type: 'text', text: 'idle context' }], diff --git a/packages/core/session/tests/session.spec.ts b/packages/core/session/tests/session.spec.ts index 7bacb5263d..0c5ccb7130 100644 --- a/packages/core/session/tests/session.spec.ts +++ b/packages/core/session/tests/session.spec.ts @@ -232,6 +232,14 @@ describe('Session', () => { }, message: 'message has invalid source', }, + { + name: 'content shape', + event: { + type: 'user/message', seq: 0, time: 1, surfaceOp: 'append', + data: { ...user, content: 'not-an-array' }, + }, + message: 'message has invalid content', + }, { name: 'assistant source', event: {