agenerate() skipped _recall_state() entirely, meaning async streaming responses were disconnected from session memory. This patch brings agenerate() to full parity with the synchronous path: - Accepts vault and recall_top_k parameters (default 3, matching generate()) - Calls _recall_state(_voiced_state(current, persona), vault, recall_top_k) at each step before nearest-node selection - Does not add stop_nodes or salience (those remain sync-only for now; the core correctness gap is vault recall) The async return value is still token-by-token via yield. Callers that want final_state should use the synchronous path or wrap in a collector. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| articulation.py | ||
| attention.py | ||
| dialogue.py | ||
| proposition.py | ||
| render.py | ||
| result.py | ||
| salience.py | ||
| stream.py | ||