examples/acp-agent/cordis.snapshot.yml is a 26-line declarative overlay: one entry mounts @cordisjs/plugin-include on ./cordis.yml with patches that disable the llm-deepseek entry by id and insert llm-replay. Every other entry is the live tree loaded through the include, so the replay tier exercises exactly what ships and an app-shape change lands once — the silent-drift class the hand-mirrored 125-line twin invited is structurally gone. The bin is untouched; recording still boots cordis.yml; assertEntriesLoaded tolerates the disabled entry by design. All snapshot scenarios pass unchanged, byte-identical goldens included; the include applies patches at load time only, which a one-shot replay boot is exactly. Implements docs/rfc/implemented/testing/2026-07-04-single-source-acp-replay-config.md (moved from proposed/ and amended); the acp-snapshot-tests and hook-snapshot-matrix RFCs' replay-config facts are amended in the same change.
27 lines
1.3 KiB
YAML
27 lines
1.3 KiB
YAML
# Snapshot-test REPLAY overlay: the SAME app tree as cordis.yml, derived from
|
|
# it by an include — the one difference is the model backend. A keyless replay
|
|
# run cannot boot the real adapter (llm-deepseek's apply() throws without
|
|
# DEEPSEEK_API_KEY), so the include patches the live tree at load time: the
|
|
# llm-deepseek entry is disabled by id, and the llm-replay entry (which serves
|
|
# a recorded session JSONL — no API key, no network) is inserted. Every other
|
|
# entry — the app, the bash executor, the fs/subagent/todo tools, both hook
|
|
# bridges, the system prompt — IS the live tree, so replay exercises exactly
|
|
# what ships and an app-shape change lands once, in cordis.yml.
|
|
#
|
|
# The dsh-acp-agent bin selects this file for DSH_SNAPSHOT=replay. The replay
|
|
# fixture path comes from $DSH_SNAPSHOT_FILE (and an optional
|
|
# $DSH_SNAPSHOT_OVERRIDE sidecar), set by the snapshot harness. stdout stays
|
|
# reserved for the ACP JSON-RPC protocol (the app package loads no stdout
|
|
# logger). Patches apply when the include loads the file — a one-shot replay
|
|
# boot, so the load-time-only patch semantics are exactly enough.
|
|
- id: base
|
|
name: '@cordisjs/plugin-include'
|
|
config:
|
|
path: ./cordis.yml
|
|
patches:
|
|
- id: llm-deepseek
|
|
disabled: true
|
|
- insert:
|
|
- id: llm-replay
|
|
name: '@deepseek-ai/dsh-llm-replay'
|