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:
parent
9d837efae6
commit
0e1cfe1b67
1 changed files with 80 additions and 123 deletions
203
ROADMAP.md
203
ROADMAP.md
|
|
@ -27,57 +27,41 @@ Stand: 14.04.2026
|
||||||
| Token/Kosten-Anzeige im Footer | ✅ | Vorhanden |
|
| Token/Kosten-Anzeige im Footer | ✅ | Vorhanden |
|
||||||
| Modell-Badge (Titlebar + Footer) | ✅ | 9129163 |
|
| Modell-Badge (Titlebar + Footer) | ✅ | 9129163 |
|
||||||
| Tray-Icon mit Menu | ✅ | 3c6da3b |
|
| 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
|
> **Commit:** 6cfcdb2 (14.04.2026)
|
||||||
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**.
|
|
||||||
|
|
||||||
### Ziel
|
### Implementiert
|
||||||
```
|
|
||||||
┌─ Main Agent (claude-opus-4)
|
|
||||||
│ ├─ Explore Agent (Codebase durchsuchen)
|
|
||||||
│ │ └─ Tool: Grep "handleError"
|
|
||||||
│ └─ Plan Agent (Implementierung planen)
|
|
||||||
│ └─ Tool: Read README.md
|
|
||||||
```
|
|
||||||
|
|
||||||
### 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**
|
- ✅ **src/lib/stores/app.ts** — Agent mit Hierarchie
|
||||||
- [ ] `subagent_start` Event-Handler hinzufugen
|
- `Agent.parentAgentId?: string`
|
||||||
- [ ] `subagent_stop` Event-Handler hinzufugen
|
- `Agent.depth: number`
|
||||||
- [ ] `parentAgentId` und `depth` im Event-Payload senden
|
- `buildAgentTree()` → rekursive Baumstruktur
|
||||||
|
- `agentTree` derived Store
|
||||||
|
|
||||||
- [ ] **src-tauri/src/claude.rs**
|
- ✅ **src/lib/stores/events.ts** — Event-Handler
|
||||||
- [ ] `AgentEvent` Struct erweitern: `parent_id: Option<String>`
|
- `SubagentEvent` Interface
|
||||||
- [ ] Hierarchie-Info an Frontend weitergeben
|
- Listener für `subagent-started`, `subagent-stopped`
|
||||||
|
- `addSubAgent()` mit Parent-Verknüpfung
|
||||||
|
|
||||||
- [ ] **src/lib/stores/app.ts**
|
- ✅ **src/lib/components/AgentView.svelte** — Baumansicht
|
||||||
- [ ] `Agent` Interface erweitern:
|
- Rekursives `{#snippet agentNode}` für Hierarchie
|
||||||
```typescript
|
- Einrückung mit CSS `--depth` Variable
|
||||||
interface Agent {
|
- Verbindungslinien zwischen Parent/Child
|
||||||
id: string;
|
- Collapse/Expand per Agent
|
||||||
parentAgentId?: string; // NEU
|
- Typ-Icons (🎯 Main, 🔍 Explore, 📋 Plan, etc.)
|
||||||
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
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -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 |
|
### Implementiert
|
||||||
|---------|-----------|
|
|
||||||
| Nachricht bearbeiten | Hoch |
|
|
||||||
| Antwort regenerieren | Hoch |
|
|
||||||
| Code-Block Copy-Button | Hoch |
|
|
||||||
| Diff-View fur Anderungen | Hoch |
|
|
||||||
| File-Preview inline | Mittel |
|
|
||||||
| Conversation Fork | Niedrig |
|
|
||||||
|
|
||||||
### 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)
|
- ✅ **Nachricht bearbeiten (Edit)**
|
||||||
- [ ] Edit-Button bei User-Nachrichten
|
- ✏️ Button bei User-Nachrichten (hover)
|
||||||
- [ ] Regenerate-Button bei Assistant-Nachrichten
|
- Inline-Textarea im Edit-Modus
|
||||||
- [ ] Inline-Editor fur Nachrichtenbearbeitung
|
- "Speichern & Senden" → löscht folgende Nachrichten
|
||||||
|
- Escape zum Abbrechen
|
||||||
|
|
||||||
- [ ] **src/lib/components/CodeBlock.svelte** (NEU)
|
- ✅ **Antwort regenerieren (Regenerate)**
|
||||||
- [ ] Syntax-Highlighting (bereits via marked?)
|
- 🔄 Button bei letzter Assistant-Nachricht
|
||||||
- [ ] Copy-Button oben rechts
|
- Löscht Antwort, sendet User-Nachricht erneut
|
||||||
- [ ] Sprache anzeigen
|
- Nur wenn nicht isProcessing
|
||||||
- [ ] Zeilennummern optional
|
|
||||||
|
|
||||||
- [ ] **src/lib/components/DiffView.svelte** (NEU)
|
### Noch offen (niedrigere Priorität)
|
||||||
- [ ] Split-View: Alt | Neu
|
|
||||||
- [ ] Unified-View: +/- Zeilen
|
|
||||||
- [ ] Syntax-Highlighting
|
|
||||||
- [ ] Wird bei Edit-Tool-Results angezeigt
|
|
||||||
|
|
||||||
- [ ] **src/lib/components/FilePreview.svelte** (NEU)
|
- [ ] **DiffView.svelte** — Für Edit-Tool Ergebnisse
|
||||||
- [ ] Bei Read-Tool: Dateiinhalt inline anzeigen
|
- [ ] **FilePreview.svelte** — Für Read-Tool Ergebnisse
|
||||||
- [ ] Collapsible (eingeklappt by default)
|
- [ ] **Keyboard Shortcuts** — Cmd+K, Cmd+Shift+Enter
|
||||||
- [ ] 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
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -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
|
### Das Ziel
|
||||||
|
|
||||||
|
|
@ -1131,51 +1098,38 @@ Vollständige Informationen:
|
||||||
- Agent beendet (Tokens verbraucht)
|
- Agent beendet (Tokens verbraucht)
|
||||||
- Delegation (von → an)
|
- Delegation (von → an)
|
||||||
|
|
||||||
### Aufgaben
|
### Implementiert
|
||||||
|
|
||||||
- [ ] **Event-System im Backend**
|
- ✅ **Event-System (Frontend)**
|
||||||
- [ ] `src-tauri/src/monitor.rs` (NEU)
|
- `src/lib/stores/app.ts` — MonitorEvent Interface, Stores
|
||||||
- [ ] `EventBus` Struct mit Ringbuffer (max 10.000 Events)
|
- Ringbuffer (max 1000 Events) im Frontend
|
||||||
- [ ] `emit_event(type, data)` — Thread-safe
|
- Derived Stores für Stats und Filter
|
||||||
- [ ] Events an Frontend via Tauri Events
|
|
||||||
- [ ] Persistierung optional (SQLite)
|
|
||||||
|
|
||||||
- [ ] **API-Interceptor**
|
- ✅ **API-Interceptor**
|
||||||
- [ ] `scripts/claude-bridge.js` erweitern
|
- `scripts/claude-bridge.js` erweitert
|
||||||
- [ ] Vor/Nach jedem `query()` Call loggen
|
- `sendMonitorEvent()` für alle Event-Typen
|
||||||
- [ ] Token zählen, Kosten berechnen
|
- Token, Kosten, Latenz geloggt
|
||||||
- [ ] Latenz messen (first token, total)
|
- `summarizeToolInput()` für kompakte Tool-Logs
|
||||||
|
|
||||||
- [ ] **Hook-Logger**
|
- ✅ **Tool-Logger**
|
||||||
- [ ] Bei jedem Hook-Fire: Event emittieren
|
- Automatisch bei `tool-start` / `tool-end`
|
||||||
- [ ] Payload (gekürzt auf 500 Zeichen)
|
- Parameter geloggt (gekürzt)
|
||||||
- [ ] Ergebnis + Dauer
|
- `maskSensitive()` für Passwörter, API-Keys
|
||||||
|
|
||||||
- [ ] **Tool-Logger**
|
- ✅ **UI: Monitor-Panel**
|
||||||
- [ ] Wrapper um jedes Tool
|
- `src/lib/components/MonitorPanel.svelte`
|
||||||
- [ ] Parameter loggen (sensitive Daten maskieren)
|
- Farbcodierte Event-Liste (🔵🟢🟡🟣🟠🔴⚪)
|
||||||
- [ ] Ergebnis-Zusammenfassung
|
- Filter-Dropdown nach Typ
|
||||||
- [ ] Fehler + Stack Trace
|
- Auto-Scroll (toggle)
|
||||||
|
- Detail-Ansicht bei Klick
|
||||||
|
- Copy-Button für JSON
|
||||||
|
- Stats-Anzeige (Events, API-Calls, Errors, Latenz)
|
||||||
|
|
||||||
- [ ] **UI: Monitor-Panel**
|
### Noch offen
|
||||||
- [ ] `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
|
|
||||||
|
|
||||||
- [ ] **Log-Export**
|
- [ ] **Backend-Persistierung** — SQLite für Events
|
||||||
- [ ] Als JSON exportieren
|
- [ ] **Log-Export** — JSON/Text Download
|
||||||
- [ ] Als Text (lesbar) exportieren
|
- [ ] **Performance-Metriken** — Grafiken, Kosten-Tracker
|
||||||
- [ ] Zeitraum wählbar
|
|
||||||
|
|
||||||
- [ ] **Performance-Metriken**
|
|
||||||
- [ ] Sidebar-Widget: Requests/min, Avg Latency
|
|
||||||
- [ ] Token-Verbrauch Grafik (letzte Stunde)
|
|
||||||
- [ ] Kosten-Tracker (Session, Tag, Monat)
|
|
||||||
|
|
||||||
### Sensitive Daten maskieren!
|
### 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 | 4ba14a5 | Session-Historie |
|
||||||
| 14.04.2026 | 9129163 | Titlebar aufgeraumt |
|
| 14.04.2026 | 9129163 | Titlebar aufgeraumt |
|
||||||
| 14.04.2026 | 3c6da3b | Tray-Icon |
|
| 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 |
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue