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>
25 KiB
25 KiB