|
Extract WebSocket business logic into AgentSessionOrchestrator
- Create navi/core/orchestrator.py with AgentSessionOrchestrator and SessionRun - Orchestrator owns _runs, _busy_sessions, Agent creation, run_agent(), run_recall() - Transport-agnostic: accepts notify callback from WebSocket handler - WebSocket handler (websocket.py) now only does serialization/deserialization - _fire_recall delegates to orchestrator.run_recall() instead of inline logic - recall_scheduler_loop now accepts orchestrator parameter - AppContainer gains .orchestrator field, created in create_container() - deps.py: add get_orchestrator() - Update integration tests for scheduler_loop and websocket unit tests All 392 tests pass. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
|---|
|
|
| navi/api/deps.py |
|---|
| navi/api/websocket.py |
|---|
| navi/core/container.py |
|---|
| navi/core/orchestrator.py |
|---|
| navi/core/scheduler.py |
|---|
| navi/main.py |
|---|
| tests/integration/test_scheduler_loop.py |
|---|
| tests/unit/api/test_websocket.py |
|---|