{"version":"2.1.301","anchor":"request-replay-transcript-hashing-is-memoized-with-a-stale","canonical_anchor":"request-replay-transcript-hashing-is-memoized-with-a-stale","heading":"Recording API requests for replay takes less work in long sessions","tier":"internal","area":"Elsewhere","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/request-replay-transcript-hashing-is-memoized-with-a-stale","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301","markdown":"### Recording API requests for replay takes less work in long sessions\n\nWhen recording requests for replay, Claude Code now reuses fingerprints of earlier messages and spot-checks one at random instead of redoing all\n\n**What**\n\nClaude Code can record the requests it sends to the API so they can be replayed later. To do that it computes a fingerprint, called a hash, for each message in the conversation. Before this release, it recomputed every message's hash on every request.\n\nIt now remembers the hashes it has already computed and reuses earlier work. To catch mistakes, it checks one randomly chosen message each time. If that message's hash no longer matches the remembered one, Claude Code throws away everything it remembered and records the failure reason `stale_hash`.\n\n**Why**\n\nThis cuts processing work in long sessions, where rehashing every message on every request adds up.\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}