The buildDiffableContent and buildPrevDiffableContent fields were closures
capturing full system prompt and tool schema arrays (~300KB each). With 10
map entries × 2 closures, this held ~6MB of GC-unreachable memory.
Since recordPromptState already serializes the same data for hashing,
pre-computing the diffable content string has negligible marginal cost.