Bridge (claude-bridge.js):
- Resume-Fix: queryOptions.resume statt .sessionId (SDK-API)
- tools-Whitelist statt disallowedTools (Blacklist vererbt sich auf Sub-Agents!)
Handlanger: Main nur Task+TodoWrite, Sub-Agents bekommen volles Tool-Set
Experten: Main nur Task+TodoWrite+Read+Grep+Glob
Solo: preset claude_code
- handleToolUse/handleToolResult Helper, greifen auch in assistant.content-Bloecken
(SDK liefert tool_use/tool_result nicht als standalone events)
- Dedup via handledTools Set
- Resume-Retry-Fallback bei ungueltiger Session-ID
- Custom agents-Option entfernt (SDK spawnt Sub-Agents ohne Tools → Halluzination)
- Orchestrator-Prompt: verweist auf general-purpose (vollstaendiges Tool-Set)
Backend (claude.rs):
- claude_session_id NUR beim 1. Mal setzen (sonst verliert man History)
- Generic event emit fuer alle Bridge-Events ans Frontend
- Mode-Persistenz bei Bridge-Start (agent_mode aus DB laden)
Knowledge (knowledge.rs):
- MYSQL_HOST: 192.168.155.1 → 192.168.155.11 (MariaDB-Server)
- MYSQL_PASS: claude → 8715
- category Option<&str> Typ-Annotation fuer exec_map
Programs (programs.rs):
- xvfb_screenshot: Fallback scrot → import (ImageMagick) → ffmpeg
Voice (voice.rs):
- Part::file (existiert nicht) → Part::bytes, keine Temp-Datei
Frontend:
- events.ts: mode-changed Listener, result.text Fallback,
addAgent({id}) fuer korrekte Parent-Child-Verknuepfung
- ChatPanel: Copy-Button, Typing-Dots in Bubble (kein Doppel-Header),
$effect statt $:, onkeydown statt on:keydown
- AgentView: "Nur aktive" Toggle, Delegations-Badge, Tool-Count hidden bei 0,
agentMode Import
- ProgramsPanel: Button-Styling, Error-Banner mit Copy-Button,
selectable Text
- MonitorPanel: Filter-Dropdown Styling (Hintergrund + Hover)
- SettingsPanel: changeMode() wird beim Klick aufgerufen (nicht nur Store)
- +layout.svelte: agent_mode beim App-Start laden, Mode-Badge im Footer,
🎓-Button fuer Schulungsfenster
- +page.svelte: Programme-Tab + Hooks-Tab
Neue Dateien:
- TEST-ROADMAP.md — Status und naechste Schritte
- .gitignore erweitert (scheduled_tasks.lock, out/, node_modules)
- vscode-extension/tsconfig.json: include nur src/, exclude node_modules
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
75 lines
4 KiB
Markdown
75 lines
4 KiB
Markdown
# Claude Desktop — Test-Roadmap (Fortsetzung)
|
||
|
||
**Stand:** 14.04.2026 · Session-Ende nahe Token-Limit
|
||
|
||
## Was bereits getestet & funktioniert
|
||
- ✅ Hooks-Panel: 5 Built-in Hooks sichtbar & toggelbar
|
||
- ✅ D-Bus: 80+ Services laden (Programme → D-Bus)
|
||
- ✅ Schulungs-Fenster öffnet via 🎓-Button
|
||
- ✅ Modus-Auswahl in Settings + Footer-Badge
|
||
- ✅ Chat funktioniert (nach Bridge-Fixes: `resume` statt `sessionId`, claude_session_id nur bei erstem Call setzen)
|
||
- ✅ Sub-Agent erscheint im Tree (nach `addAgent({id})` Fix)
|
||
- ✅ Sub-Agent "Nur aktive" Toggle
|
||
- ✅ Filter-Dropdown im Monitor-Panel sichtbar
|
||
- ✅ Copy-Button in Chat-Nachrichten
|
||
- ✅ Error-Banner mit kopierbarem Text im Programme-Panel
|
||
|
||
## Offene Bugs (Reihenfolge der Priorität)
|
||
|
||
### 1. Chat-Antwort bei komplexen Flows fehlt (HALB GEFIXT)
|
||
**Symptom:** Bei Handlanger-Chats mit Sub-Agent wird die finale Antwort nicht im Chat angezeigt.
|
||
**Ursache:** Streaming-Text-Events kommen nicht, nur `result.text` am Ende.
|
||
**Fix (drin):** Fallback in `events.ts` auf `result.text` wenn `content` leer.
|
||
**Zu verifizieren:** Nächster Chat im Handlanger-Modus — erscheint jetzt die Antwort?
|
||
|
||
### 2. Date-Panic in Wissensbasis
|
||
**Symptom:** `Couldn't convert Row... Date(...) to String` bei jeder Wissens-Suche / Tool-Hints.
|
||
**Ursache:** MySQL liefert TIMESTAMP als `Value::Date`, Tupel erwartet `String`.
|
||
**Fix:** 7 SELECTs in [knowledge.rs](src-tauri/src/knowledge.rs) einzeln auf `chrono::NaiveDateTime` umstellen.
|
||
**Nicht:** `replace_all` auf "created_at, updated_at" — das zerstört Rust-Tupel-Identifier (schon 1× passiert).
|
||
|
||
### 3. VSCodium-Extension nicht getestet
|
||
**Was zu tun:**
|
||
- `cd vscode-extension && npm run compile` (bereits OK)
|
||
- VSCodium öffnen, Extension via F5 in Dev-Host laden
|
||
- App: Programme → 🧩 VSCodium → Port 7890 → Verbinden
|
||
- Ping-Test, Datei öffnen
|
||
|
||
### 4. Xvfb-Screenshot fehlt Tool
|
||
**Status:** Xvfb-Start funktioniert, Screenshot braucht `imagemagick` (scrot/ffmpeg-x11 fehlen in NixOS-Build).
|
||
**Fix:** `imagemagick` in `/etc/nixos/configuration.nix` → `nixos-rebuild switch`.
|
||
|
||
### 5. Experten-Modus nicht getestet
|
||
**Analog zu Handlanger:** neue Session, Experten-Modus, Aufgabe mit Research/Implement-Charakter.
|
||
|
||
### 6. Haiku-Kostenersparnis funktioniert nicht
|
||
**Status:** Sub-Agents laufen auf Opus (inherit vom Main). Custom `agents`-Option in SDK scheint ignoriert zu werden bzw. spawnt Agents ohne Tools (halluziniert).
|
||
**Nächster Ansatz:** Im Orchestrator-Prompt Claude explizit vorgeben `model: "haiku"` in Task-Calls zu setzen. Ob das SDK das respektiert, ist offen.
|
||
|
||
## Uncommitted Changes (alles sinnvolle Fixes — lohnt sich zu committen)
|
||
- `scripts/claude-bridge.js` — resume-Fix, tools-Whitelist, handleToolUse/Result Helper, Dedup
|
||
- `src-tauri/src/claude.rs` — claude_session_id nur 1× setzen, generic event emit
|
||
- `src-tauri/src/knowledge.rs` — IP+PW korrekt (155.11/8715)
|
||
- `src/lib/stores/events.ts` — mode-changed Listener, result.text Fallback, addAgent({id})
|
||
- `src/lib/components/ChatPanel.svelte` — Copy-Button, Typing-Dots in Bubble (kein Doppel-Header)
|
||
- `src/lib/components/AgentView.svelte` — Nur-aktive-Toggle, Delegations-Badge, Tool-Count hidden bei 0
|
||
- `src/lib/components/ProgramsPanel.svelte` — Error-Banner mit Copy
|
||
- `src/lib/components/MonitorPanel.svelte` — Filter-Dropdown Styling
|
||
- `src/routes/+layout.svelte` — agent_mode beim Start laden
|
||
- `src/routes/+page.svelte` — Tabs Programme + Hooks
|
||
|
||
## Schnellstart nach Neustart
|
||
```bash
|
||
cd "/mnt/17 - Entwicklungen/20 - Projekte/ClaudeDesktop"
|
||
CARGO_TARGET_DIR=/tmp/claude-desktop-target nix-shell --run "npx tauri dev"
|
||
# Dauert ~15s beim ersten Start nach Reboot wenn /tmp leer ist
|
||
```
|
||
|
||
## DB-Reset wenn Claude-Session-IDs veraltet
|
||
```bash
|
||
nix-shell -p sqlite --run 'sqlite3 "/home/data/.local/share/de.alles-watt-laeuft.claude-desktop/claude-desktop.db" "UPDATE sessions SET claude_session_id = NULL;"'
|
||
```
|
||
|
||
## Nächster Commit
|
||
Alles zusammen ein großer Bugfix-Commit mit Titel:
|
||
> Fix: Resume, tools-Whitelist, Sub-Agent-Tree, Date-Handling, UI-Polish
|