Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id

This commit is contained in:
Tianyi Cui
2026-07-15 17:24:07 +08:00
5 changed files with 29 additions and 7 deletions

View File

@@ -426,9 +426,13 @@ export class BasicCompactService extends CompactService {
// compact/start and here leaves a detectable orphaned lock (a compact/start
// with no matching compact/end) rather than a compact/end that falsely
// claims compaction finished before the surface replacement landed.
session.append('compact/end', { turn: openTurn })
const endEvent = session.append('compact/end', { turn: openTurn })
return {
startSeq: startEvent.seq,
summarySeq: summaryEvent.seq,
endSeq: endEvent.seq,
summary,
shadowedRange: { start, end },
shadowedSeqs,
shadowedTokenCount,

View File

@@ -346,6 +346,7 @@ describe('BasicCompactService.compactRegion', () => {
expect(result.shadowedSeqs).toEqual([firstSeq, secondSeq])
expect(result.shadowedRange.start).toBe(firstSeq)
expect(result.shadowedRange.end).toBe(secondSeq)
expect(result.summary).toEqual(svc.mockSummary)
expect(result.shadowedTokenCount).toBe(20)
const events = session.events
@@ -1057,7 +1058,8 @@ describe('BasicCompactService.summarize (real ctx.llm.stream)', () => {
const session = multiTurnSession(2, 1)
const nodes = session.surface.nodes
await compactRegion(svc, session, nodes[0]!, nodes[1]!, 'test-model')
const result = await compactRegion(svc, session, nodes[0]!, nodes[1]!, 'test-model')
expect(result.summary).toEqual([{ type: 'text', text: 'CONDENSED' }])
const summaryEvent = session.events.findLast(e => e.type === 'compact/summary')!
expect(summaryEvent.data.summary).toEqual([{ type: 'text', text: 'CONDENSED' }])
// The raw summary is wrapped in the checkpoint framing on the surface.