Add self-recall (scheduled callback) system
Core features:
- schedule_recall tool: once/recurring/immediate callbacks
- manage_recall tool: cancel/skip/list scheduled recalls
- Natural-language time parser (ISO, relative, "tomorrow at 09:00")
- PostgreSQL-backed RecallScheduler with lazy pool init
- Background recall_scheduler_loop with asyncio.Semaphore(3)
- _busy_sessions guard prevents user messages during headless runs
- Agent.run() preserves thinking field for session history visibility
- API endpoints: GET/DELETE/POST for session recall, admin list
- Frontend: recall badge, filter, cancel/skip in sidebar and chat header
- Tests: parser, scheduler CRUD, tools, API, scheduler loop (53 tests)
- Manuals: schedule_recall.md and manage_recall.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 8ab29a0 commit 438b239766309829a84b5e84f0035bae2ceed3ae
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored on 15 May
Showing 34 changed files
View
manuals/manage_recall.md 0 → 100644
View
manuals/schedule_recall.md 0 → 100644
View
navi/api/deps.py
View
navi/api/routes/admin.py
View
navi/api/routes/sessions.py
View
navi/api/websocket.py
View
navi/core/agent.py
View
navi/core/registry.py
View
navi/core/scheduler.py 0 → 100644
View
navi/main.py
View
navi/profiles/developer/config.json
View
navi/profiles/discuss/config.json
View
navi/profiles/modeler_3d/config.json
View
navi/profiles/secretary/config.json
View
navi/profiles/server_admin/config.json
View
navi/profiles/tool_developer/config.json
View
navi/tools/__init__.py
View
navi/tools/manage_recall.py 0 → 100644
View
navi/tools/schedule_recall.py 0 → 100644
View
tests/conftest_factory.py
View
tests/integration/conftest.py
View
tests/integration/test_recall_api.py 0 → 100644
View
tests/integration/test_scheduler_loop.py 0 → 100644
View
tests/unit/core/test_scheduler.py 0 → 100644
View
tests/unit/tools/test_recall_tools.py 0 → 100644
View
tests/unit/tools/test_time_parser.py 0 → 100644
View
webclient/dist/assets/index-C4fiBPi3.css 0 → 100644
View
webclient/dist/assets/index-CM7WTk0g.js 0 → 100644
Not supported
View
webclient/dist/index.html
View
webclient/src/api/index.js
View
webclient/src/components/chat/ChatHeader.vue
View
webclient/src/components/sidebar/SessionItem.vue
View
webclient/src/components/sidebar/SessionList.vue
View
webclient/src/stores/sessions.js