From f0a45c2bfd2c9d9aa014e7b274d7822d1b4b935e Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Tue, 13 Oct 2026 14:07:13 -0700 Subject: [PATCH] test(native-chat): an unstamped roster entry from an older build reads as its row provenance Moved here from Part 4 so it sits beside stampJournalEntryProvenance. --- .../journal-item-provenance.test.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/native-chat/agent-session-journal/journal-item-provenance.test.ts b/src/main/native-chat/agent-session-journal/journal-item-provenance.test.ts index 0e3cac81dde..aea4b86e355 100644 --- a/src/main/native-chat/agent-session-journal/journal-item-provenance.test.ts +++ b/src/main/native-chat/agent-session-journal/journal-item-provenance.test.ts @@ -13,6 +13,7 @@ import { type AgentSessionJournalIdentity } from '../../../shared/agent-session-journal-types' import { codexProviderHandle } from '../../../shared/agent-session-provider-handle-encoding' +import { isSubagentGroupBlock } from '../../../shared/native-chat-types' import { retainedRowReplacement } from '../agent-session-wire/structured-rewind-retained-host-rows' import type { JournalHostDatabase } from './journal-host-database' import { @@ -20,6 +21,8 @@ import { liveTestJournalRows, openTestJournalHostDatabase } from './journal-host-database-test-support' +import { stampJournalEntryProvenance } from './journal-item-provenance' +import { subagentGroupJournalBody } from './journal-subagent-group-body' import type { AgentSessionJournal } from './journal-store' const IDENTITY: AgentSessionJournalIdentity = { @@ -128,4 +131,13 @@ describe('execution provenance', () => { const { ownerFence: _stated, ...older } = row expect(retainedRowReplacement(older).ownerFence).toBe(0) }) + + it('reads a roster entry an older build never stamped as its row’s provenance', () => { + const roster = subagentGroupJournalBody('group', [ + { id: 'a', label: 'A', state: 'working', startedAt: 1 } + ]) + const stamped = stampJournalEntryProvenance(roster, { body: roster, ownerFence: 2 }, 3) + const groups = stamped.kind === 'message' ? stamped.blocks.filter(isSubagentGroupBlock) : [] + expect(groups[0]?.agents[0]?.ownerFence).toBe(2) + }) })