A harness streams text and reasoning parts cumulatively: every
message.part.updated frame restates the part's whole text. The provider
executor kept every frame in ProviderLeafOut.events, so retained memory
grew with frames times text length, and settlement then hashed and
stored that archive. One pi turn of 27,144 reasoning frames exhausted a
4 GB supervisor heap inside contentAddress.
The archive now leaves out a part update when a later frame of the same
text or reasoning part extends its text. Kept events stay verbatim and
in streamed order, and supersededPartUpdates counts the frames left out.
The settled content, usage, and tool part frames are unchanged.
The exported ProviderLeafOut shape changed, so this prepares runtime
0.221.0 with a CHANGELOG entry.
Fixes #1211