async_worker.py shutdown() cancels pending _debounced_process tasks but the _UserBuffer still holds unprocessed requests. Short conversations that haven't hit the 800-token threshold lose their fact extraction on process shutdown. Fix: in shutdown(), call _process(key) for every key in self._buffers with pending requests before cancelling timers.
async_worker.py shutdown() cancels pending _debounced_process tasks but the _UserBuffer still holds unprocessed requests. Short conversations that haven't hit the 800-token threshold lose their fact extraction on process shutdown. Fix: in shutdown(), call _process(key) for every key in self._buffers with pending requests before cancelling timers.