chunkLengths

Length, in characters, of each chunk response arrived in, when it arrived as a stream.

Empty for every entry written by SemanticCache.put, SemanticCache.getOrPut or SemanticCache.warm. Nobody streamed those, and an empty list says so rather than inventing a single boundary that happens to be the whole text. SemanticCache.getOrPutStreaming fills it, which is what lets a later hit replay the same chunks the first caller saw instead of one lump the size of the answer.

Lengths rather than the chunks themselves: response already holds every character, and a second copy of the text would double what a streamed entry costs to store for information that is three bytes per chunk.