docs(rfc): add ACP snapshot tests RFC (record-once / replay-deterministic)
Records the decision to add a third test tier: snapshot tests that boot the real acp-agent subprocess over ACP stdio, record the LLM's streamed responses once against the real API, then replay them deterministically so the full stdout transcript can be diffed against a committed golden — keyless in CI. Captures the design choices hardened in a Codex (xhigh) review: record at the provider-neutral llm/stream waterfall; a discriminated fixture entry schema (chunks/throw/hang) that honors both LLM failure branches; positional replay with a one-in-flight-stream constraint; per-stream atomic fixture flush (the subprocess is SIGKILLed, so dispose-time flush would never run); a providerless replay config; normalize-then-snapshot parsed frames; normalization over an OS sandbox now with the rootless bwrap/sandbox-exec tier reserved via the BashExecutor capability seam. Cross-links the proposed determinism RFC (complementary: internal history invariant vs external protocol contract).
This commit is contained in:
@@ -56,6 +56,7 @@ Do NOT write one for a mechanical or local choice (a variable name, a one-file r
|
||||
| [Every session event is enclosed in a turn](implemented/2026-06-15-turn-enclosure-invariant.md) | 2026-06-15 |
|
||||
| [pnpm as the package manager instead of Yarn 4](implemented/2026-06-16-pnpm-over-yarn.md) | 2026-06-16 |
|
||||
| [Rich ACP bash rendering — the terminal card (`_meta`) and command classification](implemented/2026-06-18-acp-terminal-and-tool-rendering.md) | 2026-06-18 |
|
||||
| [ACP snapshot tests — record-once / replay-deterministic](implemented/2026-06-19-acp-snapshot-tests.md) | 2026-06-19 |
|
||||
|
||||
## Rejected
|
||||
|
||||
|
||||
Reference in New Issue
Block a user