Hitonabi
56243e1835
Feat: Gedaechtnis-Graph-Ansicht (Reagraph) + /api/memory/graph
...
Obsidian-artige Visualisierung des Gedaechtnisses: Knoten = Fakten, Kanten =
semantische Aehnlichkeit (Kosinus der gespeicherten Embeddings, kNN je Knoten),
Farbe = Kategorie, Groesse = Vernetzung. Klick auf Knoten -> Detailpanel mit
verwandten Fakten + vergessen.
- mem0_service/app.py: /graph rechnet Aehnlichkeitskanten aus den Chroma-Embeddings.
- backend: services.memory.graph() + /api/memory/graph (Passthrough).
- frontend: GraphView (reagraph, WebGL), Graph/Liste-Umschalter in MemoryView,
GraphErrorBoundary, lazy-load (three.js nur bei Bedarf -> Hauptbundle bleibt schlank).
reagraph auf 4.22.0 gepinnt (4.23+ braucht @react-three/fiber v9 = React 19; Projekt ist React 18).
Live gegen die Box verifiziert (Graph rendert, Kategorien-Farben, Kanten, dunkel).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-27 20:30:17 +02:00
Hitonabi
ea256fca0d
Feat: System-Status als poliertes Live-Chart (Recharts) - Legende, Hover-Tooltip, Spline
...
Auf Wunsch im Stil der Referenz-Dashboards: unified Live-Chart (CPU/RAM/GPU/Disk) mit
glatten Flaechen (monotone), Gradient-Fill, Legende mit Live-Werten + GB-Detail, und
gestyltem Hover-Tooltip (alle Serien an der Cursor-Position). Dynamische Y-Achse
(skaliert in 25er-Schritten auf den Peak), damit Linien auch bei idle-Box den Chart
ausfuellen. Reines Live (kein Monats-/Jahres-Dropdown), rollende 40 Punkte (~2 Min).
- recharts als Dependency
- Sparkline.tsx entfernt (durch Recharts ersetzt)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-27 16:34:53 +02:00
Hitonabi
0266dc9e92
Refactor: TanStack-Query-Daten-Layer + useDialog (Phase 3b)
...
- @tanstack/react-query (v5) als zentraler Daten-Layer; QueryClientProvider
in main.tsx (retry 1, kein refetchOnWindowFocus, staleTime 5s).
- lib/queries.ts: Domänen-Hooks (useHealth/useSystemStatus/useServices/
useModels/useRouting/useJobs/useTokenStats/useAgentStatus/useUpdates/
useDiscover/useConnect/useMemory) + zentrale Query-Keys (qk) + invalidate.
Gleicher Key = eine Anfrage über alle Views (Dedup), einheitliches Polling.
- lib/useDialog.tsx: ein Hook für Alert/Confirm/Prompt statt 5x dupliziertem
Dialog-State + showAlert/showConfirm.
- api.ts: TokenStats + ModelsResp typisiert.
- Migriert auf Hooks/useDialog: App, SystemView, AgentView, ConnectView,
MemoryView (manuelles useEffect+setInterval entfernt; Mutationen
invalidieren gezielt die Query-Keys).
Verifiziert: tsc grün, Build grün, alle migrierten Views ohne Konsolenfehler,
Live-Daten (CPU/RAM/Dienste) rendern korrekt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-26 14:46:26 +02:00
Hitonabi
b805c294eb
feat(2.0): Phase 0 — Greenfield-Skeleton (FastAPI + React/shadcn)
...
Backend: FastAPI mit /api/health + /api/models (read-only aus llama-swap
config, Logik aus v1 portiert). Frontend: Vite + React + Tailwind v4 +
shadcn-Style App-Shell mit Cmd+K, Dark-default, PWA-Manifest; Modelle-View
live aus /api/models. Deploy-Geruest (systemd-Unit :9001, build/deploy-
Skripte, NOPASSWD-sudoers, kein Klartext-Passwort).
Verifiziert: Backend-Endpunkte + Frontend-Build + gerenderte Shell.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-24 22:17:45 +02:00