Merge latest master into subagent policy inheritance

This commit is contained in:
Tianyi Cui
2026-07-29 00:40:25 +08:00
167 changed files with 6507 additions and 953 deletions

View File

@@ -149,6 +149,11 @@ class TestPersistence extends SessionPersistence {
return structuredClone(entry)
}
async readFrom(id: SessionIdType, fromSeq: number, signal?: AbortSignal): Promise<{ meta: SessionHeader; events: SessionEvent[] }> {
const whole = await this.inspect(id, signal)
return { meta: whole.meta, events: whole.events.filter(event => event.seq >= fromSeq) }
}
async list(): Promise<SessionHeader[]> {
TestPersistence.listStarted?.()
await TestPersistence.listGate

View File

@@ -96,6 +96,11 @@ class TestPersistence extends SessionPersistence {
return Promise.resolve(result)
}
async readFrom(id: SessionIdType, fromSeq: number, signal?: AbortSignal): Promise<{ meta: SessionHeader; events: SessionEvent[] }> {
const whole = await this.inspect(id, signal)
return { meta: whole.meta, events: whole.events.filter(event => event.seq >= fromSeq) }
}
list(signal?: AbortSignal): Promise<SessionHeader[]> {
TestPersistence.listCalls += 1
TestPersistence.listSignals.push(signal)

View File

@@ -76,6 +76,11 @@ class TracePersistence extends SessionPersistence {
return Promise.resolve(structuredClone(entry))
}
async readFrom(id: SessionIdType, fromSeq: number): Promise<{ meta: SessionHeader; events: SessionEvent[] }> {
const whole = await this.inspect(id)
return { meta: whole.meta, events: whole.events.filter(event => event.seq >= fromSeq) }
}
list(): Promise<SessionHeader[]> {
TracePersistence.listCalls += 1
if (TracePersistence.listFailure !== undefined) return Promise.reject(TracePersistence.listFailure)