mirror of
https://github.com/samvallad33/vestige.git
synced 2026-04-30 11:26:22 +02:00
feat: Vestige v2.0.0 "Cognitive Leap" — 3D dashboard, HyDE search, WebSocket events
The biggest release in Vestige history. Complete visual and cognitive overhaul. Dashboard: - SvelteKit 2 + Three.js 3D neural visualization at localhost:3927/dashboard - 7 interactive pages: Graph, Memories, Timeline, Feed, Explore, Intentions, Stats - WebSocket event bus with 16 event types, real-time 3D animations - Bloom post-processing, GPU instanced rendering, force-directed layout - Dream visualization mode, FSRS retention curves, command palette (Cmd+K) - Keyboard shortcuts, responsive mobile layout, PWA installable - Single binary deployment via include_dir! (22MB) Engine: - HyDE query expansion (intent classification + 3-5 semantic variants + centroid) - fastembed 5.11 with optional Nomic v2 MoE + Qwen3 reranker + Metal GPU - Emotional memory module (#29) - Criterion benchmark suite Backend: - Axum WebSocket at /ws with heartbeat + event broadcast - 7 new REST endpoints for cognitive operations - Event emission from MCP tools via shared broadcast channel - CORS for SvelteKit dev mode Distribution: - GitHub issue templates (bug report, feature request) - CHANGELOG with comprehensive v2.0 release notes - README updated with dashboard docs, architecture diagram, comparison table 734 tests passing, zero warnings, 22MB release binary. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
26cee040a5
commit
c2d28f3433
321 changed files with 32695 additions and 4727 deletions
100
apps/dashboard/src/app.css
Normal file
100
apps/dashboard/src/app.css
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
@import 'tailwindcss';
|
||||
|
||||
@theme {
|
||||
/* Vestige cosmic dark palette */
|
||||
--color-void: #050510;
|
||||
--color-abyss: #0a0a1a;
|
||||
--color-deep: #10102a;
|
||||
--color-surface: #161638;
|
||||
--color-elevated: #1e1e4a;
|
||||
--color-subtle: #2a2a5e;
|
||||
--color-muted: #4a4a7a;
|
||||
--color-dim: #7a7aaa;
|
||||
--color-text: #e0e0ff;
|
||||
--color-bright: #ffffff;
|
||||
|
||||
/* Accent colors */
|
||||
--color-synapse: #6366f1;
|
||||
--color-synapse-glow: #818cf8;
|
||||
--color-dream: #a855f7;
|
||||
--color-dream-glow: #c084fc;
|
||||
--color-memory: #3b82f6;
|
||||
--color-recall: #10b981;
|
||||
--color-decay: #ef4444;
|
||||
--color-warning: #f59e0b;
|
||||
|
||||
/* Node type colors */
|
||||
--color-node-fact: #3b82f6;
|
||||
--color-node-concept: #8b5cf6;
|
||||
--color-node-event: #f59e0b;
|
||||
--color-node-person: #10b981;
|
||||
--color-node-place: #06b6d4;
|
||||
--color-node-note: #6b7280;
|
||||
--color-node-pattern: #ec4899;
|
||||
--color-node-decision: #ef4444;
|
||||
|
||||
--font-mono: 'JetBrains Mono', 'Fira Code', 'SF Mono', monospace;
|
||||
}
|
||||
|
||||
/* Base styles */
|
||||
html {
|
||||
background: var(--color-void);
|
||||
color: var(--color-text);
|
||||
font-family: var(--font-mono);
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Scrollbar */
|
||||
::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
background: var(--color-abyss);
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--color-subtle);
|
||||
border-radius: 3px;
|
||||
}
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--color-muted);
|
||||
}
|
||||
|
||||
/* Glow effects */
|
||||
.glow-synapse {
|
||||
box-shadow: 0 0 20px rgba(99, 102, 241, 0.3), 0 0 60px rgba(99, 102, 241, 0.1);
|
||||
}
|
||||
.glow-dream {
|
||||
box-shadow: 0 0 20px rgba(168, 85, 247, 0.3), 0 0 60px rgba(168, 85, 247, 0.1);
|
||||
}
|
||||
.glow-memory {
|
||||
box-shadow: 0 0 20px rgba(59, 130, 246, 0.3), 0 0 60px rgba(59, 130, 246, 0.1);
|
||||
}
|
||||
|
||||
/* Pulse animation for live indicators */
|
||||
@keyframes pulse-glow {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.5; }
|
||||
}
|
||||
.animate-pulse-glow {
|
||||
animation: pulse-glow 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
/* Neural particle animation */
|
||||
@keyframes float {
|
||||
0%, 100% { transform: translateY(0) translateX(0); }
|
||||
25% { transform: translateY(-10px) translateX(5px); }
|
||||
50% { transform: translateY(-5px) translateX(-5px); }
|
||||
75% { transform: translateY(-15px) translateX(3px); }
|
||||
}
|
||||
|
||||
/* Retention bar colors */
|
||||
.retention-critical { color: var(--color-decay); }
|
||||
.retention-low { color: var(--color-warning); }
|
||||
.retention-good { color: var(--color-recall); }
|
||||
.retention-strong { color: var(--color-synapse); }
|
||||
Loading…
Add table
Add a link
Reference in a new issue