Commit Graph
422 Commits
Author SHA1 Message Date
Meleki 1ece62ce8c feat(cache): 1h-Prompt-Cache-TTL für API und Claude CLI
Anthropic hat Anfang März 2026 die Default-Cache-TTL stillschweigend
von 1h auf 5min gesenkt. Bei Sessions mit Pausen >5min wird der Cache
jedes Mal neu geschrieben (teuer). Dieser Commit aktiviert die
extended 1h-TTL über beide Pfade.

API-Pfad (AnthropicService):
- Beta-Header "extended-cache-ttl-2025-04-11" hinzugefügt
- Falsches Top-Level cache_control (Root-Level wurde ignoriert) entfernt
- Neue Helper ApplyCacheControlToLast() setzt cache_control idempotent
  auf das letzte Element via JSON-Roundtrip zu Dictionary
- 2 Cache-Breakpoints pro Iteration:
  * Letztes Tool (cached gesamten Tool-Block)
  * Letzter System-Prompt-Block (cached System-Prompt)
- Sub-Agent-Loop (Preparer/Review/Finalizer): String-System-Prompt wird
  bei Bedarf in Block-Form mit cache_control konvertiert

CLI-Pfad (ClaudeCliService):
- Env-Var ENABLE_PROMPT_CACHING_1H=1 für jeden CLI-Child-Prozess gesetzt
  (offizieller Opt-in seit Claude CLI 2.1.108, gilt für API-Key,
  Bedrock, Vertex, Foundry)
2026-05-13 06:46:26 +02:00
MelekiandClaude Opus 4.7 e87d7c4eec feat(debug): Encoding-Diagnose für Claude CLI (opt-in via Env-Var)
Aktivierung: Umgebungsvariable GOTT_CLI_DEBUG_BYTES=1

Im Debug-Modus wird ein TeeReadStream zwischengeschaltet, der alle rohen Bytes
vom Claude-CLI-Prozess in eine .bin-Datei schreibt (vor dem UTF-8-Decode).
Zusätzlich wird jedes Vorkommen von U+FFFD im decoded Output mit Position,
Kontext und FFFD-Counter in eine .log-Datei protokolliert.

Logs landen in data/cli-debug/cli-stdout-{timestamp}.{bin,log}.

So können wir das intermittierende �-Problem auf Windows beweisbar einkreisen:
- Wenn .bin valide UTF-8-Bytes enthält aber .log FFFD-Treffer hat → unser Decoder
- Wenn .bin bereits invalide Bytes (CP1252) enthält → Claude-CLI/Node ist schuld
- Wenn .bin bereits EF BF BD enthält → Anthropic-Server schickt schon kaputt

Im Default-Modus (Env-Var nicht gesetzt) bleibt der ursprüngliche Default-Reader
aktiv – kein zusätzlicher Disk-IO im Normalbetrieb.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 16:29:22 +02:00
MelekiandClaude Opus 4.7 01346a952e Revert: UTF-8-Encoding-Fixes für Claude CLI auf Windows
Setzt die folgenden Commits zurück, da sie das Problem nicht behoben haben:
- e75c437 fix(encoding): UTF-8 prozess-global + 16-KB-StreamReader für CLI-Output
- bfd550e fix: UTF-8-Encoding gehärtet (SSE-Reader + CLI-Workspace)
- 32aad7f fix: UTF-8-Encoding für Claude CLI auf Windows erzwingen

Trotz cmd.exe-Wrapper mit chcp 65001, explizitem UTF-8-StreamReader (16 KB Buffer,
ohne BOM-Detection), Console.OutputEncoding global auf UTF-8 und LANG/LC_ALL/
PYTHONIOENCODING-Env-Vars treten weiterhin Replacement-Chars (�) für Umlaute
und Em-Dashes auf Windows auf. Der Bug muss separat per Diagnose-Logging
nachgestellt werden.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 16:27:16 +02:00
MelekiandClaude Opus 4.7 e75c4370fd fix(encoding): UTF-8 prozess-global + 16-KB-StreamReader für CLI-Output
Zwei zusätzliche Härtungen gegen intermittierende �-Replacement-Chars
(Umlaute, Em-Dash) im CLI-Output unter Windows:

- Program.cs: Auf Windows Console.OutputEncoding/InputEncoding = UTF-8
  setzen. Wirkt prozess-global via Win32 SetConsoleOutputCP/SetConsoleCP
  und wird von direkt gestarteten Child-Prozessen geerbt – ergänzt den
  bestehenden chcp-65001-cmd-Wrapper. In try/catch, falls als Windows-
  Dienst ohne Console gestartet.
- ClaudeCliService.cs: stdout-Lesen mit eigenem StreamReader (16-KB-
  Buffer, explizit UTF-8 ohne BOM-Detection) statt Default-Reader (1 KB).
  Verhindert, dass bei gefragmentierten Pipe-Reads Multi-Byte-UTF-8-
  Sequenzen über Buffer-Grenzen aufgesplittet werden und der Decoder
  den State verliert.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 16:12:24 +02:00
MelekiandClaude Opus 4.7 bfd550e090 fix: UTF-8-Encoding gehärtet (SSE-Reader + CLI-Workspace)
- AnthropicService.Streaming.cs + OpenAiService.cs: SSE-StreamReader nutzt
  jetzt expliziten UTF-8-Encoder mit 16-KB-Buffer (statt default 1 KB) und
  ohne BOM-Detection. Verhindert intermittierende Replacement-Chars (�),
  die entstehen können, wenn Multi-Byte-UTF-8-Sequenzen ungünstig über die
  Read-Boundary eines NetworkStreams gesplittet werden.
- ClaudeCliService.cs: cmd.exe-Wrapper jetzt mit /D (AutoRun-Skripte aus
  Registry deaktivieren) und WorkingDirectory wird auf den Session-Workspace
  gesetzt. Vorher erbte der Child-Prozess das CWD von gott (bei Windows-
  Diensten C:\WINDOWS\system32).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 12:08:56 +02:00
MelekiandClaude Opus 4.7 32aad7feef fix: UTF-8-Encoding für Claude CLI auf Windows erzwingen
Auf Windows kam es sporadisch zu Replacement-Chars (�) für Umlaute
und Em-Dash, weil claude.exe Output mit CP1252/CP850 schreiben konnte.
Lösung: CLI über cmd.exe wrappen und Codepage 65001 (UTF-8) erzwingen,
zusätzlich LANG/LC_ALL/PYTHONIOENCODING auf UTF-8 setzen.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 11:32:45 +02:00
MelekiandClaude Opus 4.7 b47ca33259 docs: Doku-Diskrepanzen bereinigt (MaxHistory 220, Opus 4.7, Review-Iterationen)
- README: MaxHistory Default 120 → 220 (entspricht Code)
- ARCHITECTURE.md: Modell-Liste um opus-4-7, opus-4-7[1m], opus-4-6[1m], sonnet-4-6[1m] ergänzt
- ARCHITECTURE.md + QUICK: Review-Tool-Loop von 25 → 20 Iterationen korrigiert (laut MaxIterations in AnthropicService.Agents.cs)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 17:06:10 +02:00
MelekiandClaude Opus 4.7 ac1c730f07 docs: Architektur-Doku auf aktuellen Stand bringen
Aktualisiert ARCHITECTURE.md, ARCHITECTURE_QUICK.md und README.md
für die letzten Feature-Commits:

- Auto-Context: SSE-Event, DB-Persistierung (auto_context-Message),
  History-Filter, Implementierung in Streaming + CLI
- Model-Auflösung: Opus 4.7 + [1m]-Varianten (1M Context)
- Krea: 5 neue Bildmodelle + MINIMAL_MODELS-Hinweis
- Remote: remote.sh (Linux/macOS, embedded Python),
  OS-aware Tool-Description (PowerShell vs. Bash),
  Hinweis dass Cronjobs/Telegram remoteOs aktuell nicht durchreichen
- CLI-Integration: Sub-Agent-Fallback (Preparer/Review/Finalizer),
  Python-Detection (python3 -> python -> py)
- Workspace: native Pfade (Windows \\, Linux /), Drives-Übersicht
- Frontend: addAutoContextBubble() in stream-ui.js
- MaxHistory Default 220 (statt 120)
- 🪟 -> 🗂️ in QUICK (Unicode-Kompatibilität)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 17:02:58 +02:00
MelekiandClaude Opus 4.7 52ab6ff00c fix: File-Explorer – Padding klickbar (Click-Handler vom Label aufs Item)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 16:49:03 +02:00
MelekiandClaude Opus 4.6 e7b663c82f feat: Opus 4.7 + 1M-Context-Varianten und neue Krea-Bildmodelle
- Claude Opus 4.7 als neues Default-Modell, 1M-Context-Varianten für Sonnet/Opus
- 5 neue Krea-Bildmodelle (z-image, qwen-2512, nano-banana-2, seedream-5-lite, seededit)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-25 16:39:41 +02:00
MelekiandClaude Opus 4.6 4e2815ebd3 fix: Backslash-Support im File-Explorer für Chat und Benutzerverwaltung
WorkspaceHelper gibt native Pfade zurück, Frontend-Logik unterstützt beide Separatoren.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-17 10:41:32 +02:00
MelekiandClaude Opus 4.6 1526891cd9 feat: CLI-Fallback für Sub-Agents (Preparer/Review/Finalizer) wenn kein API-Key zugewiesen
Statt Hard-Error "Kein API-Key zugewiesen" nutzen Sub-Agents jetzt
Claude CLI als Fallback. Preparer wird nur übersprungen wenn weder
Key noch CLI verfügbar sind.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-17 10:11:34 +02:00
MelekiandClaude Opus 4.6 eccecf8f14 fix: Windows File-Explorer – Backslashes und Laufwerksübersicht
Pfade werden auf Windows nativ mit Backslashes zurückgegeben statt zu Forward-Slashes konvertiert. Navigation von Laufwerk (C:) zurück zur Laufwerksliste ermöglicht.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-17 09:37:06 +02:00
MelekiandClaude Opus 4.6 53cee67bef feat: Remote-Execute für Linux/Bash – OS-basierte Tool-Descriptions und remote.sh Script
Remote-Verbindungen erkennen jetzt das OS des Clients und passen die Tool-Description
dynamisch an (PowerShell für Windows, Bash für Linux). Neues remote.sh Script für
Linux/macOS-Clients mit embedded Python WebSocket-Client.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 09:31:56 +02:00
MelekiandClaude Opus 4.6 1035066a39 feat: Python-Befehl auto-detect (python3/python/py) mit Warnung bei fehlendem Python
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 07:13:19 +02:00
MelekiandClaude Opus 4.6 f180dbc842 fix: Code-Blöcke vor LaTeX-Parsing schützen ($-Zeichen in Code nicht mehr als Math interpretiert)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 22:56:53 +02:00
MelekiandClaude Opus 4.6 c23e22eefe fix: Auto-Context Markdown-Rendering in History-Ansicht
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 10:24:44 +02:00
MelekiandClaude Opus 4.6 2ac0078960 fix: Auto-Context SSE-Event und DB-Save auch im CLI-Codepfad
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 10:12:07 +02:00
MelekiandClaude Opus 4.6 9fe6bed59b feat: Auto-Context im Frontend anzeigen und in DB persistieren
- recalled_context-Header verstärkt (klare Nutzungs-Anweisung statt passivem Hinweis)
- SSE-Event 'auto_context' ans Frontend senden für Live-Anzeige
- Auto-Context als Message (type=auto_context) in DB speichern
- Aufklappbare Auto-Context-Box im Chat-Stream und History-Rendering

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 09:28:56 +02:00
MelekiandClaude Opus 4.6 3f2baa1639 feat: AutoContext-Suche grundlegend verbessern + Embedding-Debug-Tool
Hybrid-Suche (Vektor + FTS5-Keyword), Recency-Boost, Query-Erweiterung
(letzte 2-3 User-Messages), Chunk-Overlapping, FullText-Speicherung,
konfigurierbares Embedding-Modell/MaxSeqLen, deduplizierter AutoContext-
Code (Streaming + CLI shared), Admin-Diagnose-Seite mit Re-Embed-Funktion.
Threshold von 0.45 auf 0.35 gesenkt (Hybrid-Suche ist präziser).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 08:50:41 +02:00
MelekiandClaude Opus 4.6 be6d33691a fix: CLI-Prozess bei Abbruch zuverlässig beenden (Kill on Cancel)
Process.Dispose() gibt nur den Handle frei, killt aber nicht den Prozess.
Jetzt wird per CancellationToken.Register() der gesamte Prozessbaum
(entireProcessTree: true) sofort beendet wenn der User auf Stoppen klickt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 11:52:41 +01:00
MelekiandClaude Opus 4.6 aec71feff3 fix: Nvidia-Label ohne g4f.space-Hinweis
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 09:21:11 +01:00
MelekiandClaude Opus 4.6 4960b57ec7 feat: Nvidia API direkt-Anbindung mit Thinking-Mode Support
Neues Server-Setting NvidiaApiKey – wenn gesetzt, wird direkt
integrate.api.nvidia.com verwendet statt g4f.space Proxy.
Thinking-Modelle (kimi-k2, qwq, deepseek-r1) erhalten automatisch
chat_template_kwargs und reasoning-Output wird als klappbare
Denkprozess-Bubble im Chat angezeigt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 09:09:02 +01:00
MelekiandClaude Opus 4.6 1101bb83a0 fix: CLI-Pfad-Suche für Windows-Dienst verbessern + CLAUDE_CLI_PATH
- CLAUDE_CLI_PATH Umgebungsvariable als höchste Priorität bei CLI-Suche
- CreateCliStartInfo() Helper dedupliziert ProcessStartInfo-Erstellung
- .cmd-Wrapper-Logik entfernt (nicht benötigt)
- PATH-Suche priorisiert .exe für Windows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 17:33:16 +01:00
MelekiandClaude Opus 4.6 9391b5a6fa fix: Verwaiste tool_result-Blöcke aus History entfernen (API 400)
Wenn eine ältere ask_user_choice-Chain als Text-only geladen wird,
geht der tool_use verloren, aber das tool_result in der nächsten Chain
bleibt – Anthropic API antwortet mit 400 "unexpected tool_use_id".
Neue FixOrphanedToolResults()-Funktion entfernt diese verwaisten Blöcke.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 16:52:31 +01:00
MelekiandClaude Opus 4.6 55477742a9 fix: CLIXML-Fehler bei Remote-Tool-Ausführung auf Windows beheben
Statt powershell.exe als Kindprozess mit 2>&1 zu starten (was CLIXML-Parsing-Fehler
bei rohem stderr verursacht), wird System.Diagnostics.Process direkt verwendet.
Zusätzlich werden harmlose CLIXML-Progress-Meldungen aus stderr herausgefiltert.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 22:36:26 +01:00
MelekiandClaude Opus 4.6 f03fbd298e feat: User-Berechtigungen für Agent-Erstellung und CLI-Nutzung
- Neue Felder CanCreateAgents und CanUseCli im UserRecord (Default: true)
- DB-Migration mit Abwärtskompatibilität (bestehende User behalten alle Rechte)
- Admin-UI: Checkboxen für beide Berechtigungen pro User
- AgentEndpoint: Prüfung auf CanCreateAgents beim Erstellen
- ChatEndpoint: CLI-Fallback nur wenn CanUseCli erlaubt
- Frontend: Neuer-Agent-Button und Agent-Page bei fehlender Berechtigung gesperrt
- Chat: Proaktive Warnung wenn kein API-Key und keine CLI-Berechtigung
- Bug Fix: is_public fehlte im Agent-INSERT (Public Agents erst nach erneutem Speichern sichtbar)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 18:47:56 +01:00
MelekiandClaude Opus 4.6 500c00f948 feat: Unity MCP-Server Integration pro Session
Sessions können jetzt einen Unity MCP-Server (URL + Token) konfigurieren.
Die CLI erhält automatisch die MCP-Config mit korrektem Transport-Typ
(URL-basierte Erkennung: /sse → SSE, sonst HTTP für streamableHttp).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 18:34:47 +01:00
MelekiandClaude Opus 4.6 9c507e4716 fix: TodoWrite-Tool über CLI korrekt als Todo-Liste rendern
TodoWrite → todo_write Mapping in Backend und Frontend ergänzt.
Todo-Liste wird jetzt aus dem Input-Array gebaut statt aus dem
Result, da die CLI nur einen generischen Erfolgstext zurückgibt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 07:07:12 +01:00
MelekiandClaude Opus 4.6 2494ca89b8 fix: Tool-Box mit sichtbarem Diff nicht mehr halbtransparent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 10:33:46 +01:00
Meleki 18d327c731 docs: Dokumentation an aktuellen Code-Stand anpassen
- agents-Tabelle: use_auto_context, use_github_search, use_serper_search ergänzt
- api_keys-Tabelle: is_public, refresh_token, access_token_expires_at, oauth_provider ergänzt
- scanned_keys-Tabelle: source, type Spalten ergänzt
- scanner_logs-Tabelle: nicht-existierende details-Spalte entfernt
- models_cache.json: OpenAI als vierten Provider ergänzt
- Internal-Endpunkt: POST /api/chat/choice-respond dokumentiert
2026-03-19 10:12:32 +01:00
MelekiandClaude Opus 4.6 486a1be6b5 docs: Dokumentation an aktuellen Code-Stand anpassen
Neue Features dokumentiert: Claude CLI Integration, DB Explorer, MCP-Server (Internal API),
Key-Scanner-System (KeyPatterns, KeyCheckDispatcher, GitHubEventScannerService),
Multi-Provider Key-Checker (OpenAI, Google, Stripe), AnthropicService partial-class Aufteilung,
2 neue Tools (github_code_search, serper_web_search → 19 Tools), OpenAI als Provider,
typing-phrases.js, AppPaths, payload-preview Endpoint.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 10:03:30 +01:00
MelekiandClaude Opus 4.6 d1c8aa62f2 fix: Redundantes CLI-Tool-Mapping entfernt + alle Tool-Anzeigenamen ergänzt
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 08:58:41 +01:00
MelekiandClaude Opus 4.6 dd7cf0ec93 feat: chatUsageBadge-Setting + Dashboard-Menü als Dropdown
- Neues Setting chatUsageBadge (default: false) blendet Usage-Badge im Chat ein/aus
- Dashboard-Links durch 3-Dot-Header-Menü ersetzt (einheitlich mit Chat)
- Admin-Items über admin-only Attribut gesteuert, dashboard-links CSS entfernt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 08:35:05 +01:00
MelekiandClaude Opus 4.6 3e19da4d48 refactor: Backend-Deduplizierung – Parameter-Objekte, Shared Helpers, KeyCheckDispatcher
- ToolDefinitionOptions + ToolExecutionContext ersetzen lange Parameterlisten in ToolService
- AppendToLastMessage-Helper in ChatService eliminiert 5x duplizierte Logik
- OpenAiService: ResolveProviderConfig + BuildApiMessages + ConvertToOpenAiTools statt doppeltem Code
- Tool-Definitionen aus einer Quelle (Anthropic→OpenAI Konvertierung statt hardcodierter Liste)
- KeyCheckDispatcher zentralisiert Key-Check-Dispatch (ApiKeysEndpoint, KeyScanner, GitHubEventScanner)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 08:01:49 +01:00
MelekiandClaude Opus 4.6 f3069cedf7 fix: CLI-Zugriff auf Temp-Bilder auch ohne Workspace
Read-Tool wird jetzt immer erlaubt (nicht nur mit Workspace), und
/tmp/gott-cli-images/ wird als --add-dir hinzugefügt, damit gesendete
Bilder von der CLI gelesen werden können.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 16:53:59 +01:00
MelekiandClaude Opus 4.6 1c622abb37 refactor: AnthropicService partial-class Aufteilung + ToolPayloadOptions + Non-Streaming Deduplizierung
- AnthropicService.cs (337 Zeilen): Felder, Konstruktor, Setters, Utilities
- AnthropicService.Streaming.cs (750 Zeilen): StreamChat, ProcessStream, SSE-Parsing
- AnthropicService.Agents.cs (680 Zeilen): RunAgentChat, ChatNonStreaming, Review/Preparer/Finalizer
- AnthropicService.Cli.cs (530 Zeilen): StreamChatViaCli, MCP-Config, CLI-Helpers
- AddToolsToPayload: 12 Bool-Parameter → ToolPayloadOptions Record
- RunAgentChat + ChatNonStreaming → gemeinsame RunNonStreamingToolLoop-Methode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 14:54:39 +01:00
MelekiandClaude Opus 4.6 92ecaf9dac fix: ask_user_choice Short-Poll, Freitext-Option, Stop-Kontext-Fix
- Long-Poll durch Short-Poll ersetzt (MCP-Server pollt jede Sekunde statt einer blockierenden HTTP-Anfrage)
- Expliziter Lambda-Rückgabetyp Task<IResult> für ASP.NET Minimal API Endpoints (behebt 200 empty body Bug)
- Freitext-Option bei Choice-Buttons ("Eigene Antwort…") für freie User-Eingabe
- Stop während ask_user_choice markiert Chain als awaiting_user_choice statt stopped (Kontext bleibt erhalten)
- ask_user_choice System-Prompt-Instruktion breiter formuliert (Quiz, Multiple-Choice etc.)
- Text wird jetzt immer in DB gespeichert, auch bei ask_user_choice
- Key-Check Model auf claude-haiku-4-5 geändert

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 11:32:25 +01:00
MelekiandClaude Opus 4.6 3e0a69e7a4 feat: MCP-Tools ask_user_choice + memory_read/write/list, Text-Marker entfernt
MCP-Server erweitert um ask_user_choice (Long-Poll), memory_read, memory_write
und memory_list Tools. MCP-Config wird jetzt immer generiert (nicht nur bei
Remote-Verbindung). InternalEndpoint um PendingChoices + choice-respond Endpoint
ergänzt. Frontend differenziert CLI-Modus (choice-respond API) vs. API-Modus.
Gesamter :::ASK_USER_CHOICE::: Text-Marker-Mechanismus aus ClaudeCliService,
AnthropicService, markdown.js und stream-ui.js entfernt.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 09:54:30 +01:00
MelekiandClaude Opus 4.6 3b068a7866 feat: MCP-Server für remote_execute + Inline-Choice-UI
- Python MCP-Server (stdio, JSON-RPC 2.0) für remote_execute via Claude CLI
- Interner API-Endpoint /api/internal/remote-execute mit Token-Auth
- MCP-Config wird automatisch generiert wenn Remote-Verbindung vorhanden
- Auth-Middleware: /api/internal/ von Auth ausgenommen
- Frontend: :::ASK_USER_CHOICE::: Blöcke als interaktive Buttons rendern
- Streaming: Unvollständige Choice-Blöcke werden während des Streams versteckt
- tool-ui.js: MCP-Tool-Namen generisch normalisieren (mcp__server__tool → tool)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 09:00:50 +01:00
MelekiandClaude Opus 4.6 ee0b817f25 fix: CLI-Stream überlebt Page-Reload (Token-Trennung workCt/sseCt)
workCt steuert den CLI-Prozess (nur Stop-Button), sseCt die SSE-Writes
(Client-Disconnect). Page-Reload cancelt nur sseCt → CLI läuft weiter.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 07:01:00 +01:00
MelekiandClaude Opus 4.6 7d55e8e818 fix: Tool-Results im Chat korrekt anzeigen
Result-Div wird nicht mehr leer erstellt bei tool_use – erst wenn
tatsächlich ein Result vorliegt. Header wird nachträglich clickable
gemacht wenn das Result später eintrifft.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 06:54:26 +01:00
MelekiandClaude Opus 4.6 6d16d00290 feat: CLI-Streaming – korrekte Tool-Darstellung, Reihenfolge und Error-Handling
- Tool-Namen/Inputs von CLI-Konvention auf gott-Konvention mappen (Edit→edit_file, file_path→path etc.)
- Text vor Tool-Use in DB flushen für korrekte Reihenfolge (statt alles am Ende als Blob)
- lineBuffer in ClaudeCliService vor Tool-Start und bei Text-Block-Ende flushen
- ToolResult-Events parsen und in DB speichern (CLI sendet diese als type:"user" Messages)
- Errors in DB speichern und als SSE-Event senden
- Bild-Attachments als Temp-Dateien für CLI bereitstellen (Read-Tool kann sie lesen)
- Frontend: tool_result Handler, Tool-Name-Normalisierung, appendToolResult()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 06:48:10 +01:00
MelekiandClaude Opus 4.6 3e372b5a6e chore: .claude/ in .gitignore aufgenommen
Verhindert dass lokale Claude CLI Credentials versehentlich ins Repo gelangen.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 22:42:23 +01:00
MelekiandClaude Opus 4.6 4af9430466 feat: Claude CLI Pfad mit ask_user_choice, Plan-Modus und Tool-Konfiguration
- ClaudeCliService: Marker-basierte ask_user_choice Erkennung im Stream-Parser
- AnthropicService: StreamChatViaCli mit allowUserChoice, planMode, webSearch
- BuildHistoryContext erweitert für tool_use/tool_result (Choice-Antworten)
- Tool-Use Records werden in DB persistiert (Poll-Kompatibilität)
- CLI Tools konfigurierbar: Workspace/Plan-Modus/WebSearch/kein Workspace
- OAuth DB-Felder für zukünftige Token-Verwaltung

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 22:25:39 +01:00
Meleki 8150b58110 Block message send during active stream
Prevent sending messages via Enter key while a stream/response is active.
sendMessage() now returns early if isStreaming is true.
2026-03-17 10:20:52 +01:00
Meleki bfd1767471 chore: Temp/ aus .gitignore entfernt 2026-03-16 21:45:26 +01:00
Meleki e31d6cfb4d MaxHistory Default von 120 auf 220 erhöht 2026-03-15 11:20:33 +01:00
Meleki 0e55e45497 UI: Remote-Modal und sp-loading Styling verbessern
- sp-loading: Flexbox-Layout statt text-align center
- Remote-Modal: Powershell-Befehl immer sichtbar (nicht nur bei leerer Liste)
- remote-card-content: Padding ergänzt
2026-03-15 11:08:51 +01:00
Meleki 24c0c79a64 cleanup: ungenutzte CSS-Klassen entfernt, sp-loading restyled
- .font-sm und .semi-transparent Utility-Klassen entfernt (nirgends verwendet)
- .sp-loading: code-Block mit eigenem Styling statt opacity
- modals.js: font-sm/semi-transparent Klassen aus Remote-Modal entfernt
2026-03-15 10:57:20 +01:00