Extends the Nexus from a chat-only interface into a full cognitive awareness space with real-time introspection, persistent sessions, and sovereignty health monitoring. New modules (src/timmy/nexus/): - introspection.py — Aggregates CognitiveTracker, ThinkingEngine, and session analytics into a unified IntrospectionSnapshot. Surfaces mood, engagement, focus, commitments, and recent thoughts. - persistence.py — SQLite-backed NexusStore so conversations survive process restarts. WAL mode, auto-pruning at 500 messages, session-tag isolation for future per-operator sessions. - sovereignty_pulse.py — Reads the SovereigntyMetricsStore (PR #1331) and distils a live health pulse: per-layer sovereignty %, API independence rate, crystallization velocity. Enhanced routes (src/dashboard/routes/nexus.py): - GET /nexus — now serves introspection + pulse alongside chat - POST /nexus/chat — persists messages; tracks memory hits - DELETE /nexus/history — clears both in-memory and SQLite stores - GET /nexus/introspect — JSON API for introspection + sovereignty data - WS /nexus/ws — live push of cognitive state, thought stream, and sovereignty pulse every 5 seconds Enhanced template (nexus.html): - Cognitive State panel (mood, engagement, focus, depth, commitments) - Thought Stream viewer (5 most recent, seed type, timestamps) - Sovereignty Pulse badge + detail panel (per-layer bars, stats) - Session Analytics grid (message count, avg response, duration) - WebSocket client with auto-reconnect for live updates CSS (mission-control.css): - Full Nexus v2 design system: pulse badges, health indicators, cognitive grid, thought stream cards, sovereignty bar meters, analytics grid, scrollable sidebar Tests: 58 total (all green) - 20 introspection tests (data models, snapshot, fallback, cognitive/thought readers) - 18 persistence tests (CRUD, ordering, session tags, pruning, reopen) - 12 sovereignty pulse tests (classify health, snapshot, API independence) - 8 route/template tests (new panels, WebSocket script, introspect API) Refs: #1090
0 lines
0 B
Python
0 lines
0 B
Python
The file is empty.