ca8d700a14
The cassette layer already stored interactions in an array, but replay always used find-first structural matching and cassettes were written as one minified JSON line. That makes tool-loop and retry recordings unworkable: identical requests collapse to one response, and large recordings are unreadable on review. - Add `sequentialMatcher` for position-based dispatch so identical retries map to recorded responses in order via an internal cursor. - Pretty-print cassette JSON on write and reformat existing fixtures so multi-interaction diffs stay reviewable. - Add deterministic `record-replay.test.ts` covering default vs sequential dispatch and cursor exhaustion. - Add an OpenAI Chat tool-loop recorded test scaffold gated behind `OPENAI_API_KEY` so a single `RECORD=true` run captures every model round of the loop into one cassette file. - Update AGENTS.md to document multi-interaction cassettes and the matcher options, and mark the cassette ergonomics TODO complete.