|
fix(recall): stabilize scheduled callback system and improve UX
Backend fixes: - stop_session now stops headless recall runs via _busy_sessions dict - _fire_recall sets user ContextVars so tools work correctly - MaxIterationsReached treated as success, not failure - skip_next_recall uses GREATEST(trigger_at, now) for overdue recalls - schedule_recall rejects past trigger times - timezone offset double-adjustment fixed for aware datetimes - _fire_recall registers _AgentRun for reconnect/replay support - session_sync race with stream_start fixed Frontend improvements: - Recall banner moved to ChatHeader with live Cancel/Skip buttons - Recall messages styled with is_recall flag and badge - Real-time recall updates via WebSocket (recall_update events) - Recall filter moved to sessions-header as toggle button - Session list shows clock icon for sessions with pending recall - Empty state messages for empty/filtered session lists - Fixed missing api import in ChatHeader.vue Tests: - Updated scheduler_loop tests for _busy_sessions dict change Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
|---|
|
|
| navi/api/routes/sessions.py |
|---|
| navi/api/routes/webhooks.py |
|---|
| navi/api/websocket.py |
|---|
| navi/core/agent.py |
|---|
| navi/core/events.py |
|---|
| navi/core/scheduler.py |
|---|
| navi/llm/base.py |
|---|
| navi/tools/manage_recall.py |
|---|
| navi/tools/schedule_recall.py |
|---|
| tests/integration/test_scheduler_loop.py |
|---|
| tests/unit/tools/test_recall_tools.py |
|---|
| webclient/dist/assets/index-BokRfynu.css 0 → 100644 |
|---|
| webclient/dist/assets/index-C2n90a7h.js 0 → 100644 |
|---|
|
Not supported
|
| webclient/dist/assets/index-C4fiBPi3.css 100644 → 0 |
|---|
| webclient/dist/assets/index-CTPV0D6r.js 100644 → 0 |
|---|
|
Not supported
|
| webclient/dist/index.html |
|---|
| webclient/src/components/chat/ChatHeader.vue |
|---|
| webclient/src/components/messages/UserMessage.vue |
|---|
| webclient/src/components/sidebar/AppSidebar.vue |
|---|
| webclient/src/components/sidebar/SessionItem.vue |
|---|
| webclient/src/components/sidebar/SessionList.vue |
|---|
| webclient/src/composables/useWebSocket.js |
|---|
| webclient/src/stores/chat.js |
|---|
| webclient/src/stores/sessions.js |
|---|
| webclient/src/styles/app.scss |
|---|