in core/realtime.py [0:0]
def finalize_pending(self) -> None:
"""Close the current pending prompt and starts a new one.
* The iterator previously returned from `pending` will stop after all Parts
added so far.
* Then history compression is applied.
* At last, a new `pending` iterator is created and the compressed history
is written to it.
* Any parts added afterwards will go to the new iterator.
"""
# Close the current queue.
self._pending.put_nowait(None)
# And create a new one.
self._pending = asyncio.Queue[ProcessorPart | None]()
self._cut_conversation_history()
for part in self._conversation_history:
self._pending.put_nowait(part)