claude-desktop/ROADMAP.md
Eddy ad9833fcb8
Some checks failed
Build AppImage / build (push) Has been cancelled
feat: Phase 8+9 — Inline Tool-Karten + komplettes UI-Redesign auf Cursor/Zed-Niveau [appimage]
Phase 8 (VS-Code-Look Chatbereich):
- Linksbuendige Messages mit Avatar-Spalte, Hover-Actions
- Inline Tool-Karten (Read/Edit/Bash/Generic) in Assistant-Messages
- Edit-Karten zeigen Diff direkt mit Accept/Reject
- Tool-Calls werden via events.ts an letzte Assistant-Message gebunden
- Smart-Sticky-Scroll (Auto-Scroll stoppt wenn User selbst scrollt)
- OOM-Bug durch MutationObserver mit subtree:true behoben

Phase 9 (Komplettes UI-Redesign):
- Design-System in app.css: 4 Graustufen, 1 Akzent (#007acc), 4 Status-Farben,
  5 Schriftgroessen (11/12/13/14/16), 4-Punkt-Spacing, 2 Radius-Werte
- vscode.css als Aliase auf das neue System
- UI-Library src/lib/ui/: Button, Card, Icon, Badge, StatusDot, Tooltip, Drawer, Tabs
- Lucide-svelte fuer SVG-Icons (ersetzt Emojis im Chrome)
- StatusBar (22px) ersetzt ueberfuellten Footer mit 6+ Stats
- Titlebar entruempelt: ✱-Logo + Stop + Schulungsmodus + Version
- 2-spaltiges Layout (Sidebar 240px + Hauptbereich) statt 4-Pane-Zerstueckelung
- ToolDrawer: 13 Panels in 4 Gruppen (Aktivitaet/Speicher/Werkzeuge/Einstellungen),
  jede Gruppe mit internen Tabs, Esc schliesst
- Cmd+K global oeffnet QuickActions als zentrale Navigation
- StatusDot-Komponente ersetzt Emoji-Status (🟢🟡🔴) in AgentView
- Hardgecodete Farben (#ef4444, #22c55e, #eab308 ...) in 9 Komponenten durch
  CSS-Variablen ersetzt

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 14:27:09 +02:00

10 KiB

Claude Desktop — Roadmap

Stand: 27.04.2026


Ziel

Claude Desktop soll schneller und maechtiger sein als Codium + Claude Code Extension. Kein Feature-Bloat — nur das was echten Geschwindigkeits- und Produktivitaetsvorteil bringt.


Abgeschlossen (v0.1.0 — 14.04.2026)

Alles aus Phase 1-16 ist implementiert und funktionsfaehig:

  • Tauri 2.0 + SvelteKit 5 + Claude Agent SDK
  • 4-Panel Layout mit 24 UI-Komponenten
  • Claude Bridge (Node.js, stdio JSON-Lines)
  • Guard-Rails System (Safe/Moderate/Critical/Blocked)
  • SQLite Persistierung + Session-Management
  • Claude-DB Integration (Wissensbasis durchsuchen/speichern)
  • 3-Schichten Context-Management (Sticky/Projekt/Hints)
  • Sprach-Interface (Whisper STT + OpenAI TTS)
  • Multi-Agent-Modi (Solo/Handlanger/Experten/Auto)
  • Hook-System (SessionStart, PreToolUse, PostToolUse)
  • VSCodium-Extension (WebSocket Port 7890)
  • Programm-Steuerung (D-Bus, Xvfb, Playwright-MCP)
  • Praesentations-/Schulungsmodus
  • System-Monitor + Performance-Metriken
  • Subagent-Hierarchie mit Baumansicht
  • Auto-Updater (Forgejo Package Registry)
  • Slash-Command Autocomplete
  • KB-Hints Injection + Proaktive Intelligenz
  • Error-Pattern Auto-Detection (3x → KB-Eintrag)

Phase 3: Performance (naechster Schritt)

Ziel: Erste Antwort in < 1s, Bridge immer warm, kein Warten.

Feature Datei(en) Status
KB-Cache (RAM) knowledge.rs 60s TTL, LRU, max 100 Entries
Bridge Warm-Start lib.rs, claude.rs Start bei App-Launch, kein Cold-Start
Lazy Panel-Load +page.svelte Dynamic Import mit Cache
Session-Resume Fix claude-bridge.js Stale ID → auto-Retry neue Session
Auto-Retry (Netzwerk) claude-bridge.js 3x Backoff bei Rate-Limit/5xx
Bridge Heartbeat claude-bridge.js 30s Pulse an Rust
FIFO Message Queue ChatPanel.svelte Mehrere Nachrichten queuen
Bridge-Daemon claude.rs, claude-bridge.js Bridge ueberlebt App-Neustart (--socket Flag)
Unix Socket IPC claude.rs, claude-bridge.js stdio → UDS (async, Reconnect, PID-Tracking)

Phase 4: Codium-Killer Features

Ziel: Dinge die Codium + Extension prinzipbedingt NICHT koennen.

Feature Datei(en) Status
Projekt-Wechsel db.rs, SessionList.svelte Ein Klick wechselt Projekt (CWD, Context, KB-Filter)
MCP-Hub nativ claude.rs, claude-bridge.js MCP-Server aus .claude.json, UI-Verwaltung, Runtime-Injection
Guard-Rails UI guard.rs, GuardRailsPanel.svelte Live-Feed, Risiko-Statistik, Ein-Klick-Freigabe, 3 Tabs
Persistent Memory memory.rs, claude.rs Auto-Load Eintraege in Context, Cross-Session Gedaechtnis
Quick-Actions QuickActions.svelte, ChatPanel.svelte Ctrl+K Palette: Deploy, Build, Test, Commit, Git, Navigation
Voice-Conversation voice.rs, VoicePanel.svelte Lokales Whisper STT + Piper TTS, VAD, Gespraechsmodus
Settings-Panel SettingsPanel.svelte VS-Code-artiges Layout mit Suche, Kategorien, Commands, Hooks
Chat-Detach chat_window.rs, +page.svelte Chat in separates Fenster herausloesen/zurueckholen
Aktivitaets-Phasen events.ts, ChatPanel.svelte 4 Phasen: Denkt/Streamt/Tool/Subagent statt nur "Denkt nach"

Phase 5: Lokale KI + Offline

Ziel: Unabhaengig von Cloud fuer Routine-Tasks.

Feature Datei(en) Status
Whisper.cpp lokal voice.rs whisper-cli STT, Thorsten-DE Modell, kein OpenAI noetig
Piper-TTS lokal voice.rs piper-tts mit thorsten_emotional (high), offline
Lokales Haiku-Equivalent claude-bridge.js, claude.rs Ollama-Integration, Auto-Detect, local-query Command
Offline-Queue session.rs SQLite-Queue, queue/flush/clear Commands, Auto-Retry

Phase 6: Desktop-Integration (Linux-Native)

Ziel: Claude steuert den Desktop wie ein zweiter User.

Feature Datei(en) Beschreibung
D-Bus Actions programs.rs, ProgramsPanel.svelte 10 Aktionen: Dolphin, Kate, Konsole, Firefox, Notify, Lock
Clipboard-Watch clipboard.rs Claude reagiert auf Clipboard-Inhalt (Code/URL/Fehler erkennen)
File-Drop ChatPanel.svelte Dateien auf Chat droppen → Claude analysiert/bearbeitet
Screenshot-Analyse programs.rs, ProgramsPanel.svelte Spectacle/Scrot Region-Capture, Vorschau, an Chat senden
Global Hotkey lib.rs Super+C oeffnet Claude-Eingabe von ueberall

Phase 7: VS Code Extension Features

Ziel: Die besten Features der Claude Code VS Code Extension uebernehmen — Accept/Reject, @-Mentions, Checkpoints.

Feature Datei(en) Status
Accept/Reject DiffView DiffView.svelte, checkpoint.rs, db.rs Post-Execution Approval mit Revert, Kompakt-Ansicht, interaktive Buttons
Checkpoint/Rewind checkpoint.rs, db.rs, claude.rs, claude-bridge.js Automatische Snapshots bei Edit/Write, SQLite-basiert, Rewind auf beliebigen Punkt
@-Mentions FileMention.svelte, context.rs, ChatPanel.svelte Fuzzy-Autocomplete, Dateiinhalt-Injection, Zeilenbereiche (#5-10)
Bridge Pending-Queue claude-bridge.js Nachrichten waehrend laufender Verarbeitung puffern, Auto-Dispatch nach Turn
Tool-ID Sync events.ts, app.ts Backend-IDs korrekt durchreichen, Aktivitaets-Punkte Bug behoben
Session-Projekt-Sync SessionList.svelte Session-Klick aktiviert zugehoeriges Projekt automatisch

Phase 8: VS-Code-Look — Chatbereich-Redesign

Ziel: Chatbereich strukturell und visuell wie die offizielle Claude Code Extension fuer VS Code/Codium gestalten — linksbuendige Messages, Inline-Tool-Karten, VS-Code-Dark-Theme. ChatPanel.svelte (~2000 Z.) wird in fokussierte Teilkomponenten zerlegt.

Feature Datei(en) Status
VS-Code-Theme-Variablen theme/vscode.css, +layout.svelte --vscode-* Custom Properties + Aliase fuer Altcode
Inline-Render via MessageList ChatPanel.svelte Messages-Bereich in <MessageList /> ausgelagert; Logik bleibt im Container
Message.svelte Message.svelte (NEU) Avatar links, linksbuendig, Hover-Actions (Edit/Regenerate/Copy/Merken/Rewind)
MessageList.svelte MessageList.svelte (NEU) Smart-Sticky-Scroll, Back-to-Bottom-Button
Inline Tool-Cards ToolCallCard.svelte, ToolCardRead/Edit/Bash/Generic.svelte (NEU) Klappbare Karten in Assistant-Message; Edit zeigt Diff + Accept/Reject
Tool-Calls an Message binden events.ts, app.ts Message.toolCalls?[] ergaenzt, Tool-Events an letzte Assistant-Msg gebunden
ChatStatusBar ChatStatusBar.svelte (NEU) Token/Mode/Modell + Modus-Picker; Header bekommt Spark-Icon
Eigen-Features-Mapping Mic, Modus-Indikator, Detach, „Das merken" funktionieren weiter
Activity-Panel parallel ActivityPanel.svelte unveraendert, dient als History-View neben den Inline-Karten

Phase 9: Komplettes UI-Redesign — Cursor/Zed-Niveau (aktuell)

Ziel: Schluss mit Emoji-Inflation, 4-Pane-Zerstueckelung und Schriftgroessen-Chaos. Verbindliches Design-System (Farben/Typo/Spacing/Radius), 2-spaltiges Layout (Sidebar + Hauptbereich mit Tabs), Werkzeug-Panels als Drawer von rechts statt zwei nebeneinander liegender Tab-Reihen.

Feature Datei(en) Status
Design-System (Variablen) app.css 4 Graustufen, 1 Akzent (#007acc), 4 Status-Farben, 5 Schriftgroessen, 4-Punkt-Spacing, 2 Radius-Werte
vscode.css Aliase theme/vscode.css --vscode-* Variablen mappen auf Phase-9-Variablen
UI-Library src/lib/ui/ Button, Card, Icon, Badge, StatusDot, Tooltip, Drawer, Tabs
Lucide Icons lucide-svelte installiert, ersetzt Emojis im Chrome
StatusBar (22px) StatusBar.svelte (NEU) Token · Modell+Modus · Kosten · Phase, klickbarer Modus-Picker
Titlebar entruempelt +layout.svelte Logo + Stop + Schulungsmodus (Lucide) + Version, kein Status-Dot mehr
Sidebar (240px) Sidebar.svelte (NEU) Suche (Cmd+K), Sessions, Nav-Rail mit 4 Lucide-Icons (Activity/Database/Wrench/Settings)
ToolDrawer ToolDrawer.svelte (NEU) Rechts-Drawer (420px) mit internen Tabs fuer Activity/Memory/Tools/Settings, Esc-schliessbar
+page.svelte 2-spaltig +page.svelte 4-Pane-PaneForge-Layout aufgeloest, jetzt: Sidebar + ChatPanel (flex) + Drawer-Overlay
Hardgecodete Farben raus 9 Komponenten #ef4444 #22c55e #eab308 #f59e0b #a855f7 #06b6d4 ... durch var(--status-*) ersetzt
Status-Emojis durch StatusDot AgentView.svelte 🟢 🟡 ⚪ 🔴 durch <StatusDot> mit Pulse-Animation bei aktivem Agent
ChatPanel entkoppelt ChatPanel.svelte Header + ChatStatusBar entfernt (jetzt global) — kompakte Toolbar nur noch fuer Detach
Cmd+K global +page.svelte, QuickActions.svelte Globaler Listener oeffnet QuickActions; navigate-tab oeffnet Drawer-Sektion
Komponenten-Pass (Emojis raus) 13 Panels Emojis in Tab-Labels und Action-Buttons noch sukzessive durch Lucide ersetzen

Technische Schulden

Was Prioritaet
TypeScript strict mode Niedrig
E2E Tests (Playwright) Mittel
Cargo warnings eliminieren Erledigt — 0 Warnings
Dead Code in alten Panels Niedrig
Bridge Error-Handling verbessern Erledigt — Global Handler, Parse-Logging, .catch()

Nicht geplant

  • Multi-User / Team-Features
  • Cloud-Sync
  • Plugin-System (overkill fuer 1-User-App)
  • Electron-Port (Tauri bleibt)

Build & Entwicklung

# Dev (Hot-Reload)
cd "/mnt/17 - Entwicklungen/20 - Projekte/ClaudeDesktop"
CARGO_TARGET_DIR=/tmp/claude-desktop-target nix-shell --run "npx tauri dev"

# Produktion
CARGO_TARGET_DIR=/tmp/claude-desktop-target nix-shell --run "npx tauri build -- --bundles appimage"

# CI: Commit mit [appimage] → Forgejo Runner baut + uploaded