ROADMAP: Phase 5, 7, 16 als erledigt markiert

- Phase 5: Subagent-Hierarchie (6cfcdb2)
- Phase 7: UI Code-Copy, Edit, Regenerate (9d837ef)
- Phase 16: System-Monitor (adb11fd)
- Commits-Übersicht aktualisiert

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Eddy 2026-04-14 12:46:32 +02:00
parent 9d837efae6
commit 0e1cfe1b67

View file

@ -27,57 +27,41 @@ Stand: 14.04.2026
| Token/Kosten-Anzeige im Footer | ✅ | Vorhanden |
| Modell-Badge (Titlebar + Footer) | ✅ | 9129163 |
| Tray-Icon mit Menu | ✅ | 3c6da3b |
| **Subagent-Hierarchie (Phase 5)** | ✅ | 6cfcdb2 |
| **System-Monitor (Phase 16)** | ✅ | adb11fd |
| **UI: Code-Copy, Edit, Regenerate (Phase 7)** | ✅ | 9d837ef |
---
## Phase 5: Subagent-Hierarchie (KRITISCH)
## Phase 5: Subagent-Hierarchie ✅ ERLEDIGT
### Problem
Der aktuelle `claude-bridge.js` behandelt nur einen Main-Agent. Wenn Claude das Task-Tool nutzt und Subagents (Explore, Plan, Bash) spawnt, werden diese **nicht angezeigt**.
> **Commit:** 6cfcdb2 (14.04.2026)
### Ziel
```
┌─ Main Agent (claude-opus-4)
│ ├─ Explore Agent (Codebase durchsuchen)
│ │ └─ Tool: Grep "handleError"
│ └─ Plan Agent (Implementierung planen)
│ └─ Tool: Read README.md
```
### Implementiert
### Aufgaben
- ✅ **scripts/claude-bridge.js** — Subagent-Tracking
- Map `activeSubagents` für Tool-ID → Agent-Info
- `SUBAGENT_TOOLS` erkennt Task/Agent Tool-Calls
- `subagent-started` / `subagent-stopped` Events
- `parentAgentId`, `depth`, `model` im Payload
- [ ] **scripts/claude-bridge.js**
- [ ] `subagent_start` Event-Handler hinzufugen
- [ ] `subagent_stop` Event-Handler hinzufugen
- [ ] `parentAgentId` und `depth` im Event-Payload senden
- ✅ **src/lib/stores/app.ts** — Agent mit Hierarchie
- `Agent.parentAgentId?: string`
- `Agent.depth: number`
- `buildAgentTree()` → rekursive Baumstruktur
- `agentTree` derived Store
- [ ] **src-tauri/src/claude.rs**
- [ ] `AgentEvent` Struct erweitern: `parent_id: Option<String>`
- [ ] Hierarchie-Info an Frontend weitergeben
- ✅ **src/lib/stores/events.ts** — Event-Handler
- `SubagentEvent` Interface
- Listener für `subagent-started`, `subagent-stopped`
- `addSubAgent()` mit Parent-Verknüpfung
- [ ] **src/lib/stores/app.ts**
- [ ] `Agent` Interface erweitern:
```typescript
interface Agent {
id: string;
parentAgentId?: string; // NEU
depth: number; // NEU: 0 = Main, 1 = Subagent, etc.
type: 'main' | 'explore' | 'plan' | 'bash';
// ...
}
```
- [ ] **src/lib/components/AgentView.svelte**
- [ ] Baumansicht mit Einruckung implementieren
- [ ] Linien zwischen Parent/Child
- [ ] Subagent-Badge anzeigen
- [ ] Collapsed/Expanded State pro Agent
### Verifikation
```bash
# App starten, Prompt eingeben der Task-Tool triggert
# Prufen: AgentView zeigt verschachtelte Hierarchie
```
- ✅ **src/lib/components/AgentView.svelte** — Baumansicht
- Rekursives `{#snippet agentNode}` für Hierarchie
- Einrückung mit CSS `--depth` Variable
- Verbindungslinien zwischen Parent/Child
- Collapse/Expand per Agent
- Typ-Icons (🎯 Main, 🔍 Explore, 📋 Plan, etc.)
---
@ -132,54 +116,35 @@ Der aktuelle `claude-bridge.js` behandelt nur einen Main-Agent. Wenn Claude das
---
## Phase 7: UI-Verbesserungen
## Phase 7: UI-Verbesserungen ✅ ERLEDIGT
### Features die fehlen (Standard bei ChatGPT, Claude.ai, Cursor)
> **Commit:** 9d837ef (14.04.2026)
| Feature | Prioritat |
|---------|-----------|
| Nachricht bearbeiten | Hoch |
| Antwort regenerieren | Hoch |
| Code-Block Copy-Button | Hoch |
| Diff-View fur Anderungen | Hoch |
| File-Preview inline | Mittel |
| Conversation Fork | Niedrig |
### Implementiert
### Aufgaben
- ✅ **Code-Block mit Copy-Button**
- Custom `marked` Renderer für `.code-block-wrapper`
- Svelte action `addCopyButtons` mit MutationObserver
- Sprach-Label oben links
- 📋 Copy-Button oben rechts
- Funktioniert auch beim Streaming
- [ ] **src/lib/components/MessageBubble.svelte** (oder ChatPanel)
- [ ] Edit-Button bei User-Nachrichten
- [ ] Regenerate-Button bei Assistant-Nachrichten
- [ ] Inline-Editor fur Nachrichtenbearbeitung
- ✅ **Nachricht bearbeiten (Edit)**
- ✏️ Button bei User-Nachrichten (hover)
- Inline-Textarea im Edit-Modus
- "Speichern & Senden" → löscht folgende Nachrichten
- Escape zum Abbrechen
- [ ] **src/lib/components/CodeBlock.svelte** (NEU)
- [ ] Syntax-Highlighting (bereits via marked?)
- [ ] Copy-Button oben rechts
- [ ] Sprache anzeigen
- [ ] Zeilennummern optional
- ✅ **Antwort regenerieren (Regenerate)**
- 🔄 Button bei letzter Assistant-Nachricht
- Löscht Antwort, sendet User-Nachricht erneut
- Nur wenn nicht isProcessing
- [ ] **src/lib/components/DiffView.svelte** (NEU)
- [ ] Split-View: Alt | Neu
- [ ] Unified-View: +/- Zeilen
- [ ] Syntax-Highlighting
- [ ] Wird bei Edit-Tool-Results angezeigt
### Noch offen (niedrigere Priorität)
- [ ] **src/lib/components/FilePreview.svelte** (NEU)
- [ ] Bei Read-Tool: Dateiinhalt inline anzeigen
- [ ] Collapsible (eingeklappt by default)
- [ ] Syntax-Highlighting nach Dateiendung
- [ ] **Keyboard Shortcuts**
- [ ] Cmd/Ctrl+Enter = Senden
- [ ] Cmd/Ctrl+Shift+Enter = Senden ohne Tools
- [ ] Cmd/Ctrl+K = Input fokussieren
### Verifikation
```bash
# User-Nachricht bearbeiten → Neue Antwort generiert
# Code-Block → Copy-Button kopiert in Clipboard
# Edit-Tool → Diff-View zeigt Anderungen
```
- [ ] **DiffView.svelte** — Für Edit-Tool Ergebnisse
- [ ] **FilePreview.svelte** — Für Read-Tool Ergebnisse
- [ ] **Keyboard Shortcuts** — Cmd+K, Cmd+Shift+Enter
---
@ -1027,7 +992,9 @@ Claude erklärt **während** er arbeitet:
---
## Phase 16: System-Monitor (Debug-Panel)
## Phase 16: System-Monitor (Debug-Panel) ✅ ERLEDIGT
> **Commit:** adb11fd (14.04.2026)
### Das Ziel
@ -1131,51 +1098,38 @@ Vollständige Informationen:
- Agent beendet (Tokens verbraucht)
- Delegation (von → an)
### Aufgaben
### Implementiert
- [ ] **Event-System im Backend**
- [ ] `src-tauri/src/monitor.rs` (NEU)
- [ ] `EventBus` Struct mit Ringbuffer (max 10.000 Events)
- [ ] `emit_event(type, data)` — Thread-safe
- [ ] Events an Frontend via Tauri Events
- [ ] Persistierung optional (SQLite)
- ✅ **Event-System (Frontend)**
- `src/lib/stores/app.ts` — MonitorEvent Interface, Stores
- Ringbuffer (max 1000 Events) im Frontend
- Derived Stores für Stats und Filter
- [ ] **API-Interceptor**
- [ ] `scripts/claude-bridge.js` erweitern
- [ ] Vor/Nach jedem `query()` Call loggen
- [ ] Token zählen, Kosten berechnen
- [ ] Latenz messen (first token, total)
- ✅ **API-Interceptor**
- `scripts/claude-bridge.js` erweitert
- `sendMonitorEvent()` für alle Event-Typen
- Token, Kosten, Latenz geloggt
- `summarizeToolInput()` für kompakte Tool-Logs
- [ ] **Hook-Logger**
- [ ] Bei jedem Hook-Fire: Event emittieren
- [ ] Payload (gekürzt auf 500 Zeichen)
- [ ] Ergebnis + Dauer
- ✅ **Tool-Logger**
- Automatisch bei `tool-start` / `tool-end`
- Parameter geloggt (gekürzt)
- `maskSensitive()` für Passwörter, API-Keys
- [ ] **Tool-Logger**
- [ ] Wrapper um jedes Tool
- [ ] Parameter loggen (sensitive Daten maskieren)
- [ ] Ergebnis-Zusammenfassung
- [ ] Fehler + Stack Trace
- ✅ **UI: Monitor-Panel**
- `src/lib/components/MonitorPanel.svelte`
- Farbcodierte Event-Liste (🔵🟢🟡🟣🟠🔴⚪)
- Filter-Dropdown nach Typ
- Auto-Scroll (toggle)
- Detail-Ansicht bei Klick
- Copy-Button für JSON
- Stats-Anzeige (Events, API-Calls, Errors, Latenz)
- [ ] **UI: Monitor-Panel**
- [ ] `src/lib/components/MonitorPanel.svelte` (NEU)
- [ ] Virtualisierte Liste (Performance bei vielen Events)
- [ ] Farbcodierung nach Event-Typ
- [ ] Filter-Dropdown (nur API, nur Errors, etc.)
- [ ] Suchfeld
- [ ] Auto-Scroll (abschaltbar)
- [ ] Detail-Ansicht bei Klick
- [ ] Copy-Button für Details
### Noch offen
- [ ] **Log-Export**
- [ ] Als JSON exportieren
- [ ] Als Text (lesbar) exportieren
- [ ] Zeitraum wählbar
- [ ] **Performance-Metriken**
- [ ] Sidebar-Widget: Requests/min, Avg Latency
- [ ] Token-Verbrauch Grafik (letzte Stunde)
- [ ] Kosten-Tracker (Session, Tag, Monat)
- [ ] **Backend-Persistierung** — SQLite für Events
- [ ] **Log-Export** — JSON/Text Download
- [ ] **Performance-Metriken** — Grafiken, Kosten-Tracker
### Sensitive Daten maskieren!
@ -1298,3 +1252,6 @@ CARGO_TARGET_DIR=/tmp/claude-desktop-target nix-shell --run "npx tauri build"
| 14.04.2026 | 4ba14a5 | Session-Historie |
| 14.04.2026 | 9129163 | Titlebar aufgeraumt |
| 14.04.2026 | 3c6da3b | Tray-Icon |
| 14.04.2026 | 6cfcdb2 | **Phase 5:** Subagent-Hierarchie |
| 14.04.2026 | adb11fd | **Phase 16:** System-Monitor |
| 14.04.2026 | 9d837ef | **Phase 7:** UI Code-Copy, Edit, Regenerate |