fix(subagent-acp): repair the composition fixture for the merged depth budget

Master landed the tool-subagent depth budget while this branch was in
flight: the numeric default maxDepth now fails the mount against the
ACP provider's depthLimit: false, so the composition fixture must state
maxDepth: 'provider-managed' — the documented opt-out for a provider
whose recursion budget lives in the child harness. The fixture also
moves off the retired stdio-demo REPL onto the current app-boot driver
pattern (runLoaderSmoke + one-shot cli), and the split isDirectory
statements gain the file-not-a-directory case the single-expression
form used to cover implicitly.
This commit is contained in:
Yichen Jiang
2026-07-21 17:14:10 +08:00
parent 6fe8cfb5d1
commit c0d7ef22ec
5 changed files with 86 additions and 80 deletions

View File

@@ -26,12 +26,16 @@
config:
provider: acp
toolName: subagent
# ACP advertises no depthLimit: the child harness owns its own recursion
# budget, so the local numeric default cannot apply here.
maxDepth: 'provider-managed'
- id: stdio-agent
name: '@deepseek-ai/dsh-stdio-demo'
- id: cli-agent
name: '@deepseek-ai/dsh-cli-demo'
config:
provider: mock
model: mock-delegate
welcome: 'acp subagent cwd e2e ready.'
persona: 'Test ACP subagent cwd inheritance.'
persistenceRoot: './.sessions'
persistenceCompression: 'none'
workspaceContext: false

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env node
/** Test driver: one delegation turn through a headless Loader composition. */
import { boot, resolveConfigPath } from '@deepseek-ai/dsh-app-boot'
import { runOneShot } from '@deepseek-ai/dsh-cli-demo/src/cli.ts'
const configPath = process.argv[2]
if (configPath === undefined) throw new Error('acp-subagent cwd driver requires a config path')
const ctx = await boot('acp-subagent-cwd-e2e', resolveConfigPath(configPath, undefined))
try {
await runOneShot(ctx, { task: 'delegate' })
} finally {
await ctx.fiber.dispose()
}