feat: add privacy router and zero-cost safeguards
This commit is contained in:
+20
-9
@@ -70,6 +70,14 @@ Rootserver:
|
||||
der Windows Credential Locker verwendet.
|
||||
- Secret-CLI: `javis secrets set gemini`, `status` und `delete gemini`; Setzen
|
||||
verwendet verdeckte Eingabe und kein Befehl gibt den Schlüsselwert aus.
|
||||
- Lokaler Datenschutzrouter klassifiziert jeden späteren Cloudaufruf konservativ
|
||||
als `allowed`, `ask` oder `never`; `never` kann auch durch einen ausdrücklichen
|
||||
Cloudwunsch nicht überstimmt werden.
|
||||
- Nullkosten-Vorgaben und lokale Schutzgrenzen sind zentral konfiguriert:
|
||||
Gemini standardmäßig deaktiviert, `free_only = true`, keine bestätigte
|
||||
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.
|
||||
|
||||
## Aktuelle Architektur
|
||||
|
||||
@@ -115,6 +123,8 @@ Rootserver:
|
||||
Auth-Keys, GA-SDK, Fehlercodes und Datenschutzbedingungen geprüft und unter
|
||||
`docs/GEMINI_PROVIDER.md` kompakt dokumentiert.
|
||||
- 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.
|
||||
|
||||
## Aktuelle Tests
|
||||
|
||||
@@ -129,7 +139,8 @@ 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: 18 bestanden, davon 5 für Secret-Speicher und Secret-CLI
|
||||
- Unit-Tests: 30 bestanden, davon 8 für Datenschutzrouting und Kontextminimierung,
|
||||
3 für Nullkosten-/Limitkonfiguration sowie 1 für das metadatenbasierte Audit
|
||||
- Ruff Lint: bestanden
|
||||
- Ruff Formatprüfung: bestanden
|
||||
|
||||
@@ -171,6 +182,7 @@ Abnahmestatus:
|
||||
- Feature-Dokumentation: `5d567e5`
|
||||
- lokaler Merge nach `main`: `f3d6dfb`
|
||||
- geprüfter und gepushter Abschlussstand vor diesem Handoff-Update: `0a550e6`
|
||||
- Secret-Provider: `570e7fa`
|
||||
- `origin` verwendet HTTPS
|
||||
- kein Force-Push und keine umgeschriebene Historie
|
||||
|
||||
@@ -190,7 +202,8 @@ Abnahmestatus:
|
||||
- Startmechanismus für Ollama ist noch bewusst manuell und nur pro Prozess konfiguriert
|
||||
- Antworten werden noch nicht gestreamt; Sitzungen besitzen noch keine Titel oder Suche
|
||||
- genauer späterer Obsidian-Schreibbereich ist nicht freigegeben
|
||||
- endgültiger Secret-Provider ist offen; lokale Klartext-XML wäre nur restriktiv geschützt und Git-ignoriert zulässig
|
||||
- normaler Secret-Provider ist festgelegt: Betriebssystem-Keyring; eine
|
||||
Klartext-XML wird nicht für API-Schlüssel verwendet
|
||||
- Google-Quoten bleiben projektabhängig und müssen in AI Studio geprüft werden;
|
||||
lokale Limits sind nur zusätzliche Schutzgrenzen
|
||||
- Gaming-PC zeigt derzeit nur 8 statt 16 logische CPU-Prozessoren; Ursache ungeklärt
|
||||
@@ -211,14 +224,12 @@ Abnahmestatus:
|
||||
|
||||
## Nächster sinnvoller Auftrag
|
||||
|
||||
Als separates nächstes Featurepaket auf neuem Branch:
|
||||
Auf dem bestehenden Feature-Branch als nächstes einzelnes Arbeitspaket:
|
||||
|
||||
1. offizielle aktuelle Gemini-Free-Tier-Modelle und Kontingente neu prüfen
|
||||
2. Datenschutzrouting `allowed`/`ask`/`never` vor jedem Cloudaufruf erzwingen
|
||||
3. Gemini als kostenlosen bevorzugten Provider und Ollama als lokalen
|
||||
Datenschutz-/Offline-/429-Fallback implementieren
|
||||
4. `free_only = true`, keine Billing-Aktivierung und alle geforderten Erfolgs-,
|
||||
Key-, 429-, Netzwerk-, Fallback- und Datenschutztests nachweisen
|
||||
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
|
||||
3. noch keine echte Cloudanfrage ausführen und noch nicht nach `main` mergen
|
||||
|
||||
Keinen API-Key in Chat, Git, Obsidian, Logs oder Dokumentation übernehmen.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user