Hitonabi
9375b8eea8
Politur: Gedaechnis-Graph auf react-force-graph-2d umgestellt (elastische D3-Physik, fliessende Datenpartikel, 100% lesbare Text-Pillen)
2026-07-09 12:16:29 +02:00
root
97be0f1d00
feat: lower memory dedupe threshold for more aggressive cleaning
2026-07-07 16:45:30 +02:00
Hitonabi
d832f90ad6
Feat: Gedächtnis-Tab überarbeitet — Sigma.js-Graph (skaliert), Liste als Default + gruppiert
...
Graph: reagraph (three.js, schwer, hing Renderer) → Sigma.js v3 + graphology (graph-optimiertes WebGL,
skaliert auf tausende Knoten), im App-Look: Kategorie-Farben, Knotengröße nach Verknüpfungen,
Hover-Highlight (Nachbarn hervor, Rest dimmt), Legende. Liste ist jetzt Default + nach Kategorie
gruppierte Sektionen (statt flacher Wand). reagraph deinstalliert → leichteres Bundle.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-28 11:09:33 +02:00
Hitonabi
8e7ce1b1d3
Feat: Sprechen-Tab — mit Hermes per Sprache reden (Browser-Voice + 3D-Avatar)
...
Voll-Duplex Sprach-Interaktion vom lokalen PC mit dem vollen Hermes-Agenten
(api_server :8642, OpenAI-kompatibel → gleiche Tools + geteiltes Mem0 wie CLI/Telegram).
- Voice-Sidecar (voice_service/, eigenes Py3.12-venv ~/.voice, :8650): STT faster-whisper
(medium, de) + gestuftes TTS — Piper (schnell, Default) + Chatterbox (premium, Voice-Cloning,
lazy-load, CPU-Start). Analog mem0_service.
- Backend: routers/voice.py (Proxy /api/voice/stt|tts|voices + /chat-SSE an Hermes mit
Bearer API_SERVER_KEY + X-Hermes-Session-Id für server-seitigen Verlauf). config.py:
VOICE_SERVICE_URL + HERMES_API_KEY (Fallback aus ~/.hermes/.env). System-Dienstliste +
Wartung (Restart/Logs) um voice-service ergänzt.
- Frontend: Sprechen-Tab mit 3D-Avatar (VRM via three-vrm) — Lippensync (Web-Audio-Pegel),
Blinzeln, Sentiment-Mimik, Ruhepose. Avatar-Picker (CORS-freie Galerie + .vrm-Upload + URL
+ VRoid-Hub-Link) + Stimm-Auswahl. Push-to-talk (Knopf/Leertaste). Deps: three, r3f, drei.
- Deploy: deploy/voice-service.service + deploy.sh (idempotenter Sidecar-Install, enable, restart).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-27 23:26:58 +02:00
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