Commit graph

10 commits

Author SHA1 Message Date
Eddy
87ba8f7bdf feat: Global Hotkey (Super+C) + Clipboard-Watch + Desktop-Integration [appimage]
All checks were successful
Build AppImage / build (push) Successful in 8m53s
- Global Hotkey: Super+C öffnet Claude-Fenster und fokussiert Input von überall
- Clipboard-Watch: Erkennt Code/URLs/Fehler/Pfade in Zwischenablage, zeigt Vorschlag
- tauri-plugin-global-shortcut + tauri-plugin-dialog integriert
- focus-chat-input Event für Hotkey → Input-Fokus
- clipboard-changed Event für Watch → Chat-Vorschlag

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-21 11:50:56 +02:00
Eddy
6efbd5de5f feat: Projekt-Wechsel mit File-Browser + Nix-Wrapper Audio-Fixes [appimage]
All checks were successful
Build AppImage / build (push) Successful in 9m35s
- File-Browser Dialog (tauri-plugin-dialog) für Projektverzeichnis-Auswahl
- Auto-Name aus Verzeichnisname beim Projekt-Hinzufügen
- Nix-Wrapper: GStreamer Core-Plugins (valve) + ffmpeg-headless im PATH
- Nix-Wrapper: Version 0.1.1 mit korrektem gstreamer.out Output

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-21 11:37:07 +02:00
Eddy
f287514af5 Phase 2.2: Lokales Voice — whisper-cli + piper-tts, Gesprächsmodus mit VAD
Some checks failed
Build AppImage / build (push) Has been cancelled
OpenAI komplett entfernt. Voice läuft jetzt offline mit lokalen Binaries:
- whisper-cli (whisper-cpp 1.8.3) für Speech-to-Text
- piper-tts mit Thorsten-Stimme (Deutsch) für Text-to-Speech
- GStreamer + PipeWire in shell.nix für WebKitGTK Mikrofon-Zugriff
- VoicePanel: Echtgespräch mit VAD-Stille-Erkennung, Interrupt, Loop
- Models in .gitignore (~250MB)

[appimage]

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-21 08:48:03 +02:00
Eddy
506f1d3fdc [appimage] Auto-Updater: Package Registry + update.json + Nix-Wrapper
All checks were successful
Build AppImage / build (push) Successful in 7m52s
- update.rs: Umstellung auf Package-Registry-Manifest mit SHA256-Verify,
  Basic-Auth, dev/APPIMAGE/Nix-Wrapper-Modus. Liest binary_filename
  im Nix-Modus (AppImage laeuft auf NixOS nicht)
- Nix-Wrapper-Paket (nix/default.nix): LD_LIBRARY_PATH-korrekter Launcher
  + Installer-Script, User-Home-Binary (writable fuer Auto-Update)
- CI laedt jetzt AppImage UND natives Binary + update.json v2
  (binary_filename/binary_sha256) in die Package Registry
- Svelte: Store-basierter Update-Trigger, manueller Check im
  Settings-Panel, "Kein Update"-Dialog-Variante, expectedSha256-Param
- install.sh: One-Click-Installer fuer NixOS (curl | bash)
- sha2-Dep fuer Integritaets-Check des Downloads

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 11:05:19 +02:00
Eddy
a519a7cdd2 Feature: Auto-Update System für AppImage
- Backend (update.rs): Forgejo-API Check, Download mit Progress-Events, AppImage-Replace + Restart
- Frontend (UpdateDialog.svelte): Modal mit Version, Release-Notes, Fortschrittsbalken
- Automatischer Update-Check 3s nach App-Start
- reqwest mit stream-Feature für Download-Progress

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 14:06:23 +02:00
Eddy
a203589eda Fix: Date-Panic in Wissensbasis (chrono::NaiveDateTime)
- mysql_async mit chrono-Feature für NaiveDateTime-Support
- 7 SELECTs in knowledge.rs von String auf NaiveDateTime umgestellt
- Timestamps werden jetzt korrekt formatiert statt Panic

Getestet:
- Wissens-Suche funktioniert ohne Crash
- Handlanger-Modus Chat-Antwort erscheint
- VSCodium-Extension Verbindung OK

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 12:43:41 +02:00
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
314042a01f Phase 11 Basis: Multi-Agent-Modi mit Tool-Filterung
Bridge (scripts/claude-bridge.js):
- allowedTools je nach Agent-Modus erzwingt Delegation
- Handlanger: nur Task + TodoWrite
- Experten: Task + TodoWrite + Read + Grep + Glob
- Solo/Auto: unveraendert

Backend (src-tauri/src/claude.rs):
- Mode-Persistenz: nach bridge-ready wird gespeicherter Modus gesetzt
- Catch-all Event-Handler: leitet unbekannte Bridge-Events generisch
  ans Frontend weiter (subagent-started, monitor-event, mode-changed, ...)

UI (routes/+layout.svelte, stores/events.ts):
- Modus-Badge im Footer (Handlanger orange, Experten lila, Auto cyan)
- mode-changed Event-Listener synchronisiert agentMode Store

Bugfix voice.rs:
- reqwest::multipart::Part::file existiert nicht → auf Part::bytes umgestellt
- keine Temp-Datei mehr noetig

Bugfix knowledge.rs:
- Type-Annotation bei category Option<&str> fuer exec_map Inference

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:39:17 +02:00
Eddy
51239d6639 Sticky Context Auto-Load beim App-Start
- init_sticky_context Tauri Command: Lädt Context aus DB, sendet an Bridge
- Frontend ruft Command beim Start auf (+layout.svelte)
- StickyContextInfo Store für Status-Tracking
- Context-Badge im Footer (📌 +XXctx Token)
- Zeigt Anzahl Einträge und Token-Schätzung

Bugfixes:
- context.rs: Typ-Annotationen in Closures (String statt str)
- db.rs: conn als pub(crate) für Module-Zugriff
- memory.rs: get_sticky_context → get_sticky_memory_entries (Namenskonflikt)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:39:39 +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