Commit graph

143 commits

Author SHA1 Message Date
Eddy
01ddc7c938 [appimage] Fix AppRun: claude-desktop explizit, nicht find|head
All checks were successful
Build AppImage / build (push) Successful in 5m43s
find|head -1 traf xdg-open (alphabetisch vor claude-desktop) statt unsere
App. Resultat: AppImage zeigte nur xdg-open --help statt zu starten.
2026-04-20 00:01:31 +02:00
Eddy
819a65e8ae [appimage] Fix HTTP 409: auch versionierte Datei vor Upload loeschen
All checks were successful
Build AppImage / build (push) Successful in 5m15s
Forgejo Package Registry weist PUT auf existierenden Pfad mit 409 ab.
Bisher wurde nur 'latest/' geloescht, nicht aber 'VERSION/'. Beim
zweiten Build mit gleicher Version (0.1.0) crashte der Upload daher.
2026-04-19 23:36:19 +02:00
Eddy
e69ffe7f2b [appimage] AppImage auf jeder Linux-Distro lauffaehig (inkl. NixOS)
Some checks failed
Build AppImage / build (push) Failing after 5m28s
Zwei kombinierte Patches:

1. main.rs: WEBKIT_DISABLE_DMABUF_RENDERER + WEBKIT_DISABLE_COMPOSITING_MODE
   als defensive Defaults wenn nicht vom User gesetzt. Behebt typische
   WebKit2GTK-Renderer-Crashes auf modernen Wayland-Setups.

2. Workflow: nach 'tauri build' wird der AppRun gepatched.
   - Detect NixOS via /run/opengl-driver/lib -> Host-Mesa via LD_LIBRARY_PATH
   - WebKit-Workarounds als ENV-Defaults (override moeglich)
   - Standard linuxdeploy-Pfade (PATH, XDG_DATA_DIRS etc.)
   - Re-bundle mit appimagetool

Resultat: AppImage laeuft out-of-the-box auf Debian/Ubuntu/Fedora/NixOS,
ohne dass der User ENV-Vars setzen muss.
2026-04-19 23:27:40 +02:00
Eddy
c9f352ecbf [appimage] Fix Upload-Step: Leerzeichen im AppImage-Namen brach curl-URL
All checks were successful
Build AppImage / build (push) Successful in 5m21s
Tauri produziert "Claude Desktop_0.1.0_amd64.AppImage" mit Leerzeichen.
curl encoded URLs nicht automatisch -> malformed HTTP-Request, Step crash
in 150ms beim PUT.

Fix:
- AppImage vor Upload zu "Claude-Desktop_..." umbenennen (tr ' ' '-')
- set -e + curl --fail -sS damit echte HTTP-Fehler den Step killen
- BASE-URL als Variable, weniger Wiederholung
2026-04-19 23:00:01 +02:00
Eddy
e346c0e5e9 [appimage] Re-trigger nach libssl-dev im Runner
Some checks failed
Build AppImage / build (push) Failing after 6m27s
2026-04-19 22:41:58 +02:00
Eddy
65c868c2ff [appimage] Auf neuen Debian-Runner umstellen
Some checks failed
Build AppImage / build (push) Failing after 1m42s
- runs-on: docker -> appimage (16-Forgejo-Runner-AppImage)
- APPIMAGE_EXTRACT_AND_RUN aus Workflow raus (jetzt im Runner-ENV)
- Erster echter Test des dedizierten AppImage-Runners
2026-04-19 22:01:39 +02:00
Eddy
467a2c5e8f [appimage] APPIMAGE_EXTRACT_AND_RUN=1 fuer linuxdeploy auf Alpine/musl
Some checks failed
Build AppImage / build (push) Failing after 6m53s
2026-04-16 00:07:54 +02:00
Eddy
817edc0f33 [appimage] Retry nach xdg-utils im Runner
Some checks failed
Build AppImage / build (push) Failing after 8m19s
2026-04-15 23:52:46 +02:00
Eddy
a2079f81bf [appimage] Retry mit Runner Rust 1.94.1 (edge-main)
Some checks failed
Build AppImage / build (push) Failing after 8m25s
2026-04-15 23:37:12 +02:00
Eddy
9e31b76319 [appimage] package-lock.json committen fuer npm ci im Runner
Some checks failed
Build AppImage / build (push) Failing after 1m17s
Die Lock-Datei war in .gitignore ausgeschlossen - damit scheitert
npm ci im CI-Build ("can only install with an existing package-lock.json").
Fix: Datei aus .gitignore raus und committen. Ist ohnehin Best Practice
damit Installs reproduzierbar sind.
2026-04-15 23:07:16 +02:00
Eddy
9e4ec73c6a [appimage] Retry nach Runner-Fix auf act_runner v0.3.1
Some checks failed
Build AppImage / build (push) Failing after 5s
2026-04-15 22:54:19 +02:00
Eddy
59046f5eb1 [appimage] Runner-nativ bauen statt rust:1.83-bookworm
Some checks failed
Build AppImage / build (push) Failing after 7s
Der 17-Forgejo-Runner (docker:host-Label) hat Rust 1.87, Node 22,
GTK, WebKit, AppIndicator, patchelf usw. bereits aus dem
docker.forgejo-runner-Image vorinstalliert. Der bisherige
container:-Block mit rust:1.83-bookworm + apt-get install hat
wegen DNS/Netzwerk in der DinD-Umgebung versagt.

Loesung: container: komplett entfernen, Job laeuft direkt im
Runner. Spart den Pull, spart die apt-Installationen und umgeht
das DNS-Problem.
2026-04-15 22:29:31 +02:00
Eddy
51b5a58c63 [appimage] Fix: DNS-Konfiguration für DinD-Container
Some checks failed
Build AppImage / build (push) Failing after 1m49s
- Container-Options: --dns 8.8.8.8 --dns 1.1.1.1
- Fallback-Step: /etc/resolv.conf ergänzen
- Löst "Could not resolve host" im Forgejo Runner

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 14:47:42 +02:00
Eddy
2cd721dd97 Feature: VoicePanel mit Push-to-Talk und Sprachsteuerung
- Neues VoicePanel.svelte mit Mikrofon-Zugriff via Web Audio API
- Push-to-Talk und Continuous-Mode (VAD-Ready)
- Audio-Visualisierung mit Canvas-Waveform
- OpenAI Whisper STT + TTS Integration via voice.rs
- Stimmenauswahl (Alloy, Echo, Fable, Onyx, Nova, Shimmer)
- Tab "Sprache" im rechten Panel integriert

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 14:46:24 +02:00
Eddy
424ab73e1d [appimage] Fix: rust:1.83-bookworm Image + Node.js Installation
Some checks failed
Build AppImage / build (push) Failing after 2m18s
2026-04-15 14:24:19 +02:00
Eddy
1aa353c921 [appimage] Test-Build der CI-Pipeline
Some checks failed
Build AppImage / build (push) Failing after 13s
2026-04-15 14:20:31 +02:00
Eddy
2c64963553 CI: Runner-Label auf 'docker' geändert + Forgejo API Upload
All checks were successful
Build AppImage / build (push) Has been skipped
- runs-on: docker (statt ubuntu-latest)
- Container: aspect-build/rust:stable-node22-bookworm
- Manueller git clone mit REGISTRY_TOKEN
- Forgejo API für Release-Upload (statt GitHub Action)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 14:18:35 +02:00
Eddy
e17d94a078 CI: AppImage Build Pipeline für Forgejo Actions
Some checks are pending
Build AppImage / build (push) Waiting to run
- Triggert bei [appimage] im Commit oder Release-Tag (v*)
- Baut mit Tauri-Container + Node 22 + Rust stable
- Lädt AppImage als Artifact hoch
- Bei Tag: Erstellt automatisch Release mit AppImage

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 14:16:54 +02:00
Eddy
a519a7cdd2 Feature: Auto-Update System für AppImage
- Backend (update.rs): Forgejo-API Check, Download mit Progress-Events, AppImage-Replace + Restart
- Frontend (UpdateDialog.svelte): Modal mit Version, Release-Notes, Fortschrittsbalken
- Automatischer Update-Check 3s nach App-Start
- reqwest mit stream-Feature für Download-Progress

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 14:06:23 +02:00
Eddy
adcb8ac3b5 Docs: TEST-ROADMAP aktualisiert
- Kontext-Auslastung hinzugefügt
- Veraltete Uncommitted-Liste entfernt
- Commit-Historie hinzugefügt

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 13:42:28 +02:00
Eddy
f191cd062c Feature: Kontext-Auslastung im Footer (X% ctx)
- Bridge: Token-Berechnung inkl. Cache (input + cache_read + cache_creation)
- Store: contextUsage + contextPercent (derived)
- Layout: Farbcodierte Anzeige (grün/gelb/rot bei 60%/80%)
- Tooltip zeigt absolute Token-Zahlen

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 13:40:34 +02:00
Eddy
48fd61fd01 Fix: Auto-Session erscheint sofort in Session-Liste
- ChatPanel: emit('session-created') nach Auto-Session-Erstellung
- SessionList: listen('session-created') + loadSessions() Refresh
- TEST-ROADMAP: Experten-Modus + Session-Fix verifiziert

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 13:08:53 +02:00
Eddy
a203589eda Fix: Date-Panic in Wissensbasis (chrono::NaiveDateTime)
- mysql_async mit chrono-Feature für NaiveDateTime-Support
- 7 SELECTs in knowledge.rs von String auf NaiveDateTime umgestellt
- Timestamps werden jetzt korrekt formatiert statt Panic

Getestet:
- Wissens-Suche funktioniert ohne Crash
- Handlanger-Modus Chat-Antwort erscheint
- VSCodium-Extension Verbindung OK

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 12:43:41 +02:00
Eddy
0c095a4d49 Phase 11 final: Tool-Restriction via System-Prompt statt SDK-Whitelist
In claude-agent-sdk 0.2.104 vererbt sich tools/disallowedTools auf
Sub-Agents — keine saubere Trennung Main vs. Sub via Query-Options.

Fix: Tool-Preset (claude_code) fuer alle Modi freischalten, Modus-
Verhalten ausschliesslich via System-Prompt (Orchestrator-Prompts)
durchsetzen. Sub-Agents haben jetzt funktionierenden Bash-Zugriff,
liefern echte ls-Ausgaben statt Halluzinationen.

Phase 11 ist damit final funktional:
- Solo: alle Tools, direkter Zugriff
- Handlanger: Delegation via Prompt durchgesetzt
- Experten: Multi-Agent via Prompt durchgesetzt
- Auto: Heuristik wechselt zwischen den Modi

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 21:32:49 +02:00
Eddy
79b8525ede Bugfixes: Resume, Tool-Whitelist, Sub-Agent-Tree, UI-Polish
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>
2026-04-14 21:24:51 +02:00
Eddy
120715982b Phasen 12-15: Hooks, VSCodium-Bridge, Programm-Steuerung, Schulungsmodus
Phase 12 Hook-System (hooks.rs + HooksPanel):
- HookManager mit Event-Registry + Ausfuehrungs-Log
- 5 Built-in Hooks (SessionStart, PreToolUse, PostToolUse,
  BeforeCompacting, AfterCompacting)
- Tauri-Commands: list_hooks, set_hook_enabled, get_hook_executions, fire_hook
- HooksPanel.svelte mit Live-Ausfuehrungs-Log

Phase 13 VSCodium-Integration:
- vscode-extension/: WebSocket-Server auf Port 7890
  (Commands: openFile, goToLine, formatDocument, findInFiles,
   openTerminal, getStatus, executeCommand, ping)
- src-tauri/src/ide.rs: WebSocket-Client via tokio-tungstenite
- IdePanel.svelte: Status, Port-Konfig, Ping-Test, Live-Anzeige aktive Datei

Phase 14 Programm-Steuerung (programs.rs + ProgramsPanel):
- D-Bus: dbus_call + dbus_list_services
- Xvfb: start/stop/status + screenshot (scrot)
- Playwright-Info (MCP-Verweis)
- ProgramsPanel mit 4 Sektionen (VSCodium, Playwright, D-Bus, Xvfb)

Phase 15 Schulungsmodus (teaching.rs + presentation/+page.svelte):
- Separates Tauri-Webview-Fenster
- MermaidDiagram.svelte (dynamic import mermaid)
- AnimatedCode.svelte mit WPM-Steuerung
- Tauri-Commands: presentation_open/close/send_slide/clear
- 🎓-Button in der Titelbar
- Capabilities um core:webview:allow-create-webview-window erweitert

Deps:
- Cargo: +tokio-tungstenite 0.23, +futures-util 0.3
- npm: +mermaid ^11.4.0 (npm install erforderlich)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:10:41 +02:00
Eddy
de90c2da19 Phase 11 Ausbau: AUTO-Heuristik + Custom Sub-Agents + Delegations-Badge
Bridge (scripts/claude-bridge.js):
- chooseAutoMode(): Keyword-Heuristik wählt solo/handlanger/experten
  basierend auf Aufgabenkomplexität und Nachrichtenlänge
- auto-mode-chosen Event fuer Frontend-Feedback
- effectiveMode statt agentMode durchs ganze sendMessage-Flow

Custom Sub-Agents via SDK agents-Option:
- HANDLANGER_AGENTS.worker: Haiku, exakte Ausfuehrung, max 500 Tokens
- EXPERTEN_AGENTS: research/implement/test/review mit eigenen Tools+Prompts
- Orchestrator-Prompts verweisen auf subagent_type Namen
- Kostenersparnis im Handlanger-Modus durch Haiku-Delegation

UI (AgentView.svelte):
- Delegations-Badge bei Sub-Agent-Knoten (farbcodiert nach Modus)
- Nur sichtbar bei depth > 0 und Modus != solo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:50:30 +02:00
Eddy
314042a01f Phase 11 Basis: Multi-Agent-Modi mit Tool-Filterung
Bridge (scripts/claude-bridge.js):
- allowedTools je nach Agent-Modus erzwingt Delegation
- Handlanger: nur Task + TodoWrite
- Experten: Task + TodoWrite + Read + Grep + Glob
- Solo/Auto: unveraendert

Backend (src-tauri/src/claude.rs):
- Mode-Persistenz: nach bridge-ready wird gespeicherter Modus gesetzt
- Catch-all Event-Handler: leitet unbekannte Bridge-Events generisch
  ans Frontend weiter (subagent-started, monitor-event, mode-changed, ...)

UI (routes/+layout.svelte, stores/events.ts):
- Modus-Badge im Footer (Handlanger orange, Experten lila, Auto cyan)
- mode-changed Event-Listener synchronisiert agentMode Store

Bugfix voice.rs:
- reqwest::multipart::Part::file existiert nicht → auf Part::bytes umgestellt
- keine Temp-Datei mehr noetig

Bugfix knowledge.rs:
- Type-Annotation bei category Option<&str> fuer exec_map Inference

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:39:17 +02:00
Eddy
f51241efa6 Phase 10 Sprach-Interface + Phase 9 Nacharbeiten
Voice (Phase 10):
- voice.rs: OpenAI Whisper (STT) + TTS Backend
- ChatPanel: Mikrofon-Button, VAD (Pause 1.5s), Live-Pegel
- SettingsPanel: OpenAI-Key Konfiguration

Phase 9 Nacharbeiten:
- Auto-Extract vor Compacting (Entscheidungen/TODOs/Insights)
- get_tool_hints() - relevante KB-Eintraege bei Tool-Start
- activeKnowledgeHints Store, Anzeige im KnowledgePanel

Tech-Schulden:
- Dead-Code in memory.rs entfernt (MemorySystem struct)
- cargo-check Warnings behoben

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:24:28 +02:00
Eddy
51239d6639 Sticky Context Auto-Load beim App-Start
- init_sticky_context Tauri Command: Lädt Context aus DB, sendet an Bridge
- Frontend ruft Command beim Start auf (+layout.svelte)
- StickyContextInfo Store für Status-Tracking
- Context-Badge im Footer (📌 +XXctx Token)
- Zeigt Anzahl Einträge und Token-Schätzung

Bugfixes:
- context.rs: Typ-Annotationen in Closures (String statt str)
- db.rs: conn als pub(crate) für Module-Zugriff
- memory.rs: get_sticky_context → get_sticky_memory_entries (Namenskonflikt)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:39:39 +02:00
Eddy
0d292179e2 ROADMAP: Claude-Session-ID Feature dokumentiert
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:30:55 +02:00
Eddy
be65dee04a Claude-Session-ID für SDK-Fortsetzung
- events.ts: Session-ID aus claude-result speichern via set_claude_session_id
- claude.rs: load_claude_session_id() lädt ID der aktiven Session
- claude.rs: send_to_bridge_full() mit resumeSessionId Parameter
- claude-bridge.js: sendMessage() akzeptiert resumeSessionId
- Bridge nutzt sessionId in query() Optionen für SDK-Fortsetzung

Ermöglicht nahtlose Konversations-Fortsetzung auf SDK-Ebene.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:30:28 +02:00
Eddy
3f600b828e ROADMAP: Performance-Metriken dokumentiert
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:25:50 +02:00
Eddy
6b8f28145f Performance-Panel mit Kosten-Tracker und Statistiken
- Neues PerformancePanel.svelte mit:
  - Kosten-Übersicht (Session, Heute, Gesamt)
  - Token-Statistiken mit Input/Output Ratio-Balken
  - Latenz-Verteilung (Min, P50, P95, Max)
  - Fehlerrate-Anzeige
  - Letzte Sessions Übersicht
- Neuer Tab "📈 Kosten" im mittleren Panel

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:25:13 +02:00
Eddy
b75c61faf4 ROADMAP: Backend-Persistierung dokumentiert
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:23:12 +02:00
Eddy
9d73684ece Monitor-Events Backend-Persistierung in SQLite
- MonitorEvent Struct + CRUD-Methoden in db.rs
- monitor_events Tabelle mit Auto-Cleanup (7 Tage)
- Tauri Commands: save/load/clear_monitor_events
- Frontend: Events beim Start laden, beim Hinzufügen speichern
- Async clearMonitorEvents löscht auch DB-Einträge

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:22:31 +02:00
Eddy
af663c6eee ROADMAP: Token-Anzeige + Log-Export dokumentiert
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:08:43 +02:00
Eddy
88f2d22d12 Log-Export im Monitor-Panel
- 📥 JSON Button: Exportiert alle Events als strukturiertes JSON
- 📄 TXT Button: Exportiert als lesbarer Text
- Enthält Zeitstempel, Stats und Filter-Status
- Download als Datei (monitor-log.json / .txt)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:08:23 +02:00
Eddy
84dc806266 Live Token-Anzeige im Chat-Header
- Zeigt geschätzte Token-Anzahl (~X.Xk)
- Farbcodiert: grün < 20k, gelb 20-40k, rot > 40k
- Aktualisiert sich live bei jeder Nachricht

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:07:39 +02:00
Eddy
b15dc5fd43 ROADMAP: Token-basiertes Compacting dokumentiert
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:03:50 +02:00
Eddy
ab95af24ae Token-basiertes Compacting mit Bestätigungs-Dialog
- Warnung bei ~40k Token (statt plumpe Nachrichtenanzahl)
- Dialog zeigt aktuelle Token-Schätzung
- User entscheidet ob kompaktiert wird
- Zeigt was nach Compacting übrig bleibt (30 neueste)
- "Später" Button um Dialog zu schließen

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:03:31 +02:00
Eddy
d6fca9ff34 ROADMAP: Keyboard Shortcuts + Das merken markiert
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 14:00:02 +02:00
Eddy
56eb2f50cb Keyboard Shortcuts + "Das merken" Button
- Ctrl+K: Focus auf Chat-Input
- Ctrl+Shift+K: Input leeren + Focus
- Ctrl+Enter: Nachricht senden (auch mehrzeilig)
- "Das merken" Button (💡) bei jeder Nachricht
- Modal-Dialog zum Speichern in Wissensbasis
- Kategorie, Priorität, Tags auswählbar

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 13:59:23 +02:00
Eddy
4405979fa5 ROADMAP: Nachträglich implementierte Features markiert 2026-04-14 13:39:32 +02:00
Eddy
2653b4fe8f Offene Punkte abgeschlossen: Bridge-Context, DiffView, FilePreview
- claude-bridge.js: Sticky Context bei API-Calls injizieren
- claude.rs: Context automatisch aus DB laden und mitsenden
- DiffView.svelte: Komponente für Edit-Tool Ergebnisse (Diff-Ansicht)
- FilePreview.svelte: Komponente für Read-Tool Ergebnisse

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 13:38:50 +02:00
Eddy
9c495fa6d2 ROADMAP: Phase 9 Commit-Hash aktualisiert 2026-04-14 13:35:29 +02:00
Eddy
eb91e54ede Phase 9: Intelligentes Context-Management
- context.rs: Drei-Schichten-Gedächtnis (Sticky, Projekt, Wissens-Hints)
- StickyContext für kritische Infos (User, Credentials, Regeln)
- ProjectContext für Entscheidungen und TODOs nach Compacting
- DB-Schema: sticky_context, compacting_archive, context_failures
- ContextPanel.svelte: UI zur Verwaltung des Sticky Context
- Neuer Tab "Context" im rechten Panel

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 13:35:07 +02:00
Eddy
bb3050cc12 ROADMAP: Phase 8 Commit-Hash aktualisiert 2026-04-14 13:28:12 +02:00
Eddy
e6bd0de3da Phase 8: Claude-DB Integration — Wissensbasis-Anbindung
- knowledge.rs: MySQL-Verbindung zu claude-db (192.168.155.1)
- Volltextsuche mit MATCH AGAINST
- "Das merken" Feature zum Speichern
- KnowledgePanel.svelte: Suche, Filter, Detail-View
- Neuer Tab "Wissen" im mittleren Panel

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 13:27:59 +02:00
Eddy
a984a21cfb ROADMAP: Phase 6 als erledigt markiert
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 13:05:59 +02:00