docs: finalize Gemini privacy handoff
This commit is contained in:
@@ -18,6 +18,12 @@ Alle wesentlichen Projektänderungen werden hier in verständlicher Form dokumen
|
|||||||
- SQLite-Sitzungen mit geordneter Nachrichtenhistorie außerhalb des Repositories.
|
- SQLite-Sitzungen mit geordneter Nachrichtenhistorie außerhalb des Repositories.
|
||||||
- CLI-Befehle für neue, gelistete, geladene, geleerte und beendete Sitzungen.
|
- CLI-Befehle für neue, gelistete, geladene, geleerte und beendete Sitzungen.
|
||||||
- Unit-Tests für Konfiguration, Speicher, Chatkern, Provider und CLI.
|
- Unit-Tests für Konfiguration, Speicher, Chatkern, Provider und CLI.
|
||||||
|
- Sicherer Gemini-Key-Speicher über Betriebssystem-Keyring.
|
||||||
|
- Offizieller Gemini-Provider mit lokalem Datenschutzrouter
|
||||||
|
(`allowed`/`ask`/`never`) und sichtbarem Ollama-Fallback.
|
||||||
|
- Strikter Nullkostenmodus, lokale Schutzlimits und inhaltsfreies Provider-Audit.
|
||||||
|
- Bereinigte CLI-Befehle `/provider`, `/privacy` und `/status`.
|
||||||
|
- Sicheres PowerShell-Startskript ohne Systemänderungen.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
@@ -29,8 +35,16 @@ Alle wesentlichen Projektänderungen werden hier in verständlicher Form dokumen
|
|||||||
- Offizielle VS-Code-Erweiterungen für Python, Pylance und Python Environments eingerichtet.
|
- Offizielle VS-Code-Erweiterungen für Python, Pylance und Python Environments eingerichtet.
|
||||||
- `qwen3:8b` mit echten deutschen Antworten und GPU-/Zeitmessungen auf der RTX 3060 geprüft.
|
- `qwen3:8b` mit echten deutschen Antworten und GPU-/Zeitmessungen auf der RTX 3060 geprüft.
|
||||||
- Projektstatus, Architektur und Datenmodell auf den funktionierenden Textchat aktualisiert.
|
- Projektstatus, Architektur und Datenmodell auf den funktionierenden Textchat aktualisiert.
|
||||||
|
- Chatlaufzeit auf austauschbares Hybridrouting umgestellt; alte Ollama-Sitzungen
|
||||||
|
bleiben ladbar.
|
||||||
|
- Nicht geheime Providerkonfiguration liegt lokal außerhalb von Git; ein Key wird
|
||||||
|
erst unmittelbar vor einem zulässigen Cloudaufruf geladen.
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
|
||||||
- Lokale Secret-Dateien, Laufzeitdaten, Modelle, Datenbanken und Logs werden von Git ausgeschlossen.
|
- Lokale Secret-Dateien, Laufzeitdaten, Modelle, Datenbanken und Logs werden von Git ausgeschlossen.
|
||||||
- Das Sprachmodell darf keine Secret-Werte erhalten.
|
- Das Sprachmodell darf keine Secret-Werte erhalten.
|
||||||
|
- Gemini bleibt ohne lokale Aktivierung, Key, Nullkostenmodus und bestätigtes
|
||||||
|
Nicht-Billing deaktiviert; Javis aktiviert niemals Billing.
|
||||||
|
- Cloudkontext wird lokal klassifiziert und minimiert; 429, Netzwerk-, Timeout-,
|
||||||
|
Key- und Modellfehler fallen auf Ollama zurück.
|
||||||
|
|||||||
+13
-10
@@ -8,12 +8,12 @@ Javis beginnt als modularer Monolith. Module besitzen klare Zuständigkeiten und
|
|||||||
|
|
||||||
1. Interface: implementierte CLI; später möglicherweise Sprache, Mobilzugriff und Living Mind.
|
1. Interface: implementierte CLI; später möglicherweise Sprache, Mobilzugriff und Living Mind.
|
||||||
2. Core: implementierter Gesprächsablauf und Sitzungslogik.
|
2. Core: implementierter Gesprächsablauf und Sitzungslogik.
|
||||||
3. Providers: kleine Schnittstelle und implementierter lokaler Ollama-Adapter.
|
3. Providers: kleine Schnittstelle, lokaler Ollama- und optionaler Gemini-Adapter.
|
||||||
4. Memory: implementierte SQLite-Sitzungen; ein semantischer Index ist nur geplant.
|
4. Memory: SQLite-Sitzungen und separates inhaltsfreies Provider-Audit.
|
||||||
5. Obsidian: zunächst lesender Adapter, später eng begrenzte Entwürfe.
|
5. Obsidian: zunächst lesender Adapter, später eng begrenzte Entwürfe.
|
||||||
6. Tools und Status: feste Schemas, Allowlists, Timeouts und bereinigte Ausgaben.
|
6. Tools und Status: feste Schemas, Allowlists, Timeouts und bereinigte Ausgaben.
|
||||||
7. Security: Freigaben, Secret-Provider und Berechtigungsprüfung.
|
7. Security: lokaler Datenschutzrouter, Freigaben und Betriebssystem-Keyring.
|
||||||
8. Audit: nachvollziehbare Aktionen ohne geheime Inhalte.
|
8. Audit: Provider-Metadaten ohne Prompts, Antworten oder geheime Inhalte.
|
||||||
|
|
||||||
## Plattformgrenzen
|
## Plattformgrenzen
|
||||||
|
|
||||||
@@ -24,10 +24,13 @@ Javis beginnt als modularer Monolith. Module besitzen klare Zuständigkeiten und
|
|||||||
|
|
||||||
## Implementierter Chatfluss
|
## Implementierter Chatfluss
|
||||||
|
|
||||||
`interface.cli` nimmt Text an, `core.chat_service` verbindet Sitzungsverlauf und
|
`interface.cli` nimmt Text an und verbindet den `core.provider_router`.
|
||||||
Provider, `providers.ollama` spricht nur die lokale Ollama-HTTP-API an und
|
Dieser klassifiziert die aktuelle Anfrage vollständig lokal, minimiert den
|
||||||
`memory.sqlite_store` speichert erfolgreiche Benutzer-/Assistentenpaare atomar.
|
freigegebenen Kontext und wählt Gemini oder Ollama. `core.chat_service` speichert
|
||||||
Scheitert das Modell, wird keine erfundene Antwort gespeichert.
|
erst eine erfolgreiche Antwort zusammen mit der Benutzernachricht atomar.
|
||||||
|
|
||||||
Es existiert kein Cloudadapter, Toolaufruf, Obsidian-Zugriff oder eigener
|
Gemini ist nur bei lokaler Aktivierung, vorhandenem Key, `free_only = true`,
|
||||||
öffentlicher Netzwerkdienst. Der Ollama-Endpunkt muss eine Loopback-Adresse sein.
|
bestätigtem Nicht-Billing und passender Datenschutzentscheidung erreichbar.
|
||||||
|
Ollama bleibt Loopback-, Datenschutz-, Offline-, Quota- und Fehlerfallback.
|
||||||
|
Es existiert weiterhin kein Toolaufruf, Obsidian-Zugriff oder eigener öffentlicher
|
||||||
|
Netzwerkdienst.
|
||||||
|
|||||||
+21
-11
@@ -58,11 +58,12 @@ Rootserver:
|
|||||||
- Modelle liegen außerhalb von Git unter `D:\Javis-Data\ollama-models`.
|
- Modelle liegen außerhalb von Git unter `D:\Javis-Data\ollama-models`.
|
||||||
- Der lokale Ollama-Dienst bindet nur an `127.0.0.1:11434`; PATH, Registry,
|
- Der lokale Ollama-Dienst bindet nur an `127.0.0.1:11434`; PATH, Registry,
|
||||||
Autostart und Windows-Dienste blieben unverändert.
|
Autostart und Windows-Dienste blieben unverändert.
|
||||||
- CLI-Befehle: `/new`, `/sessions`, `/load <ID>`, `/clear`, `/help`, `/exit`.
|
- CLI-Befehle: `/new`, `/sessions`, `/load <ID>`, `/clear`, `/provider`,
|
||||||
|
`/privacy`, `/status`, `/help`, `/exit`.
|
||||||
- Sitzungsdaten liegen über `JAVIS_DATA_DIR` außerhalb von Git; der bestätigte
|
- Sitzungsdaten liegen über `JAVIS_DATA_DIR` außerhalb von Git; der bestätigte
|
||||||
Smoke-Test nutzte `D:\Javis-Data\runtime\core-chat-smoke`.
|
Smoke-Test nutzte `D:\Javis-Data\runtime\core-chat-smoke`.
|
||||||
- Kein Obsidian-, Laptop- oder Rootserverzugriff wurde implementiert.
|
- Kein Obsidian-, Laptop- oder Rootserverzugriff wurde implementiert.
|
||||||
- Keine Tool-, Sprach-, Mobil-, Status- oder Living-Mind-Funktion ist implementiert.
|
- Keine Tool-, Sprach-, Mobil- oder Living-Mind-Funktion ist implementiert.
|
||||||
- Offizielle Gemini-Prüfung abgeschlossen: `gemini-3.6-flash` und
|
- Offizielle Gemini-Prüfung abgeschlossen: `gemini-3.6-flash` und
|
||||||
`gemini-3.5-flash-lite` sind stabile GA-Modelle mit Free-Tier-Textnutzung;
|
`gemini-3.5-flash-lite` sind stabile GA-Modelle mit Free-Tier-Textnutzung;
|
||||||
Standard dieses Pakets wird ausschließlich `gemini-3.6-flash`.
|
Standard dieses Pakets wird ausschließlich `gemini-3.6-flash`.
|
||||||
@@ -107,8 +108,8 @@ Rootserver:
|
|||||||
- Ollama-Provider akzeptiert nur lokale HTTP-Loopback-Adressen
|
- Ollama-Provider akzeptiert nur lokale HTTP-Loopback-Adressen
|
||||||
- SQLite-Sitzungsspeicher mit atomaren Benutzer-/Assistentenpaaren
|
- SQLite-Sitzungsspeicher mit atomaren Benutzer-/Assistentenpaaren
|
||||||
- Laufzeitdaten außerhalb von Git über `JAVIS_DATA_DIR` oder sicheren Plattformstandard
|
- Laufzeitdaten außerhalb von Git über `JAVIS_DATA_DIR` oder sicheren Plattformstandard
|
||||||
- aktuell ausschließlich lokales Modell; als separates Folgepaket ist Gemini als
|
- Hybridprovider bevorzugt Gemini für cloudgeeignete Inhalte und verwendet
|
||||||
bevorzugter kostenloser Provider für ausdrücklich cloudgeeignete Inhalte geplant
|
Ollama bei Datenschutz, Ablehnung, Offline-, Quota- und Providerfehlern
|
||||||
- strikter Nullkostenmodus ohne Billing-Aktivierung oder kostenpflichtigen Fallback;
|
- strikter Nullkostenmodus ohne Billing-Aktivierung oder kostenpflichtigen Fallback;
|
||||||
lokales Modell bleibt Offline-, Datenschutz-, Ausfall- und Quota-Fallback
|
lokales Modell bleibt Offline-, Datenschutz-, Ausfall- und Quota-Fallback
|
||||||
- Secret-Werte außerhalb von Code, Git, Prompts und Logs
|
- Secret-Werte außerhalb von Code, Git, Prompts und Logs
|
||||||
@@ -202,6 +203,9 @@ Abnahmestatus:
|
|||||||
- manuell durch Pascal getestet: am 30.07.2026 erfolgreich; CLI-Start, echte
|
- manuell durch Pascal getestet: am 30.07.2026 erfolgreich; CLI-Start, echte
|
||||||
deutsche Antworten, Sitzungskontext, `/sessions`, `/exit`, Neustart,
|
deutsche Antworten, Sitzungskontext, `/sessions`, `/exit`, Neustart,
|
||||||
`/load <UUID>`, vollständiger Verlauf und Fortsetzung
|
`/load <UUID>`, vollständiger Verlauf und Fortsetzung
|
||||||
|
- Gemini/Datenschutz/Fallback automatisiert durch Codex getestet: ja, nur mit
|
||||||
|
Test-Doubles und lokalem nachrichtenfreiem CLI-Smoke
|
||||||
|
- Gemini/Datenschutz/Fallback manuell durch Pascal getestet: noch nicht
|
||||||
- von Pascal für produktive Verwendung freigegeben: noch nicht ausdrücklich erklärt
|
- von Pascal für produktive Verwendung freigegeben: noch nicht ausdrücklich erklärt
|
||||||
|
|
||||||
## Git-Stand
|
## Git-Stand
|
||||||
@@ -219,6 +223,13 @@ Abnahmestatus:
|
|||||||
- lokaler Merge nach `main`: `f3d6dfb`
|
- lokaler Merge nach `main`: `f3d6dfb`
|
||||||
- geprüfter und gepushter Abschlussstand vor diesem Handoff-Update: `0a550e6`
|
- geprüfter und gepushter Abschlussstand vor diesem Handoff-Update: `0a550e6`
|
||||||
- Secret-Provider: `570e7fa`
|
- Secret-Provider: `570e7fa`
|
||||||
|
- Datenschutz/Nullkosten: `286d96d`
|
||||||
|
- isolierter Gemini-Provider: `f3e1183`
|
||||||
|
- Hybridrouter: `e57186f`
|
||||||
|
- lokale Konfiguration: `ab6ea48`
|
||||||
|
- CLI-Verdrahtung: `af9426e`
|
||||||
|
- Startskript: `141ff2e`
|
||||||
|
- Resttests: `a0af15a`
|
||||||
- `origin` verwendet HTTPS
|
- `origin` verwendet HTTPS
|
||||||
- kein Force-Push und keine umgeschriebene Historie
|
- kein Force-Push und keine umgeschriebene Historie
|
||||||
|
|
||||||
@@ -231,11 +242,13 @@ Abnahmestatus:
|
|||||||
- aktuell: isolierte Python-Toolchain und reproduzierbare Entwicklungsumgebung
|
- aktuell: isolierte Python-Toolchain und reproduzierbare Entwicklungsumgebung
|
||||||
- aktuell: portable Ollama-Laufzeit und `qwen3:8b` außerhalb von Git verifiziert
|
- aktuell: portable Ollama-Laufzeit und `qwen3:8b` außerhalb von Git verifiziert
|
||||||
- aktuell: lokaler CLI-Chat und persistente SQLite-Sitzungen vollständig abgenommen
|
- aktuell: lokaler CLI-Chat und persistente SQLite-Sitzungen vollständig abgenommen
|
||||||
|
- aktuell: Gemini-Free-Hybridrouting, Datenschutz und Nullkostenmodus
|
||||||
|
automatisiert vollständig geprüft; manueller Live-Test steht aus
|
||||||
|
|
||||||
## Offene Entscheidungen und Fehler
|
## Offene Entscheidungen und Fehler
|
||||||
|
|
||||||
- endgültiger Produkt-/Repositoryname bleibt offen
|
- endgültiger Produkt-/Repositoryname bleibt offen
|
||||||
- Startmechanismus für Ollama ist noch bewusst manuell und nur pro Prozess konfiguriert
|
- Startskript startet Ollama bei Bedarf pro Prozess; kein Autostart oder Dienst
|
||||||
- Antworten werden noch nicht gestreamt; Sitzungen besitzen noch keine Titel oder Suche
|
- Antworten werden noch nicht gestreamt; Sitzungen besitzen noch keine Titel oder Suche
|
||||||
- genauer späterer Obsidian-Schreibbereich ist nicht freigegeben
|
- genauer späterer Obsidian-Schreibbereich ist nicht freigegeben
|
||||||
- normaler Secret-Provider ist festgelegt: Betriebssystem-Keyring; eine
|
- normaler Secret-Provider ist festgelegt: Betriebssystem-Keyring; eine
|
||||||
@@ -260,12 +273,9 @@ Abnahmestatus:
|
|||||||
|
|
||||||
## Nächster sinnvoller Auftrag
|
## Nächster sinnvoller Auftrag
|
||||||
|
|
||||||
Auf dem bestehenden Feature-Branch als nächstes einzelnes Arbeitspaket:
|
Pascal führt anhand `docs/NEXT_SESSION.md` den echten Gemini-, Ask- und
|
||||||
|
Never-Test mit ausschließlich künstlichen beziehungsweise unpersönlichen Daten
|
||||||
1. veraltete Architektur-, Sicherheits-, Changelog- und Nächste-Sitzung-Texte
|
durch. Bis zu seiner Bestätigung nicht nach `main` mergen.
|
||||||
auf den tatsächlich implementierten Stand bringen
|
|
||||||
2. Feature-Branch pushen und vor Pascals manuellem Live-Test stoppen
|
|
||||||
3. nicht nach `main` mergen
|
|
||||||
|
|
||||||
Keinen API-Key in Chat, Git, Obsidian, Logs oder Dokumentation übernehmen.
|
Keinen API-Key in Chat, Git, Obsidian, Logs oder Dokumentation übernehmen.
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -10,7 +10,8 @@
|
|||||||
| ADR-0006 | Ollama und qwen3:8b für den ersten Windows-Chat verwenden | angenommen |
|
| ADR-0006 | Ollama und qwen3:8b für den ersten Windows-Chat verwenden | angenommen |
|
||||||
| ADR-0007 | Gemini kostenlos bevorzugen, sensible Inhalte lokal halten und niemals Billing aktivieren | angenommen |
|
| ADR-0007 | Gemini kostenlos bevorzugen, sensible Inhalte lokal halten und niemals Billing aktivieren | angenommen |
|
||||||
|
|
||||||
Offen bleiben insbesondere das endgültige Runtime-Secret-System, der genaue
|
Der normale Runtime-Secret-Speicher ist mit dem Betriebssystem-Keyring festgelegt;
|
||||||
|
keine XML-Secret-Datei. Offen bleiben insbesondere der genaue
|
||||||
Obsidian-Schreibbereich, das spätere Laptop-Modell und der Produktname.
|
Obsidian-Schreibbereich, das spätere Laptop-Modell und der Produktname.
|
||||||
|
|
||||||
Ausführliche Begründungen stehen unter [`docs/adr`](adr/README.md).
|
Ausführliche Begründungen stehen unter [`docs/adr`](adr/README.md).
|
||||||
|
|||||||
+35
-20
@@ -2,29 +2,44 @@
|
|||||||
|
|
||||||
## Ziel
|
## Ziel
|
||||||
|
|
||||||
Nächstes separates Featurepaket: kostenlose Gemini-Anbindung mit strikt lokalem
|
Pascal nimmt den Gemini-Free-Provider und die lokalen Fallbacks manuell ab.
|
||||||
Datenschutzrouting und Ollama als Ausfall-, Quota-, Offline- und Sensitivitätsfallback.
|
Bis dahin bleibt `feat/gemini-privacy-router` ungemergt.
|
||||||
|
|
||||||
## Vor Änderungen erneut prüfen
|
## Vorbereitung durch Pascal
|
||||||
|
|
||||||
1. `git status --short --branch`
|
1. In Google AI Studio einen neuen, nur für Javis verwendeten Gemini-Auth-Key
|
||||||
2. `git log -1 --oneline`
|
erstellen.
|
||||||
3. `docs/PROJECT_STATUS.md`
|
2. Für das zugehörige Google-Projekt kein Billing verbinden beziehungsweise den
|
||||||
4. offene Entscheidungen in `docs/DECISIONS.md`
|
externen Billingstatus selbst prüfen.
|
||||||
|
3. Den Key niemals in Chat, Codex, Git, Obsidian oder einen sichtbaren
|
||||||
|
Kommandozeilenparameter kopieren.
|
||||||
|
4. Im Repository ausführen:
|
||||||
|
|
||||||
## Vorgeschlagener Umfang
|
```powershell
|
||||||
|
& 'D:\Javis-Tools\uv\uv.exe' run javis configure gemini
|
||||||
|
& 'D:\Javis-Tools\uv\uv.exe' run javis secrets set gemini
|
||||||
|
powershell -ExecutionPolicy Bypass -File .\scripts\start-javis.ps1
|
||||||
|
```
|
||||||
|
|
||||||
- aktuelle kostenlose Gemini-Modelle, Kennungen und Kontingente ausschließlich in
|
Die erste Einrichtung verlangt zwei lokale Bestätigungen. Der zweite Befehl liest
|
||||||
offizieller Google-Dokumentation prüfen; Kandidaten nicht ungeprüft übernehmen
|
den Key verdeckt ein und speichert ihn im Windows Credential Manager.
|
||||||
- Providerrouter mit `free_only = true` und ohne Billing-Konfiguration entwerfen
|
|
||||||
- lokale Datenschutzentscheidung `allowed`, `ask` oder `never` vor jedem Cloudaufruf
|
|
||||||
- Gemini-Key nur über lokalen Secret-Provider; Wert niemals an Modell, Git,
|
|
||||||
Obsidian, Logs, Dokumentation oder Chat geben
|
|
||||||
- Gemini-Erfolg, fehlenden/ungültigen Key, 429, Netzwerkausfall, lokalen Fallback,
|
|
||||||
`never`, `ask` und ausbleibende Billing-Aktivierung testen
|
|
||||||
|
|
||||||
## Nicht beginnen
|
## Manueller Test
|
||||||
|
|
||||||
Keinen echten Schlüssel anfordern oder dokumentieren, kein Billingkonto verbinden,
|
1. `/status`: Key und Konfiguration `ja`, Nullkostenmodus `aktiv`.
|
||||||
keine kostenpflichtigen Fallbacks, keinen vollständigen Vault übertragen und
|
2. Unpersönlich: `Erkläre in zwei Sätzen, was eine SQLite-Transaktion ist.`
|
||||||
weiterhin kein Obsidian-Schreiben, SSH-/Serverzugriff, Sprache oder Living Mind.
|
3. `/privacy`: `allowed`, Provider `gemini`, kein Fallback.
|
||||||
|
4. Ask ohne private Details: `Ich habe eine private Alltagssituation. Nenne nur
|
||||||
|
allgemeine Möglichkeiten.` Bei der Freigabe Enter drücken; Antwort muss lokal
|
||||||
|
über Ollama kommen.
|
||||||
|
5. Never mit Kunstbeispiel: `Nur lokal: Der Beispiel-API-Key ist absichtlich
|
||||||
|
erfunden.` Es darf keine Cloudfreigabe angeboten werden; Antwort bleibt lokal.
|
||||||
|
6. `/status`: bereinigte Zähler prüfen, danach `/exit`.
|
||||||
|
|
||||||
|
Erst wenn Pascal diese Punkte bestätigt, darf über den Merge nach `main`
|
||||||
|
entschieden werden. Google-Quoten sind projektabhängig und in AI Studio zu prüfen.
|
||||||
|
|
||||||
|
## Weiterhin nicht beginnen
|
||||||
|
|
||||||
|
Kein Obsidian-Zugriff, SSH-/Serverzugriff, Sprache, Mobile Client, Tools oder
|
||||||
|
Living Mind. Keine echten persönlichen Daten für Cloudtests verwenden.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Projektstatus
|
# Projektstatus
|
||||||
|
|
||||||
Stand: lokaler Textchat auf `main`, 30.07.2026.
|
Stand: Gemini-Free-Feature automatisiert geprüft, 30.07.2026.
|
||||||
|
|
||||||
## Erreicht
|
## Erreicht
|
||||||
|
|
||||||
@@ -30,8 +30,10 @@ Stand: lokaler Textchat auf `main`, 30.07.2026.
|
|||||||
|
|
||||||
## Abnahmestatus
|
## Abnahmestatus
|
||||||
|
|
||||||
- automatisiert durch Codex getestet: ja
|
- Core-Chat automatisiert durch Codex getestet: ja
|
||||||
- manuell durch Pascal getestet: ja, am 30.07.2026
|
- Core-Chat manuell durch Pascal getestet: ja, am 30.07.2026
|
||||||
|
- Gemini/Datenschutz/Fallback automatisiert durch Codex getestet: ja
|
||||||
|
- Gemini/Datenschutz/Fallback manuell durch Pascal getestet: noch nicht
|
||||||
- von Pascal für produktive Verwendung freigegeben: noch nicht ausdrücklich erklärt
|
- von Pascal für produktive Verwendung freigegeben: noch nicht ausdrücklich erklärt
|
||||||
|
|
||||||
## Aktuelles Featurepaket
|
## Aktuelles Featurepaket
|
||||||
@@ -66,7 +68,7 @@ Stand: lokaler Textchat auf `main`, 30.07.2026.
|
|||||||
## Nicht implementiert
|
## Nicht implementiert
|
||||||
|
|
||||||
Obsidian-Adapter, Tools, Serverzugriff, Sprache, Mobile Client,
|
Obsidian-Adapter, Tools, Serverzugriff, Sprache, Mobile Client,
|
||||||
Living-Mind-Frontend und automatische Ollama-Prozessverwaltung.
|
Living-Mind-Frontend.
|
||||||
|
|
||||||
## Git
|
## Git
|
||||||
|
|
||||||
@@ -86,5 +88,6 @@ Living-Mind-Frontend und automatische Ollama-Prozessverwaltung.
|
|||||||
Ollama wird bewusst manuell in einem eigenen Terminal gestartet. Antworten werden
|
Ollama wird bewusst manuell in einem eigenen Terminal gestartet. Antworten werden
|
||||||
noch nicht gestreamt; Sitzungen haben noch keine Titel, Suche oder Löschfunktion.
|
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.
|
`qwen3:8b` ist nicht automatisch für die GTX 1050 des späteren Zielhosts geeignet.
|
||||||
Nur Abschlussdokumentation und Feature-Branch-Push fehlen. Es wurde kein echter
|
Der echte Gemini-/Fallback-Test durch Pascal und danach die Mergeentscheidung
|
||||||
API-Key angefordert, angezeigt oder konfiguriert und keine Cloudanfrage ausgeführt.
|
fehlen. Es wurde kein echter API-Key angefordert, angezeigt oder konfiguriert und
|
||||||
|
keine Cloudanfrage ausgeführt.
|
||||||
|
|||||||
+14
-1
@@ -14,10 +14,23 @@
|
|||||||
|
|
||||||
Secrets dürfen nie in Code, Git, Prompts, Chatverläufe oder Logs gelangen. Das Modell erfährt nur den Namen, die Verfügbarkeit und ein bereinigtes Aktionsergebnis.
|
Secrets dürfen nie in Code, Git, Prompts, Chatverläufe oder Logs gelangen. Das Modell erfährt nur den Namen, die Verfügbarkeit und ein bereinigtes Aktionsergebnis.
|
||||||
|
|
||||||
Bevorzugt wird eine Secret-Provider-Abstraktion. Eine optionale lokale XML-Datei wie `key-pw.xml` oder `secrets.local.xml` ist nur als restriktiv geschützte, Git-ignorierte Klartextdatei zulässig. Ins Repository darf höchstens eine leere Beispielstruktur.
|
Die Secret-Provider-Abstraktion verwendet im normalen Betrieb das
|
||||||
|
Betriebssystem-Keyring, unter Windows den Credential Manager. Der Gemini-Key wird
|
||||||
|
verdeckt eingegeben, nie ausgegeben und erst unmittelbar vor einem zulässigen
|
||||||
|
Cloudaufruf gelesen. Für API-Keys wird keine XML-Secret-Datei verwendet.
|
||||||
|
|
||||||
Eine vorhandene SSH-Schlüsseldatei aus früherer LS25-/Gitea-Arbeit bleibt lokal. Pfad, privater Inhalt und Gerätekennung werden nicht dokumentiert.
|
Eine vorhandene SSH-Schlüsseldatei aus früherer LS25-/Gitea-Arbeit bleibt lokal. Pfad, privater Inhalt und Gerätekennung werden nicht dokumentiert.
|
||||||
|
|
||||||
|
## Cloud und Nullkostenmodus
|
||||||
|
|
||||||
|
- Datenschutzklassifizierung `allowed`, `ask` oder `never` erfolgt lokal.
|
||||||
|
- `ask` ist ohne ausdrückliches Ja abgelehnt; `never` ist nicht übersteuerbar.
|
||||||
|
- Prompts werden auf den minimal freigegebenen Kontext begrenzt.
|
||||||
|
- Gemini bleibt ohne Aktivierung, Key und lokale Nicht-Billing-Bestätigung aus.
|
||||||
|
- Javis aktiviert kein Billing und nutzt keine kostenpflichtigen Zusatzfunktionen.
|
||||||
|
- Die externe Billingfreiheit kann Javis nicht technisch garantieren; Pascal muss
|
||||||
|
sie in Google AI Studio beziehungsweise dem Google-Projekt selbst prüfen.
|
||||||
|
|
||||||
## Obsidian
|
## Obsidian
|
||||||
|
|
||||||
- gesamter Vault zunächst nur lesend
|
- gesamter Vault zunächst nur lesend
|
||||||
|
|||||||
Reference in New Issue
Block a user