test: adapt consumers to the cache's own root tree

The web e2e seeds no longer warm the deleted coldSnapshot; assertions do not
depend on the cache path. list-children mounts the cache with a scratch
root instead of a storage-domain backend, and drops the now-unused storage
devDependencies.
This commit is contained in:
_Kerman
2026-08-19 22:26:08 +08:00
parent a9a51f8096
commit 32ed3e2bce
4 changed files with 6 additions and 14 deletions
@@ -134,7 +134,6 @@ async function seedSubagent(scaffold: WebScaffold, parentId: SessionId): Promise
data: { turn: 1, reason: { kind: 'completed' } },
},
] as SessionEvent[])
await scaffold.ctx.sessionProjectionCache.coldSnapshot(header)
}
/**
@@ -155,7 +155,6 @@ describe('web e2e: persisted subagent conversation and human continuation', () =
data: { turn: 1, reason: { kind: 'completed' } },
},
] as SessionEvent[])
await scaffold.ctx.sessionProjectionCache.coldSnapshot(oneShotHeader)
grandchildId = sessionId('recorded-grandchild')
const authoredAt = Date.now()
const grandchildHeader: SessionHeader = {
@@ -200,7 +199,6 @@ describe('web e2e: persisted subagent conversation and human continuation', () =
data: { turn: 1, reason: { kind: 'completed' } },
},
] as SessionEvent[])
await scaffold.ctx.sessionProjectionCache.coldSnapshot(grandchildHeader)
expect(scaffold.ctx.agents.get(childId)).toBeUndefined()
expect(scaffold.ctx.agents.get(oneShotId)).toBeUndefined()
expect(scaffold.ctx.agents.get(grandchildId)).toBeUndefined()
-2
View File
@@ -96,8 +96,6 @@
"@deepseek-ai/dsh-session-persistence": "workspace:^",
"@deepseek-ai/dsh-session-projection": "workspace:^",
"@deepseek-ai/dsh-session-projection-cache": "workspace:^",
"@deepseek-ai/dsh-storage": "workspace:^",
"@deepseek-ai/dsh-storage-domain": "workspace:^",
"@deepseek-ai/dsh-jobs": "workspace:^",
"@deepseek-ai/dsh-tools": "workspace:^",
"@deepseek-ai/dsh-user-approval": "workspace:^",
@@ -13,9 +13,6 @@ import JsonlSessionPersistence from '@deepseek-ai/dsh-session-persistence-jsonl'
import SessionProjectionRegistry from '@deepseek-ai/dsh-session-projection'
import type { ProjectionDefinition } from '@deepseek-ai/dsh-session-projection'
import SessionProjectionCache from '@deepseek-ai/dsh-session-projection-cache'
import Storage from '@deepseek-ai/dsh-storage'
import { DomainFacility } from '@deepseek-ai/dsh-storage-domain'
import { MemoryMediaPool, MemoryStorageBackend } from '../../../storage/storage-domain/tests/helpers/memory-backend.ts'
import SubagentRuntime, {
SUBAGENT_DESCRIPTOR_VERSION,
SubagentError,
@@ -27,7 +24,10 @@ import { MockAdapter, textResponse } from '../../../core/agent-loop/tests/mock-a
type Script = ConstructorParameters<typeof MockAdapter>[0]
const roots: string[] = []
const projCacheRoots: string[] = []
afterEach(() => {
for (const root of projCacheRoots.splice(0)) rmSync(root, { recursive: true, force: true })
for (const root of roots.splice(0)) rmSync(root, { recursive: true, force: true, maxRetries: 10, retryDelay: 100 })
})
@@ -44,12 +44,9 @@ async function setup(
await ctx.plugin(AgentLoop, { agents: [] })
if (options.sessionProjections !== false) await ctx.plugin(SessionProjectionRegistry)
if (options.projectionCache === true) {
await ctx.plugin(Storage)
ctx.storage.backend.register('memory', new MemoryStorageBackend(new MemoryMediaPool()))
const facility = new DomainFacility(ctx, { backend: 'memory', routes: {} })
ctx.storage.mount('domain', facility)
ctx.provide('storageDomain', facility)
await ctx.plugin(SessionProjectionCache, { writeEveryEvents: 100, writeIntervalMs: 60_000 })
const root = mkdtempSync(join(tmpdir(), 'dsh-subagent-projcache-'))
projCacheRoots.push(root)
await ctx.plugin(SessionProjectionCache, { root, writeEveryEvents: 100, writeIntervalMs: 60_000 })
}
await ctx.plugin(SubagentRuntime)
await ctx.plugin(SubagentSpawn, { providerName: 'spawn' })