feat: add privacy-aware hybrid routing
This commit is contained in:
+11
-5
@@ -81,7 +81,11 @@ Rootserver:
|
||||
- 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.
|
||||
werden als getrennte, bereinigte Fehler signalisiert.
|
||||
- Hybridrouter erzwingt lokal Datenschutz, Freigabe, Billing-Bestätigung,
|
||||
Tages-/Größenlimits und sichtbares Ollama-Fallback vor jedem Cloudaufruf.
|
||||
- Ein abgelehnter Schlüssel deaktiviert Gemini für den restlichen CLI-Prozess;
|
||||
alte reine Ollama-Sitzungen bleiben mit dem Hybridprovider ladbar.
|
||||
|
||||
## Aktuelle Architektur
|
||||
|
||||
@@ -131,6 +135,8 @@ Rootserver:
|
||||
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.
|
||||
- Hybridrouting und Audit mit Test-Doubles integriert: `never` konstruiert keinen
|
||||
Cloudclient, `ask` verlangt Freigabe, 429/Netzwerk/Keyfehler fallen lokal zurück.
|
||||
|
||||
## Aktuelle Tests
|
||||
|
||||
@@ -145,7 +151,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: 37 bestanden; zusätzlich 7 für den isolierten Gemini-Provider
|
||||
- Unit-Tests: 51 bestanden; zusätzlich 13 Router- und 1 Kompatibilitätstest
|
||||
- Ruff Lint: bestanden
|
||||
- Ruff Formatprüfung: bestanden
|
||||
|
||||
@@ -231,9 +237,9 @@ Abnahmestatus:
|
||||
|
||||
Auf dem bestehenden Feature-Branch als nächstes einzelnes Arbeitspaket:
|
||||
|
||||
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
|
||||
1. lokale TOML-Konfiguration und sichere Aktivierungsbestätigung ergänzen
|
||||
2. Hybridrouter in die CLI verdrahten und `/provider`, `/privacy`, `/status`
|
||||
mit standardmäßig abgelehnter `ask`-Freigabe implementieren
|
||||
3. noch keine echte Cloudanfrage ausführen und noch nicht nach `main` mergen
|
||||
|
||||
Keinen API-Key in Chat, Git, Obsidian, Logs oder Dokumentation übernehmen.
|
||||
|
||||
@@ -49,7 +49,11 @@ Stand: lokaler Textchat auf `main`, 30.07.2026.
|
||||
begrenztem Timeout, höchstens einem Retry und keinem 429-Retry
|
||||
- bereinigte, getrennte Fehler für fehlenden/ungültigen Key, Quote, Netzwerk,
|
||||
Modellverfügbarkeit, Timeout und ungültige Antwort
|
||||
- 37 Unit-Tests aktuell erfolgreich; Ruff-Format und Lint sauber
|
||||
- Hybridrouter erzwingt vor Cloudaufrufen lokal `allowed`/`ask`/`never`,
|
||||
Aktivierung, Billing-Bestätigung, Tages-/Größenlimit und minimierten Kontext
|
||||
- sichtbares lokales Fallback für fehlenden/ungültigen Key, 429, Netzwerk,
|
||||
Datenschutz und lokale Grenzen; alte Ollama-Sitzungen bleiben ladbar
|
||||
- 51 Unit-Tests aktuell erfolgreich; Ruff-Format und Lint sauber
|
||||
|
||||
## Nicht implementiert
|
||||
|
||||
@@ -74,7 +78,6 @@ Living-Mind-Frontend und automatische Ollama-Prozessverwaltung.
|
||||
Ollama wird bewusst manuell in einem eigenen Terminal gestartet. Antworten werden
|
||||
noch nicht gestreamt; Sitzungen haben noch keine Titel, Suche oder Löschfunktion.
|
||||
`qwen3:8b` ist nicht automatisch für die GTX 1050 des späteren Zielhosts geeignet.
|
||||
Der Gemini-Netzwerkprovider ist isoliert implementiert, aber noch nicht in den
|
||||
Chatkern geroutet. Das automatische Ollama-Fallback fehlt noch. Es wurde kein
|
||||
echter API-Key angefordert, angezeigt oder konfiguriert und keine Cloudanfrage
|
||||
ausgeführt.
|
||||
Der Hybridprovider ist implementiert, aber noch nicht in der echten CLI verdrahtet.
|
||||
Lokale TOML-Aktivierung, Statusbefehle und Startskript fehlen. Es wurde kein echter
|
||||
API-Key angefordert, angezeigt oder konfiguriert und keine Cloudanfrage ausgeführt.
|
||||
|
||||
Reference in New Issue
Block a user