The seed-boundary change made fork-child replay route correctly but shipped with no recorded fork scenario — the seedLength slice was exercised only by llm-replay unit tests and a persistence round-trip, never by the full-transcript snapshot tier. Add two recorded scenarios that drive a real fork child through it: - subagent-fork: parent completes a turn, then forks one child (child fixture carries a non-zero seedLength, the boundary the replay slice consumes). - subagent-mixed: parent completes a turn, then delegates once via spawn (seedLength 0) and once via fork (non-zero seedLength) in one transcript — the first scenario to drive two subagent backends at once, exercising both branches of the slice. Both need a completed turn-1 so the fork seed is a non-empty completed-turn prefix (a turn-1 fork seeds empty = spawn, which would not exercise the slice). Removing the slice turns both scenarios red (the fork child receives the parent's recorded chunks), proving the guard bites. ACP (out-of-process) subagent replay remains a different shape, still tracked as TODO(acp-subagent-replay).
Examples
Runnable demos (not workspaces) that showcase how the harness is wired. Each example is now a thin leaf: a cordis.yml that picks the swappable backends (an LLM adapter, a bash executor) and loads ONE app package, plus any demo-only mocks. The composition — the spine, the front-door cluster, and the boot glue — lives in the app packages (@deepseek-ai/dsh-stdio-agent, @deepseek-ai/dsh-acp-agent) and the @deepseek-ai/dsh-agent-core bundle they share. There is no start.ts; the demo:* scripts invoke each app package's bin.
echo-agent
A mock model + echo tool on the stdio chat app — the all-mock skeleton. The leaf swaps dsh-stdio-agent's LLM backend to a local mock-echo adapter and adds a local echo tool. Demonstrates:
- A thin leaf
cordis.ymlloading the@deepseek-ai/dsh-stdio-agentapp - Registering a mock
LlmAdapter(streaming scripted responses) - Registering a tool via
ctx.tools.register() - "Swap the backend, keep the app" — the only difference from
coding-agentis the adapter
Run with: pnpm run demo:echo. When prompted, type "echo " to trigger a tool call round-trip.
coding-agent
The real thing: DeepSeek V4 + the bash tool suite on the same @deepseek-ai/dsh-stdio-agent app. Where echo-agent proves the skeleton with mocks, this is a usable coding assistant.
Run with: pnpm run demo:coding (needs DEEPSEEK_API_KEY in the environment or a gitignored repo-root .env). See coding-agent/README.md for details.
acp-agent
The same coding agent exposed as an Agent Client Protocol (ACP) server over JSON-RPC stdio, via the @deepseek-ai/dsh-acp-agent app — drive it from Zed or any other ACP client. Also the home of the keyless snapshot tests.
Run with: pnpm run demo:acp (needs DEEPSEEK_API_KEY). See acp-agent/README.md for the Zed setup and the snapshot-test design.