From 8385d22b717eced375b417e5b615a99527e9a2f7 Mon Sep 17 00:00:00 2001 From: Adrian Webb Date: Wed, 30 Sep 2026 10:13:16 -0400 Subject: [PATCH] fix(core): retire mode-run field from governed discussion events (#26) --- src/content/discussion-schemas.ts | 1 - tests/unit/content/governance-content-schemas.test.ts | 9 +++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/content/discussion-schemas.ts b/src/content/discussion-schemas.ts index a7be909..e53461f 100644 --- a/src/content/discussion-schemas.ts +++ b/src/content/discussion-schemas.ts @@ -52,7 +52,6 @@ export function createDiscussionCollectionSchemas() { sequence: z.number().int().nonnegative(), agentId: z.string().optional(), assignmentId: z.string().optional(), - modeRunId: z.string().optional(), providerId: z.string().optional(), groupIds: z.array(z.string()).default([]), occurredAt: z.coerce.date(), diff --git a/tests/unit/content/governance-content-schemas.test.ts b/tests/unit/content/governance-content-schemas.test.ts index 281d199..335cf86 100644 --- a/tests/unit/content/governance-content-schemas.test.ts +++ b/tests/unit/content/governance-content-schemas.test.ts @@ -9,6 +9,15 @@ const exactRef = { }; describe('governance content schemas', () => { + it('does not expose retired mode-run authority in parsed discussion events', async () => { + const { createDiscussionCollectionSchemas } = await import('../../../src/content/discussion-schemas.ts'); + const event = createDiscussionCollectionSchemas().discussionEventSchema.parse({ + title: 'Assignment completed', discussionId: 'discussion-sdk', phase: 'acting', sequence: 1, + assignmentId: 'assignment-sdk', occurredAt: '2026-09-30T14:00:00.000Z', modeRunId: 'retired-run', + }); + expect(event.assignmentId).toBe('assignment-sdk'); + expect(event).not.toHaveProperty('modeRunId'); + }); it('uses the canonical SDK proposal contract without a Core-owned compatibility shape', async () => { const { createGovernanceCollectionSchemas } = await import('../../../src/content/governance-schemas.ts'); const { proposalSchema } = createGovernanceCollectionSchemas();