fix: preserve Pi projection continuity

This commit is contained in:
2026-08-23 08:40:58 +08:00
parent 3599064bc4
commit 4bbe3f8b1e
7 changed files with 248 additions and 9 deletions

View File

@@ -130,6 +130,19 @@ describe('Pi session projector', () => {
expect(JSON.stringify(snapshot)).not.toContain('Abandoned answer');
});
it('preserves seq for same-generation checkpoint hydration', async () => {
const live = baseSnapshot();
live.cursor.seq = 7;
const snapshot = await projectPiSessionSnapshot({
snapshot: live,
workerGeneration: 1,
state: { sessionId: 'pi-session-a', isStreaming: false, isCompacting: false },
entries: { entries: [], leafId: null },
});
expect(snapshot.cursor).toEqual({ workerGeneration: 1, seq: 7 });
});
it('applies retained-tail compaction and reconciles durable entries without replacing live IDs', async () => {
const live: ConversationSnapshot = {
...baseSnapshot(),