|
Fix recall race, ContextVar leaks, dead code, and recall duplication
- run_recall: wrap busy check + create_run in session_lock to prevent race between scheduler and websocket handler - run_recall: save ContextVar tokens and reset in finally to avoid leaking user context into subsequent background tasks - websocket.py: reset user ContextVars in finally after run completes - orchestrator.py: remove dead set_notify / _notify abstraction - orchestrator.py: extract _finalize_recall to deduplicate success / MaxIterationsReached / Exception finalization blocks Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
|---|
|
|
| navi/api/websocket.py |
|---|
| navi/core/orchestrator.py |
|---|