feat: add isolated Gemini provider

This commit is contained in:
2026-07-30 17:57:19 +02:00
parent 286d96da33
commit f3e11831fb
8 changed files with 890 additions and 19 deletions
+10 -5
View File
@@ -78,6 +78,10 @@ Rootserver:
Billing-Freiheit ohne Pascals lokale Bestätigung, höchstens ein Retry.
- Provider-Nutzung wird separat in SQLite ausschließlich als technische Metadaten
protokolliert; Prompts, Antworten und Secrets werden dort nicht gespeichert.
- Isolierter Gemini-Provider nutzt das offizielle `google-genai` 2.16.0 mit API
`v1`, begrenztem Timeout und maximal einem Retry; 429 wird nicht wiederholt.
- Fehlender/ungültiger Schlüssel, 429, Netzwerkfehler und ungültige Antworten
werden als getrennte, bereinigte Fehler signalisiert. Noch kein Routing aktiv.
## Aktuelle Architektur
@@ -125,6 +129,8 @@ Rootserver:
- Betriebssystemgebundenen Secret-Provider und isolierte Fake-Backend-Tests ergänzt.
- Datenschutzrouter, minimale Cloud-Kontextauswahl, strikte Nullkosten-Defaults,
lokale Tages-/Größenlimits und metadatenbasiertes Provider-Audit ergänzt.
- Offiziellen Gemini-SDK-Client isoliert angebunden und ausschließlich mit
Test-Doubles gegen Erfolg, Key-, Quota-, Netzwerk- und Antwortfehler geprüft.
## Aktuelle Tests
@@ -139,8 +145,7 @@ Letzter bestätigter Projektstand:
- uv-Lock und `uv sync --dev`: bestanden
- Python in `.venv`: 3.12.13
- Ruff in `.venv`: 0.16.0
- Unit-Tests: 30 bestanden, davon 8 für Datenschutzrouting und Kontextminimierung,
3 für Nullkosten-/Limitkonfiguration sowie 1 für das metadatenbasierte Audit
- Unit-Tests: 37 bestanden; zusätzlich 7 für den isolierten Gemini-Provider
- Ruff Lint: bestanden
- Ruff Formatprüfung: bestanden
@@ -226,9 +231,9 @@ Abnahmestatus:
Auf dem bestehenden Feature-Branch als nächstes einzelnes Arbeitspaket:
1. offiziellen `google-genai`-Client anbinden
2. Gemini-Erfolg sowie fehlenden/ungültigen Schlüssel, 429, Netzwerkfehler und
höchstens einen Retry vollständig mit Test-Doubles prüfen
1. Hybridrouter vor den Chatkern setzen
2. `allowed`/`ask`/`never`, lokale Tagesgrenze und sichtbares Ollama-Fallback
für Key-, 429-, Netzwerk- und Gemini-Ausfälle vollständig mit Doubles testen
3. noch keine echte Cloudanfrage ausführen und noch nicht nach `main` mergen
Keinen API-Key in Chat, Git, Obsidian, Logs oder Dokumentation übernehmen.