fix(subagent): harden continuable persistence
This commit is contained in:
14
examples/acp-agent/tests/fixtures/subagent-durability-failure.ts
vendored
Normal file
14
examples/acp-agent/tests/fixtures/subagent-durability-failure.ts
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
import type { Context } from 'cordis'
|
||||
|
||||
export const name = 'subagent-durability-failure'
|
||||
|
||||
/** Fail a continuable child's provider-owned final durability confirmation. */
|
||||
export function apply(ctx: Context): void {
|
||||
const flushedTurnEnds = new WeakSet<object>()
|
||||
ctx.on('session/flush', (session) => {
|
||||
if (session.header.parentSession === undefined) return
|
||||
if (session.events.at(-1)?.type !== 'turn/end') return
|
||||
if (flushedTurnEnds.has(session)) throw new Error('snapshot disk full')
|
||||
flushedTurnEnds.add(session)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user