136 lines
7.1 KiB
Markdown
136 lines
7.1 KiB
Markdown
# Projektstatus
|
|
|
|
Stand: Desktop-MVP automatisiert und mit lokalem Modell geprüft, 30.07.2026.
|
|
|
|
## Erreicht
|
|
|
|
- Projekt- und Vault-Pfade lesend bestätigt
|
|
- Sicherheits- und Architekturgrenzen dokumentiert
|
|
- plattformunabhängige Paketstruktur vorbereitet
|
|
- Obsidian-Linkregel als verbindliche Entscheidung dokumentiert
|
|
- Living-Mind-Bereich als inaktiver Vertrag vorbereitet
|
|
- projektinterne Codex-Agentensyntax anhand der aktuellen offiziellen Codex-Dokumentation geprüft
|
|
- phasenbezogene Werkzeug- und Plugin-Empfehlungen sowie tokenbewusste Arbeitsregeln dokumentiert
|
|
- vollständigen Erst-Handoff archiviert und kompakte laufende Übergabe eingeführt
|
|
- uv 0.11.32 und CPython 3.12.13 isoliert unter `D:\Javis-Tools` installiert
|
|
- lokale `.venv`, reproduzierbares `uv.lock` und Ruff 0.16.0 eingerichtet
|
|
- offizielle VS-Code-Erweiterungen Python, Pylance und Python Environments installiert
|
|
- Ollama 0.32.5 portabel und ohne Systemänderungen unter `D:\Javis-Tools` installiert
|
|
- `qwen3:8b` (Q4_K_M, 5,2 GB, Apache-2.0) unter `D:\Javis-Data` geladen
|
|
- 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 streamt Antworten und unterstützt `/new`, nummerierte `/sessions`,
|
|
`/load <NR|ID>`, `/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
|
|
- 101 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 <UUID>`, vollständiger Verlauf und Fortsetzung
|
|
|
|
## Abnahmestatus
|
|
|
|
- Core-Chat automatisiert durch Codex getestet: ja
|
|
- 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: ja, am 30.07.2026
|
|
- für Merge freigegeben: ja, nach den zwei kleinen Korrekturen
|
|
- 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`
|
|
- 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`
|
|
- 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
|
|
- isolierter Gemini-Provider mit offiziellem `google-genai` 2.16.0, API `v1`,
|
|
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
|
|
- 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
|
|
- lokale nicht geheime TOML-Konfiguration außerhalb von Git; konservativer
|
|
Erzeuger überschreibt keine vorhandene Datei
|
|
- `javis configure gemini` mit doppelter ausdrücklicher Bestätigung
|
|
- echter Chat auf Hybridprovider verdrahtet; Key wird verzögert geladen
|
|
- `/provider`, `/privacy` und `/status` geben keine Inhalte oder Keywerte aus
|
|
- allgemeine unpersönliche Technikbegriffe werden gezielter `allowed`, während
|
|
persönliche, interne oder geheime technische Inhalte `ask`/`never` bleiben
|
|
- `/privacy` trennt lokalen Modus von einem technischen Provider-Fallback
|
|
- sicheres `scripts/start-javis.ps1` mit relativer Repositoryprüfung,
|
|
Loopback-Ollama und überschreibbaren externen Pfaden
|
|
- 91 Unit-Tests aktuell erfolgreich; PowerShell-Syntax, Lockfile, Sync,
|
|
Strukturprüfung, Secret-Scan, Gitignore, Ruff-Format und Lint sauber
|
|
|
|
## Nicht implementiert
|
|
|
|
Obsidian-Adapter, Tools, Serverzugriff, Sprache, Mobile Client,
|
|
Living-Mind-Frontend.
|
|
|
|
## Desktop-MVP
|
|
|
|
- PySide6-Client verwendet Runtime, Chatservice, Hybridprovider, Datenschutz,
|
|
SQLite, Audit und Secret-Provider des bestehenden Kerns
|
|
- Sitzungen, Suche, Umbenennen, Markdown, Streaming, Abbruch, Modus,
|
|
Dreifach-Freigabedialog und bereinigter Status implementiert
|
|
- `uv run javis gui` und `scripts/start-javis-gui.ps1` vorhanden
|
|
- Qt-Offscreen-Start und echter lokaler Ollama-GUI-Smoke bestanden
|
|
- automatisiert durch Codex getestet: ja
|
|
- echter lokaler GUI-Smoke durch Codex: ja; 1 Sitzung, 2 Nachrichten, Ollama
|
|
- manuell durch Pascal abgenommen: noch nicht
|
|
|
|
## Git
|
|
|
|
- aktueller Branch: `feat/desktop-ui`
|
|
- Desktop-Basis: `main` bei `d3e85f2`
|
|
- GUI-Grundgerüst: `1658e04`
|
|
- Sitzungen/Streaming/Datenschutz: `cf35148`
|
|
- Basis: `main` bei `77b510b`
|
|
- medizinisches Routing: `9148193`
|
|
- Streaming: `00a5a6c`
|
|
- Titelmigration: `112ae6d`
|
|
- Sitzungsnavigation: `43c1f76`
|
|
- Dokumentation: `328dcd9`
|
|
- Feature-Branch zu `origin/feat/chat-comfort` gepusht
|
|
- Merge nach `main`: `cbba102`; 91 Tests und Ruff auf `main` erneut bestanden
|
|
- `main` bis `3361eae` zu `origin/main` gepusht und synchron verifiziert
|
|
- vorheriger Gemini-/Datenschutz-Merge auf `main`: `564a3fd`
|
|
|
|
## Bekannte Einschränkung
|
|
|
|
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
|
|
Fallbackablauf erfolgreich geprüft.
|