d87ca1df0f
The transcript perf fix had two halves. The winners half kept its identity because a test pinned it; the strip cache had none, so rewriting the component into chat primitives quietly brought back the rebuild-every-render version, and every tool-calling turn re-rendered on each streamed token again. Restore the cache and pin it the same way. orderTranscript is not implicated: it returns a fresh array but the same message objects, which is what the turns memoize on.