Commit graph

19 commits

Author SHA1 Message Date
Eddy
120715982b Phasen 12-15: Hooks, VSCodium-Bridge, Programm-Steuerung, Schulungsmodus
Phase 12 Hook-System (hooks.rs + HooksPanel):
- HookManager mit Event-Registry + Ausfuehrungs-Log
- 5 Built-in Hooks (SessionStart, PreToolUse, PostToolUse,
  BeforeCompacting, AfterCompacting)
- Tauri-Commands: list_hooks, set_hook_enabled, get_hook_executions, fire_hook
- HooksPanel.svelte mit Live-Ausfuehrungs-Log

Phase 13 VSCodium-Integration:
- vscode-extension/: WebSocket-Server auf Port 7890
  (Commands: openFile, goToLine, formatDocument, findInFiles,
   openTerminal, getStatus, executeCommand, ping)
- src-tauri/src/ide.rs: WebSocket-Client via tokio-tungstenite
- IdePanel.svelte: Status, Port-Konfig, Ping-Test, Live-Anzeige aktive Datei

Phase 14 Programm-Steuerung (programs.rs + ProgramsPanel):
- D-Bus: dbus_call + dbus_list_services
- Xvfb: start/stop/status + screenshot (scrot)
- Playwright-Info (MCP-Verweis)
- ProgramsPanel mit 4 Sektionen (VSCodium, Playwright, D-Bus, Xvfb)

Phase 15 Schulungsmodus (teaching.rs + presentation/+page.svelte):
- Separates Tauri-Webview-Fenster
- MermaidDiagram.svelte (dynamic import mermaid)
- AnimatedCode.svelte mit WPM-Steuerung
- Tauri-Commands: presentation_open/close/send_slide/clear
- 🎓-Button in der Titelbar
- Capabilities um core:webview:allow-create-webview-window erweitert

Deps:
- Cargo: +tokio-tungstenite 0.23, +futures-util 0.3
- npm: +mermaid ^11.4.0 (npm install erforderlich)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:10:41 +02:00
Eddy
6b8f28145f Performance-Panel mit Kosten-Tracker und Statistiken
- Neues PerformancePanel.svelte mit:
  - Kosten-Übersicht (Session, Heute, Gesamt)
  - Token-Statistiken mit Input/Output Ratio-Balken
  - Latenz-Verteilung (Min, P50, P95, Max)
  - Fehlerrate-Anzeige
  - Letzte Sessions Übersicht
- Neuer Tab "📈 Kosten" im mittleren Panel

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:25:13 +02:00
Eddy
eb91e54ede Phase 9: Intelligentes Context-Management
- context.rs: Drei-Schichten-Gedächtnis (Sticky, Projekt, Wissens-Hints)
- StickyContext für kritische Infos (User, Credentials, Regeln)
- ProjectContext für Entscheidungen und TODOs nach Compacting
- DB-Schema: sticky_context, compacting_archive, context_failures
- ContextPanel.svelte: UI zur Verwaltung des Sticky Context
- Neuer Tab "Context" im rechten Panel

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 13:35:07 +02:00
Eddy
e6bd0de3da Phase 8: Claude-DB Integration — Wissensbasis-Anbindung
- knowledge.rs: MySQL-Verbindung zu claude-db (192.168.155.1)
- Volltextsuche mit MATCH AGAINST
- "Das merken" Feature zum Speichern
- KnowledgePanel.svelte: Suche, Filter, Detail-View
- Neuer Tab "Wissen" im mittleren Panel

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 13:27:59 +02:00
Eddy
adb11fd121 Phase 16: System-Monitor (Debug-Panel)
Neue Komponenten:
- MonitorPanel.svelte: Live-Event-Stream mit Farbcodierung
- MonitorEvent Store in app.ts (Ringbuffer max 1000)

Features:
- 🔵 API-Events (Request/Response, Token, Kosten, Latenz)
- 🟡 Tool-Events (Name, Parameter, Dauer)
- 🟠 Agent-Events (Start/Stop)
- 🔴 Error-Events
- Filter nach Event-Typ
- Auto-Scroll toggle
- Detail-Ansicht bei Klick
- Copy-Button für Details
- Statistik-Anzeige (API-Calls, Errors, Avg Latency)

claude-bridge.js:
- sendMonitorEvent() Funktion
- summarizeToolInput() für kompakte Zusammenfassung
- Events bei API-Start, API-Ende, Tool-Start, Fehler

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 12:40:29 +02:00
Eddy
433e2de2b6 Modell-Auswahl in Settings implementiert
- Neues SettingsPanel mit Modell-Auswahl (Haiku/Sonnet/Opus)
- Modell wird in SQLite persistiert (claude_model Setting)
- Bridge unterstützt set-model und get-models Commands
- Modell kann zur Laufzeit gewechselt werden
- Preisanzeige pro Modell im Settings-Panel
- Aktuelles Modell wird beim App-Start geladen

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 09:32:26 +02:00
Eddy
e48519fff4 PaneForge statt eigener Resize-Logik — funktionierendes Drag
Eigene Resize-Implementierung komplett ersetzt durch PaneForge Library:
- Getestet, Svelte 5 kompatibel, funktioniert in WebKitGTK
- autoSaveId für automatische Persistierung in localStorage
- minSize/maxSize pro Panel in Prozent
- Kein eigener Pointer-Event-Code mehr nötig

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:26:20 +02:00
Eddy
f414e820e6 Fix: Rechtes Panel tatsächlich kleiner schiebbar
Alle Panels nutzen jetzt feste px-Werte, das letzte Panel bekommt
den Restplatz über JS-Berechnung statt CSS 1fr. Dadurch kann der
Drag-Handle die Breite tatsächlich reduzieren.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:24:00 +02:00
Eddy
8a6ed764c5 Fix: Rechtes Panel frei zusammenschiebbar (minmax 80px statt gespeichertem Wert)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:22:20 +02:00
Eddy
e16a9c720a Fix: Letztes Panel füllt Restbreite (kein toter Bereich rechts)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:21:39 +02:00
Eddy
fa60ade2fc Fix: applyWidths() generiert korrekt 7 Grid-Spalten mit Handle-Gaps
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:20:54 +02:00
Eddy
82f40b6ae2 Fix: Resizable Panels via Pointer Events + setPointerCapture
Komplett auf Vanilla JS Pointer Events umgestellt:
- setPointerCapture() fängt ALLE Events am Handle-Element (kein Overlay nötig)
- touch-action: none auf Handles (WebKitGTK Kompatibilität)
- addEventListener in onMount statt Svelte on: Syntax
- Handles als sichtbare 8px Grid-Spalten (nicht absolute)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:13:46 +02:00
Eddy
eb8e2ac1d7 Fix: Resize-Handles als absolute Overlays statt Grid-Spalten
Komplett neuer Ansatz: Handles sind absolut positionierte 8px-Elemente
über den Panel-Grenzen statt schmale Grid-Spalten. Behebt das Problem
dass WebKitGTK Mouse-Events auf engen Grid-Zellen nicht registriert.

- Handles position:absolute über kumulierten Panel-Breiten
- 8px breit, transparent, wird blau beim Hover
- Drag-Overlay (position:fixed) fängt Events während Drag
- document.addEventListener statt window für bessere Kompatibilität

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:27:32 +02:00
Eddy
a0ad11b66c Fix: Resizable Panels — Drag-Overlay verhindert Text-Selektion
- Unsichtbares Fullscreen-Overlay während Drag fängt alle Maus-Events
- document.body.style.userSelect blockiert sofort bei mousedown
- Bestehende Selektion wird beim Drag-Start gelöscht
- Handle 5px breit + unsichtbarer 15px Greifbereich (::before)
- Visueller Grip-Indikator beim Hover

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:17:44 +02:00
Eddy
92353e2852 Fix: Grid-Template für 7 Spalten (4 Panels + 3 Handles)
Grid hatte nur 4 Spalten-Werte für 7 Kinder — Handles wurden
in die nächste Zeile umgebrochen. Jetzt korrekt: panel 3px panel 3px ...

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:16:15 +02:00
Eddy
56c967b618 Resizable Panels — alle Bereiche per Drag ziehbar
- 3 Resize-Handles zwischen den 4 Panels (Session/Chat/Aktivität/Agents)
- Mindestbreite 120px pro Panel
- Panel-Breiten werden in localStorage gespeichert und beim Neustart geladen
- Visuelles Feedback: Handle wird blau beim Hover/Drag

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:13:50 +02:00
Eddy
f101661016 Phase 5: Session-Verwaltung + permanente Konversationen
- session.rs: Neues Modul mit 7 Tauri-Commands (CRUD, Resume, aktive Session)
- db.rs: Sessions-Tabelle + CRUD-Methoden (bleiben bis User sie löscht)
- claude.rs: Session-ID und Token/Kosten automatisch in DB speichern
- SessionList.svelte: Sidebar mit Session-Liste, Erstellen, Fortsetzen, Löschen
- +page.svelte: 4-Panel Layout (Sessions | Chat | Aktivität | Agents)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:11:17 +02:00
Eddy
ff423e9d80 Phase 4: Tab-Switching, Markdown-Rendering, Guard-Rails UI
- +page.svelte: Echtes Tab-Switching (Aktivität/Gedächtnis/Historie + Agents/Guard-Rails)
- ChatPanel: Markdown-Rendering via marked, Auto-Scroll, verbessertes Layout
- GuardRailsPanel: Neue Komponente für Permission-Verwaltung (CRUD, blockierte Patterns)
- package.json: marked als Dependency

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 18:31:33 +02:00
Eddy
2822796c7a Initial Commit: Claude Desktop Grundgerüst
- Tauri 2.0 + SvelteKit Projekt aufgesetzt
- Basis-UI mit 3 Panels (Chat, Aktivität, Präsentation)
- Roter STOPP-Button Footer
- Autonomes Gedächtnis-System (memory.rs)
- Änderungs-Log / Audit Trail (audit.rs)
- Multi-Agent-View Komponenten
- NixOS Entwicklungsumgebung (shell.nix)

Phase 1 abgeschlossen, Claude SDK Integration folgt.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-13 12:16:20 +02:00