diff --git a/CHANGELOG.md b/CHANGELOG.md index 50c757a..cabd9af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,10 @@ Alle wesentlichen Projektänderungen werden hier in verständlicher Form dokumen - Strikter Nullkostenmodus, lokale Schutzlimits und inhaltsfreies Provider-Audit. - Bereinigte CLI-Befehle `/provider`, `/privacy` und `/status`. - Sicheres PowerShell-Startskript ohne Systemänderungen. +- Gemeinsames Streaming für Ollama und Gemini mit atomarer Speicherung, + Gedankenfilter, lesbarer Terminalausgabe und sicherem Strg+C-Abbruch. +- Automatische lokale Sitzungstitel, `/rename`, nummerierte `/sessions`, + `/load ` und begrenzte `/search`-Suche. ### Changed @@ -42,6 +46,8 @@ Alle wesentlichen Projektänderungen werden hier in verständlicher Form dokumen - Allgemeine unpersönliche Technikfragen werden präziser als `allowed` klassifiziert; persönliche, interne und geheime Inhalte behalten Vorrang. - Privacy-Ausgabe unterscheidet lokalen Modus von technischem Fallback. +- SQLite-Sitzungen werden verlustfrei und idempotent um Titel und zuletzt + verwendeten Provider migriert. ### Security @@ -51,5 +57,7 @@ Alle wesentlichen Projektänderungen werden hier in verständlicher Form dokumen Nicht-Billing deaktiviert; Javis aktiviert niemals Billing. - Cloudkontext wird lokal klassifiziert und minimiert; 429, Netzwerk-, Timeout-, Key- und Modellfehler fallen auf Ollama zurück. +- Gesundheits-, Symptom-, Verletzungs-, Medikamenten-, Diagnose-, Behandlungs- + und medizinische Notfallfragen werden vor Cloudclient-Erstellung strikt lokal behandelt. - Gemini-/Datenschutzablauf wurde am 30.07.2026 zusätzlich von Pascal manuell erfolgreich abgenommen; kein Keywert erschien in der Ausgabe. diff --git a/docs/CHATGPT_HANDOFF.md b/docs/CHATGPT_HANDOFF.md index 8881639..3b549c2 100644 --- a/docs/CHATGPT_HANDOFF.md +++ b/docs/CHATGPT_HANDOFF.md @@ -189,12 +189,15 @@ 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: 91 bestanden; zusätzlich Navigation, eindeutige/mehrdeutige +- Unit-Tests: 91 bestanden; Navigation, Streaming, Migration, Datenschutz, ID-Präfixe, begrenzte Suche und SQL-Sonderzeichen abgedeckt - PowerShell-Syntax des Startskripts: erfolgreich geparst - Ruff Lint: bestanden - Ruff Formatprüfung: bestanden - lokaler CLI-Smoke ohne Secretzugriff: bestanden +- echter Ollama-CLI-Streaming-Smoke mit Neustart/Laden: bestanden +- echter Gemini-Streaming-Smoke mit öffentlichem Inhalt: bestanden; ein Abschnitt, + 20 sichtbare Zeichen, 14 Eingabe- und 4 Ausgabetoken; kein Keywert ausgegeben - Obsidian-Vault unverändert: 1 Markdown-, 11 Gesamtdateien, letzter Schreibzeitpunkt weiterhin 30.07.2026 15:42:31 - Rootserver und Ubuntu-Laptop wurden nicht kontaktiert @@ -237,18 +240,12 @@ Abnahmestatus: - medizinischer Datenschutz-Fix: `9148193` - Provider- und CLI-Streaming: `00a5a6c` - SQLite-Titel und Migration: `112ae6d` +- Sitzungsnavigation: `43c1f76` - Feature-Branch ist als `7a14fe8` zu `origin/feat/gemini-privacy-router` gepusht - konfliktfreier Merge nach `main`: `564a3fd` - 66 Unit-Tests, Ruff und Strukturprüfung auf dem gemergten `main` bestanden - `main` erfolgreich zu `origin/main` gepusht; Remote-Tracking ist synchron -- Python-Entwicklungsumgebung auf dem Feature-Branch: `fa90a5c` -- Laufzeit-/Modelldokumentation: `10d7cd7` -- Chatkern und CLI: `ec9b2f9` -- Unit-Tests: `b153daa` -- Feature-Dokumentation: `5d567e5` -- lokaler Merge nach `main`: `f3d6dfb` -- geprüfter und gepushter Abschlussstand vor diesem Handoff-Update: `0a550e6` - Secret-Provider: `570e7fa` - Datenschutz/Nullkosten: `286d96d` - isolierter Gemini-Provider: `f3e1183` @@ -266,7 +263,7 @@ Abnahmestatus: - endgültiger Produkt-/Repositoryname bleibt offen - Startskript startet Ollama bei Bedarf pro Prozess; kein Autostart oder Dienst -- Antworten werden gestreamt; Sitzungen besitzen noch keine Titel oder Suche +- Antworten werden gestreamt; Titel, Navigation und Suche sind implementiert - genauer späterer Obsidian-Schreibbereich ist nicht freigegeben - normaler Secret-Provider ist festgelegt: Betriebssystem-Keyring; eine Klartext-XML wird nicht für API-Schlüssel verwendet @@ -290,8 +287,8 @@ Abnahmestatus: ## Nächster sinnvoller Auftrag -Auf `feat/chat-comfort` als Nächstes Gesamtsicherheitsprüfungen sowie lokale -Ollama-/Neustart-Smokes und kleinen echten Gemini-Streaming-Test ausführen. +Auf `feat/chat-comfort` als Nächstes Dokumentation committen, Branch pushen, +nach `main` mergen, dort erneut testen und `main` pushen. Medizinische Antwortqualität bleibt ein späteres Sicherheits-/Systemprompt-Thema. Noch keine Obsidian-Integration oder Tools beginnen. diff --git a/docs/NEXT_SESSION.md b/docs/NEXT_SESSION.md index 9f913f1..9e047db 100644 --- a/docs/NEXT_SESSION.md +++ b/docs/NEXT_SESSION.md @@ -2,22 +2,22 @@ ## Ausgangsstand -Der Core-Chat und der Gemini-/Datenschutz-Meilenstein sind automatisiert durch -Codex und am 30.07.2026 manuell durch Pascal abgenommen. Der Featurestand ist zum -Merge freigegeben. +Der Core-Chat, Gemini-/Datenschutz-Meilenstein und das Chatkomfort-Paket sind +automatisiert geprüft. Pascal hat Core-Chat sowie Gemini/Datenschutz am +30.07.2026 manuell abgenommen. -Bestätigt sind echter Gemini-Erfolg, verdeckte Key-Speicherung, Nullkostenmodus, -bereinigter Status, Cloudzähler, `ask`- und `never`-Routing, erzwungener lokaler -Modus sowie das Startskript. +Chatkomfort umfasst sicheres Ollama-/Gemini-Streaming, Strg+C ohne Teilpersistenz, +medizinisches `never`, automatische und manuelle Sitzungstitel, nummerierte +Listen, Laden per Nummer/ID-Präfix und begrenzte Suche in Titeln/Benutzertexten. -## Nächstes sinnvolles Paket +91 Unit-Tests, Ruff, Struktur-, Secret-, Gitignore- und Auditprüfungen sowie +echte Ollama- und Gemini-Streaming-Smokes sind erfolgreich. -Nur ein kleines Chatkomfort-/Robustheitsthema auswählen, zum Beispiel: +## Nächster sinnvoller Schritt -- automatische, lokal erzeugte Sitzungstitel und Sitzungssuche oder -- Streaming lokaler und Cloudantworten mit sauberem Abbruchverhalten - -Vorher wie immer Branch, Arbeitsbaum, aktuellen Handoff und Tests prüfen. +Zuerst nur den Git-Abschluss des Chatkomfort-Branches prüfen beziehungsweise +den finalen Stand aus `docs/CHATGPT_HANDOFF.md` übernehmen. Danach mit Pascal +ein einzelnes nächstes Paket festlegen; noch keine Folgephase automatisch beginnen. ## Weiterhin nicht beginnen diff --git a/docs/PROJECT_STATUS.md b/docs/PROJECT_STATUS.md index 1efcc97..de9d52c 100644 --- a/docs/PROJECT_STATUS.md +++ b/docs/PROJECT_STATUS.md @@ -1,6 +1,6 @@ # Projektstatus -Stand: Gemini-Free-Feature automatisiert geprüft, 30.07.2026. +Stand: Chatkomfort-Feature vollständig automatisiert geprüft, 30.07.2026. ## Erreicht @@ -20,10 +20,15 @@ Stand: Gemini-Free-Feature automatisiert geprüft, 30.07.2026. - zwei echte deutsche Modellantworten erfolgreich vollständig auf der RTX 3060 erzeugt - kalter Test 36,19 s, warmer Kurztest 0,56 s; geladene GPU-Belegung 6.842 MiB - lokaler Ollama-Provider, zentrale Konfiguration und SQLite-Sitzungsspeicher implementiert -- CLI mit `/new`, `/sessions`, `/load`, `/clear`, `/help` und `/exit` implementiert +- CLI streamt Antworten und unterstützt `/new`, nummerierte `/sessions`, + `/load `, `/search`, `/rename`, `/clear`, `/help` und `/exit` +- bestehende SQLite-Datenbanken werden automatisch, transaktional und + wiederholbar um Sitzungstitel und zuletzt verwendeten Provider migriert +- lokale Titelbildung ohne Modellaufruf; offensichtliche Secrets und medizinische + Inhalte werden nicht wörtlich in automatische Titel übernommen - echte CLI-Modellantwort sowie Laden und Fortsetzen derselben Sitzung in einem neuen Prozess bestätigt -- 13 Unit-Tests, Ruff und Strukturprüfung erfolgreich +- 91 Unit-Tests, Ruff, Struktur-, Gitignore-, Secret- und Auditprüfung erfolgreich - lokaler Core-Chat am 30.07.2026 zusätzlich von Pascal manuell erfolgreich geprüft: deutsche Antworten, Sitzungskontext, `/sessions`, `/exit`, Neustart, `/load `, vollständiger Verlauf und Fortsetzung @@ -38,6 +43,22 @@ Stand: Gemini-Free-Feature automatisiert geprüft, 30.07.2026. - für produktive Nutzung freigegeben: nicht separat erklärt; keine spätere Tool-, Obsidian- oder Autonomiefunktion +## Chatkomfort-Meilenstein + +- Branch `feat/chat-comfort` +- Ollama und Gemini verwenden denselben optionalen Streamingvertrag; Provider + ohne Streaming bleiben kompatibel +- keine versteckten Gedanken; Terminal-Markdown wird lesbar bereinigt +- vollständige Antwort wird genau einmal gespeichert; Strg+C und Streamfehler + hinterlassen keine unvollständige Nachricht +- medizinische Fragen werden vor jeder Cloudclient-Erstellung zwingend `never` +- Sitzungsliste zeigt Nummer, kurze ID, Titel, Datum, Nachrichtenanzahl und Provider +- Laden per letzter Listennummer oder eindeutigem ID-Präfix; Mehrdeutigkeit wird erklärt +- Suche ist auf 20 Ergebnisse begrenzt, parametrisiert und durchsucht nur Titel + sowie Benutzernachrichten +- echter Ollama-CLI-Streaming-/Neustart-Smoke und echter kleiner + Gemini-Streaming-Smoke mit öffentlichem Inhalt erfolgreich + ## Gemini-/Datenschutz-Meilenstein - Branch `feat/gemini-privacy-router` @@ -67,7 +88,7 @@ Stand: Gemini-Free-Feature automatisiert geprüft, 30.07.2026. - `/privacy` trennt lokalen Modus von einem technischen Provider-Fallback - sicheres `scripts/start-javis.ps1` mit relativer Repositoryprüfung, Loopback-Ollama und überschreibbaren externen Pfaden -- 66 Unit-Tests aktuell erfolgreich; PowerShell-Syntax, Lockfile, Sync, +- 91 Unit-Tests aktuell erfolgreich; PowerShell-Syntax, Lockfile, Sync, Strukturprüfung, Secret-Scan, Gitignore, Ruff-Format und Lint sauber ## Nicht implementiert @@ -77,24 +98,18 @@ Living-Mind-Frontend. ## Git -- aktueller Branch: `main` -- Feature-Commit: `7a14fe8` -- Merge-Commit: `564a3fd` -- Tests auf dem gemergten `main`: 66 bestanden -- `main` erfolgreich zu `origin/main` gepusht -- Grundgerüstcommit: `6d04171` -- Basis des Feature-Branches: `e6eb995` -- Toolchain: `fa90a5c` -- Laufzeit/Modell: `10d7cd7` -- Chatkern: `ec9b2f9` -- Tests: `b153daa` -- Dokumentation: `5d567e5` -- Merge nach `main`: `f3d6dfb` +- aktueller Branch: `feat/chat-comfort` +- Basis: `main` bei `77b510b` +- medizinisches Routing: `9148193` +- Streaming: `00a5a6c` +- Titelmigration: `112ae6d` +- Sitzungsnavigation: `43c1f76` +- vorheriger Gemini-/Datenschutz-Merge auf `main`: `564a3fd` ## Bekannte Einschränkung -Das Startskript startet Ollama bei Bedarf lokal. Antworten werden noch nicht -gestreamt; Sitzungen haben noch keine Titel, Suche oder Löschfunktion. +Das Startskript startet Ollama bei Bedarf lokal. Eine Löschfunktion ist nicht +Bestandteil dieses Pakets. `qwen3:8b` ist nicht automatisch für die GTX 1050 des späteren Zielhosts geeignet. Der Gemini-Key liegt ausschließlich im Betriebssystem-Keyring; sein Wert wurde von Codex weder gelesen noch ausgegeben. Pascal hat den echten Cloud- und