feat: add Nexus — persistent conversational awareness space with live memory (#1208)
Some checks failed
Tests / lint (pull_request) Failing after 12s
Tests / test (pull_request) Has been skipped

Implements the Nexus: a dedicated conversational-only interface where Timmy
maintains a persistent session backed by his live memory store. Unlike the
main dashboard chat (which includes tool-approval flow), the Nexus is pure
dialogue with semantic memory context surfaced on every exchange.

Changes:
- src/dashboard/routes/nexus.py — GET/POST/DELETE routes; uses dedicated
  `nexus` session_id so history is isolated from the main dashboard chat
- src/dashboard/templates/nexus.html — two-column layout: chat left,
  memory sidebar + teaching panel right
- src/dashboard/templates/partials/nexus_message.html — chat partial with
  OOB memory-hits swap
- src/dashboard/templates/partials/nexus_facts.html — teaching confirmation
  + facts list partial
- src/dashboard/app.py — import and register nexus_router
- src/dashboard/templates/base.html — NEXUS link in INTEL dropdown
- static/css/mission-control.css — Nexus layout, memory sidebar, teaching
  panel styles (no inline CSS)
- tests/dashboard/test_nexus.py — 9 unit tests, all green
- docs/nexus-spec.md — full scope + acceptance criteria for #1208

Fixes #1208

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Alexander Whitestone
2026-03-23 18:33:42 -04:00
parent 46edac3e76
commit 6da5bf6d6d
9 changed files with 568 additions and 0 deletions

View File

@@ -67,6 +67,7 @@
<div class="mc-nav-dropdown">
<button class="mc-test-link mc-dropdown-toggle" aria-expanded="false">INTEL &#x25BE;</button>
<div class="mc-dropdown-menu">
<a href="/nexus" class="mc-test-link">NEXUS</a>
<a href="/spark/ui" class="mc-test-link">SPARK</a>
<a href="/memory" class="mc-test-link">MEMORY</a>
<a href="/marketplace/ui" class="mc-test-link">MARKET</a>