# Changelog Alle nennenswerten Änderungen an Claude Desktop werden hier dokumentiert. Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/). --- ## [Unreleased] - 2026-04-22 ### Hinzugefügt (Phase 7: VS Code Extension Features) - **Accept/Reject DiffView**: Dateiänderungen nach Ausführung prüfen und akzeptieren oder rückgängig machen — DiffView mit interaktiven Buttons, Kompakt-Ansicht für große Diffs (`DiffView.svelte`, `checkpoint.rs`) - **Checkpoint/Rewind System**: Automatische Snapshots (content_before/content_after) bei Edit/Write Tool-Calls — SQLite-basiert, pro Session, Rewind auf beliebigen Checkpoint (`checkpoint.rs`, `db.rs`) - **@-Mentions im Chat**: `@datei.ts` öffnet Fuzzy-Autocomplete für Projektdateien, Dateiinhalt wird automatisch in den Prompt injiziert, Zeilenbereiche mit `#5-10` (`FileMention.svelte`, `context.rs`) - **Bridge Pending-Queue**: Nachrichten während laufender Claude-Verarbeitung werden gepuffert und automatisch nach dem aktuellen Turn verarbeitet — nahtloses Weitertippen (`claude-bridge.js`) - **Fuzzy File Search**: Score-basierter Algorithmus mit Start-Bonus, Separator-Bonus, Consecutive-Match — scannt Projektverzeichnis bis 5000 Dateien (`context.rs`) - **Session-Projekt-Sync**: Klick auf Session aktiviert automatisch das zugehörige Projekt (`SessionList.svelte`) - **Tool-ID Durchreichung**: Backend-IDs werden korrekt von tool-start bis tool-end durchgereicht — behebt endlos-pulsierende Aktivitätspunkte (`events.ts`, `app.ts`) ### Behoben - **Aktivitäts-Panel**: Grüne Punkte pulsieren nicht mehr endlos — Tool-IDs werden jetzt korrekt zwischen Backend und Frontend synchronisiert - **Session-Projekt-Verknüpfung**: Beim Klick auf eine Session wird das zugehörige Projekt automatisch aktiviert ### Hinzugefügt - **Bridge-Daemon (Phase 3)**: Bridge läuft als eigenständiger Daemon-Prozess, überlebt App-Neustarts — kein Cold-Start mehr (`claude-bridge.js --socket`, `claude.rs`) - **Unix Socket IPC (Phase 3)**: Kommunikation über Unix Domain Socket statt stdio — async, kein Block, Auto-Reconnect bei Verbindungsverlust (`claude.rs`, `claude-bridge.js`) - **Bridge-Status API**: `get_bridge_status` Command — zeigt Verbindungsmodus (UDS/stdio), Daemon-PID, Socket-Pfad - **Daemon-Steuerung**: `stop_bridge_daemon` Command zum expliziten Stoppen des Daemon-Prozesses - **Modus-Indikator**: Badge im ChatPanel zeigt aktuellen Agent-Modus (Handlanger/Experten/Auto) mit Verarbeitungsphase - **Plan-Erkennung**: Claude-Antworten mit Plänen werden automatisch als Slides an das Präsentationsfenster gesendet (`planPresentation.ts`) - **Session-Projekt-Filter**: Sessions werden nach aktivem Projekt/Workspace gefiltert (`db.rs`, `session.rs`) - **Weibliche TTS-Stimme**: Kerstin als Standard-Stimme, 5 deutsche Stimmen wählbar (`voice.rs`) - **MCP-Hub nativ (Phase 4)**: MCP-Server werden aus `~/.claude.json` geladen und beim Bridge-Start injiziert — kein CLI-Umweg nötig (`claude.rs`, `claude-bridge.js`) - **MCP-Verwaltung**: Tauri-Commands `list_mcp_servers`, `add_mcp_server`, `remove_mcp_server` — Server zur Laufzeit hinzufügen/entfernen - **Ollama-Integration (Phase 5)**: Lokales Modell für einfache Tasks — Auto-Detect, `local-query` Command, konfigurierbar (`claude-bridge.js`, `claude.rs`) - **Offline-Queue (Phase 5)**: Nachrichten bei fehlender Verbindung in SQLite queuen, später automatisch senden (`session.rs`) - **UTF-8 Crash Fix**: Kein Panic mehr bei Multi-Byte-Zeichen in DB-Abfragen (`db.rs`, `knowledge.rs`) - **Guard-Rails UI (Live)**: 3-Tab-Ansicht (Live-Feed/Regeln/Blockiert), Risiko-Statistik-Leiste, Ein-Klick-Freigabe bei Bestätigungsbedarf, guard-check Events vom Backend (`GuardRailsPanel.svelte`, `guard.rs`) - **D-Bus Desktop-Aktionen**: 10 vordefinierte Aktionen (Dolphin, Kate, Konsole, Firefox, Notify, Lock Screen), Aktionen-Grid im ProgramsPanel, CLI/GUI-Unterscheidung (`programs.rs`, `ProgramsPanel.svelte`) - **Screenshot-Analyse**: Bildschirmbereich oder Vollbild capturen via spectacle/scrot/gnome-screenshot, Vorschau im Panel, "An Claude senden" Button (`programs.rs`, `ProgramsPanel.svelte`) - **Projekt-Wechsel**: Ein-Klick-Projektwechsel in der Sidebar — Dropdown mit Projektliste, Hinzufügen/Entfernen, Working-Dir + Sticky-Context wird automatisch umgeschaltet (`SessionList.svelte`, `db.rs`) - **File-Drop auf Chat**: Dateien per Drag & Drop auf den Chat ziehen — Text-Dateien als Code-Block, Bilder als Base64, Spracherkennung, 500KB-Limit (`ChatPanel.svelte`) - **Persistent Memory**: Auto-Load Memory-Einträge werden bei jeder Nachricht in den Claude-Context injiziert — Cross-Session Gedächtnis für Patterns, Zugänge, Präferenzen (`memory.rs`, `claude.rs`) - **Memory CRUD-Commands**: Speichern, Löschen, Auflisten, Auto-Load-Filter für Memory-Einträge als Tauri-Commands (`memory.rs`, `lib.rs`) - **Global Hotkey (Super+C)**: Claude-Eingabe von überall öffnen — Fenster wird angezeigt, fokussiert, Input-Feld aktiviert (`lib.rs`, `ChatPanel.svelte`) - **Clipboard-Watch**: Überwacht Zwischenablage, erkennt Code/URLs/Fehler/Pfade, zeigt Vorschlag im Chat (`clipboard.rs`, `ChatPanel.svelte`) - **File-Browser für Projekt-Wechsel**: Nativer Verzeichnis-Dialog statt manuellem Pfad, Auto-Name aus Ordnername (`SessionList.svelte`, `tauri-plugin-dialog`) - **Quick-Actions Palette (Ctrl+K)**: VS-Code-artige Kommandopalette mit Suche, Kategorien (Build, Git, Session, Navigation, Voice, Tools), Keyboard-Navigation (`QuickActions.svelte`) - **Lokales Voice (Phase 2.2)**: whisper-cli STT + piper-tts TTS, komplett lokal ohne OpenAI-API (`voice.rs`, `VoicePanel.svelte`) - **Chat-Detach**: Chat in separates Fenster herauslösen, Platz für andere Panels, Zurückholen per Button (`chat_window.rs`, `+page.svelte`) - **Aktivitäts-Phasen**: 4 Zustände (Denkt nach/Streamt/Tool-Nutzung/Subagent) statt nur "Denkt nach..." (`events.ts`, `ChatPanel.svelte`) - **Settings-Panel (VS Code Stil)**: Suchfeld, Kategorien-Sidebar, Commands/Hooks/Permissions-Verwaltung (`SettingsPanel.svelte`) - **GStreamer im Nix-Wrapper**: Mikrofon funktioniert jetzt auch in Produktion (PipeWire + gst-plugins) (`nix/default.nix`) - **Slash-Command Autocomplete**: `/`-Eingabe im Chat öffnet Dropdown mit allen Commands, Skills und Built-ins (`commands.rs`, `CommandPalette.svelte`) - **KB-Hints Injection**: Jede Nachricht an Claude bekommt automatisch relevante Wissensbasis-Einträge (`claude.rs`, `knowledge.rs`) - **Voice-zu-Claude-Pipeline**: Spracheingabe wird transkribiert, an Claude gesendet, Antwort per TTS vorgelesen (`VoicePanel.svelte`) - **Pattern-Detektion**: Tool-Fehler werden automatisch gegen bekannte Fehler-Patterns geprüft (`events.ts`) - **Hook-Dispatch**: SessionStart, PreToolUse, PostToolUse feuern echte Events ans Frontend (`hooks.rs`, `events.ts`) - **Updater Lock-Datei System**: PID-basiertes Locking verhindert parallele Update-Instanzen (`update.rs`) - **Updater Bestätigungs-Dialog**: User muss Update-Installation bestätigen statt Überraschungs-Restart (`UpdateDialog.svelte`) - **Updater Graceful Shutdown**: Frontend bekommt 2s Zeit zum State-Speichern vor Restart (`update.rs`, `lib.rs`) - **Command-Registry**: Scannt `~/.claude/commands/` und `~/.claude/skills/` für Autocomplete (`commands.rs`) ### Geändert - SQL-Queries in `knowledge.rs` sortieren jetzt nach `priority DESC` (höchste Priorität zuerst) - `get_tool_hints()` korrigiert: War fälschlich `priority ASC`, jetzt `DESC` - `search_knowledge()` filtert jetzt auch nach `status = 'active'` - `UpdateDialog.svelte` auf Svelte 5 Runes migriert (`$state`, `$effect`, `$derived`) - `lib.rs`: App-Lifecycle erweitert um Lock-Datei create/remove bei Start/Exit ### Behoben - **Svelte 5 Event-Syntax**: Alle `on:click` → `onclick` in SessionList.svelte (keine Mixed-Syntax mehr) - **Mikrofon hängt**: PipeWire-Fallback + 5s getUserMedia-Timeout wenn PipeWire nicht läuft (`nix/default.nix`, `ChatPanel.svelte`) - **Update-Fortschrittsbalken**: Erreicht jetzt visuell 100% vor der Bestätigungsmeldung (`update.rs`, `UpdateDialog.svelte`) - **Mikrofon in Produktion**: GStreamer + PipeWire-Plugins fehlten im Nix-Wrapper, WebKitGTK konnte getUserMedia nicht nutzen (`nix/default.nix`) - Updater konnte Binary ersetzen während App noch lief (kein Lock, kein Prozess-Check) --- ## [0.1.0] - 2026-04-14 ### Erstveröffentlichung Enthält Phase 1-16 der Roadmap: - Tauri 2.0 + SvelteKit 5 App-Grundgerüst - Claude Agent SDK Integration mit Live-Streaming - 4-Panel Layout mit 24 UI-Komponenten - SQLite Persistierung + Session-Management - Guard-Rails System für kontrollierte OS-Zugriffe - Claude-DB Integration (Wissensbasis durchsuchen/speichern) - Intelligentes Context-Management (3-Schichten-Gedächtnis) - Sprach-Interface (Whisper STT + OpenAI TTS) - Multi-Agent-Architektur (Solo/Handlanger/Experten-Modi) - Hook-System für Automatisierung - VSCodium-Integration (WebSocket-Bridge) - Programm-Steuerung (D-Bus, Xvfb, Playwright) - Präsentations- & Schulungsmodus - System-Monitor mit Performance-Metriken - Subagent-Hierarchie mit Baumansicht - CI/CD Pipeline (Forgejo Actions → AppImage)