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.
|
||||
|
||||
|
||||
+11
-4
@@ -40,7 +40,12 @@ Stand: lokaler Textchat auf `main`, 30.07.2026.
|
||||
- offizielle Gemini-Rahmenbedingungen geprüft; Standardmodell `gemini-3.6-flash`
|
||||
- `keyring` 25.7.0 mit Windows Credential Locker als normalem Secret-Speicher
|
||||
- verdeckte Secret-Befehle `set`, `status` und `delete`
|
||||
- 18 Unit-Tests aktuell erfolgreich
|
||||
- lokaler Datenschutzrouter mit `allowed`, `ask` und nicht übersteuerbarem `never`
|
||||
- minimale Cloud-Kontextauswahl schließt sensible Verlaufsteile aus
|
||||
- konservative Nullkosten-Defaults und harte lokale Tages-, Größen-, Timeout-
|
||||
und Retry-Grenzen
|
||||
- separates SQLite-Provider-Audit speichert nur Metadaten, keine Inhalte
|
||||
- 30 Unit-Tests aktuell erfolgreich; Ruff-Format und Lint sauber
|
||||
|
||||
## Nicht implementiert
|
||||
|
||||
@@ -49,7 +54,8 @@ Living-Mind-Frontend und automatische Ollama-Prozessverwaltung.
|
||||
|
||||
## Git
|
||||
|
||||
- Branch: `main`
|
||||
- stabiler Branch: `main`
|
||||
- aktueller Branch: `feat/gemini-privacy-router`
|
||||
- Grundgerüstcommit: `6d04171`
|
||||
- Basis des Feature-Branches: `e6eb995`
|
||||
- Toolchain: `fa90a5c`
|
||||
@@ -64,5 +70,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.
|
||||
Gemini ist als separates kostenloses Folgepaket mit lokalem Datenschutzrouting
|
||||
geplant, aber noch nicht implementiert oder mit einem API-Key konfiguriert.
|
||||
Der Gemini-Netzwerkprovider und das automatische Ollama-Fallback sind noch nicht
|
||||
implementiert. Es wurde kein echter API-Key angefordert, angezeigt oder
|
||||
konfiguriert und noch keine Cloudanfrage ausgeführt.
|
||||
|
||||
Reference in New Issue
Block a user