feat: Gemini thought_signature korrekt lesen und zurücksenden

- thought_signature aus delta.tool_calls[n].extra_content.google.thought_signature lesen (korrekter Pfad)
- ThoughtSignature-Feld in MessageRecord + DB-Migration (ALTER TABLE messages ADD COLUMN thought_signature)
- SaveMessage speichert ThoughtSignature pro Tool-Call
- OpenAiService: toolCallAccumulators Tuple um ThoughtSignature erweitert
- Tool-Calls mit thought_signature werden mit extra_content.google.thought_signature zurückgesendet (nicht function.thought_signature)
- ConvertMessage (History-Rebuild) setzt thought_signature ebenfalls korrekt
- ChatService.BuildApiMessages übergibt thought_signature aus DB-Record
- Gemini-Modelle dynamisch laden statt hardcodiert
- Tool-Call-Akkumulator nutzt id als primären Key (Gemini sendet parallele Calls ohne index)
- content=null → content='' für Gemini-Kompatibilität
This commit is contained in:
Meleki committed 2026-03-12 06:34:11 +01:00
1 parent e87455ffe9
commit 145441fa7b
6 files changed
+149 -65

No files matched your search

+16 -18
View File
@@ -1566,29 +1566,27 @@ Alle History-Queries (initial load, before/after-Paging, Polling) sortieren nach
## Deployment
### deploy.sh
**WICHTIG:** Das Deployment ist ein **manueller Vorgang**, der durch den Benutzer auf dem Server durchgeführt werden muss. Das System führt kein automatisches Deployment durch.
```bash
#!/bin/bash
set -e
cd /app/gott
export PATH="$HOME/.dotnet:$PATH"
systemctl stop gott
dotnet publish -c Release -o Build/Linux/publish
systemctl start gott
echo "OK"
```
### Goldene Regel für Änderungen
* **Arbeiten Sie AUSSCHLIESSLICH im Verzeichnis `wwwroot/`** für Frontend-Änderungen.
* **Editiere NIEMALS Dateien in `Build/*/publish/wwwroot/`!** Diese Verzeichnisse werden bei jedem Build überschrieben.
* Das Verzeichnis `Build/*/publish/data/gott.db` darf niemals manuell gelöscht, geleert oder direkt modifiziert werden.
### Verzeichnisse
### Deployment-Vorgang (Beispiel für Linux)
Das vorhandene Shell-Skript `deploy.sh` dient lediglich als Hilfestellung für den manuellen Prozess:
- **Quell-Code**: `/app/gott/` (wwwroot/, Services/, etc.)
- **Build-Output**: `/app/gott/Build/<OS>/publish/`
- **Laufzeit-Daten**: `/app/gott/Build/<OS>/publish/data/` (DB, Agents, Images, Skills)
- **WICHTIG**: Änderungen IMMER in `wwwroot/` machen, NIEMALS in `Build/*/publish/wwwroot/`
1. **Frontend-Anpassungen vornehmen** (in `wwwroot/`).
2. **Manuelles Deployment** auf dem Server ausführen:
```bash
# Beispiel-Ablauf:
systemctl stop gott
dotnet publish -c Release -o Build/Linux/publish
systemctl start gott
```
### systemd
Die Anwendung läuft als systemd Service (`gott.service`), Kestrel auf Port 19000.
Die Anwendung ist als systemd-Service konfiguriert und läuft standardmäßig auf Port 19000.
---