Imported from
api/docs/PROJECT_SUMMARY.md. Edit source file, then re-run sync.
Nova Platform — Project Summary
Last updated: 2026-03-13
What Nova Is
Nova is an agentic operations assistant for inbox, calendar, contacts, and follow-up workflows.
It is now organized around task-orchestrated execution: user instructions create or mutate tasks, tasks own lifecycle/thread state, and agent-v2 executes tool-grounded actions.
Runtime Architecture (Current)
- Orchestration truth:
TaskOrchestratorService - Execution kernel collaborator:
AgentKernelService(agent-v2, OpenAI Agents SDK) - Knowledge read model:
KnowledgeHubService(profile/life/contact/task context for orchestration) - Task lifecycle and audit state (Mongo):
taskstask_thread_entriestask_linksasync_operationstask_digestsnotification_queue_itemsnotification_logsuser_notification_settings
- Kernel run state (Mongo):
agent_runs_v2agent_turns_v2agent_tool_calls_v2agent_approvals_v2agent_memory_summaries_v2
Path Matrix (Double-Checked)
POST /v2/agent/runs-> orchestrator-backed execution with backward-compatible response shape plusrunModeand task linkage metadata indetails.POST /v2/task-orchestrator/runs-> explicit orchestration endpoint.POST /v1/telegram/app/webhook-> Telegram NL routing through orchestrator, with deferred queue handoff for async/timeout-prone instructions.- Dashboard chat worker
PROCESS_CHAT_MESSAGE-> orchestrator-backed run path. POST /v1/assistants/:id/instruct->AgentActionsServicedelegates to orchestrator.
Real-Journey E2E Coverage (Current)
- Infra E2E now includes an explicit task-orchestrated journey suite:
- dashboard chat message -> task/thread/link metadata persistence
- inbound external reply -> waiting task reconciliation
- digest generation -> Telegram dispatch + notification queue/log audit
- digest spam guard -> empty digests suppressed + per-digest and per-content delivery dedupe
- digest scheduler guard -> user-local window/catch-up + minimum interval throttle (
AGENT_DIGEST_MIN_INTERVAL_MINUTES) - digest narrator -> agentic/LLM narrative copy (fallback-safe), highlighting actionable items first
- async callback success -> task completion + Telegram notification
- async callback failure -> task failure + remediation notification
- Telegram NL E2E includes deferred-ack path validation (
tell me when it's done-> immediate ack + background queue handoff). - Dashboard browser E2E now covers assistant chat send flow and pending-approval confirmation flow (Playwright, CI-enforced).
- CI critical infra pattern includes this suite by default.
- Queue E2E regression is fixed for BullMQ-safe incremental sync job IDs (minute-epoch dedupe bucket).
- Infra test runner now flushes Redis and supports profile split:
npm run test:e2e:infra(critical)npm run test:e2e:infra:all(full)
Safety Model
- Confirm-before-write for mutating actions.
- Risk classification present (
standard,broadcast,destructive,bulk) with impact preview payload. - High-risk actions require double-confirm semantics.
- Approval outcomes and high-risk decisions are captured in task-thread audit entries.
- Telegram callbacks remain ownership-scoped, replay-safe, and rate-limited.
Delivery/Operations Model
- Existing queue/worker stack remains the backbone.
- Scheduler tasks run as jobs (lifecycle ticks, backfill, digest, notification dispatch).
- Deferred/background outcomes are reconciled through
TaskCallbackServicefromasync_operationscallbacks. - Notifications deliver through concrete adapters:
- Telegram
- in-app websocket
- Notification dispatcher enforces quiet-hours deferral and bounded retry backoff for failed deliveries.
- Backfill is online/lazy and idempotent (no downtime migration required).
Known Gaps (Audit)
- Full infra E2E is stable, but negative-path tests still produce intentional worker error logs that can obscure signal while debugging failures.
Positioning
Nova now operates as a task-centric orchestration platform rather than a command bot. The architecture is orchestrator + collaborators, lifecycle-deterministic, and audit-first, while preserving compatibility for existing API and dashboard consumers during migration.