test: verify and document desktop ui
This commit is contained in:
+13
-13
@@ -115,6 +115,8 @@ Rootserver:
|
||||
Abbruch, Modus und bereinigte Statusanzeige sind im Desktopclient verdrahtet.
|
||||
- `ask` unterstützt `Einmal erlauben`, `Lokal beantworten` und `Abbrechen`;
|
||||
`never` erreicht weiterhin keinen Cloudfreigabedialog.
|
||||
- Startwege `uv run javis gui` und `scripts/start-javis-gui.ps1` funktionieren;
|
||||
der GUI-Starter verwendet die sichere Loopback-/Prozesslogik des CLI-Starters.
|
||||
|
||||
## Aktuelle Architektur
|
||||
|
||||
@@ -195,8 +197,12 @@ 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: 97 bestanden; zusätzlich GUI-Streamingereignisse, atomarer Abbruch
|
||||
und alle drei Ergebnisse des Datenschutzdialogs abgedeckt
|
||||
- Tests: 101 bestanden; zusätzlich Qt-Offscreen-Fenster, Dialogzuordnung und
|
||||
sichere Wiederverwendung des Startskripts abgedeckt
|
||||
- `uv run javis gui` im Offscreen-Modus: erfolgreich, Exitcode 0
|
||||
- echter lokaler GUI-Smoke: erfolgreich; 1 Sitzung, 2 Nachrichten, Provider Ollama
|
||||
- GUI-Startskript mit prozesslokalem ExecutionPolicy-Bypass: erfolgreich
|
||||
- manuelle Desktop-Abnahme durch Pascal: noch offen
|
||||
- PowerShell-Syntax des Startskripts: erfolgreich geparst
|
||||
- Ruff Lint: bestanden
|
||||
- Ruff Formatprüfung: bestanden
|
||||
@@ -243,21 +249,14 @@ Abnahmestatus:
|
||||
|
||||
- aktueller Arbeitsbranch: `feat/desktop-ui`
|
||||
- stabiler Ausgangsstand: `main` bei `d3e85f2`
|
||||
- stabiler Ausgangsstand: `main` bei `77b510b`
|
||||
- medizinischer Datenschutz-Fix: `9148193`
|
||||
- Provider- und CLI-Streaming: `00a5a6c`
|
||||
- SQLite-Titel und Migration: `112ae6d`
|
||||
- GUI-Grundgerüst und Kernadapter: `1658e04`
|
||||
- Sitzungen, Streaming, Abbruch und Datenschutz: `cf35148`
|
||||
- Sitzungsnavigation: `43c1f76`
|
||||
- Dokumentation: `328dcd9`
|
||||
- Chatkomfort-Merge nach `main`: `cbba102`
|
||||
- 91 Unit-Tests, Ruff und Strukturprüfung auf dem gemergten `main` bestanden
|
||||
- Feature-Branch erfolgreich zu `origin/feat/chat-comfort` gepusht
|
||||
- `main` erfolgreich bis `3361eae` zu `origin/main` gepusht und synchron verifiziert
|
||||
- CLI-Verdrahtung: `af9426e`
|
||||
- Startskript: `141ff2e`
|
||||
- Resttests: `a0af15a`
|
||||
- Routing-/Reporting-Korrektur: `7a14fe8`
|
||||
- Gemini-/Datenschutz-Merge nach `main`: `564a3fd`
|
||||
- `origin` verwendet HTTPS
|
||||
- kein Force-Push und keine umgeschriebene Historie
|
||||
|
||||
@@ -289,8 +288,9 @@ Abnahmestatus:
|
||||
|
||||
## Nächster sinnvoller Auftrag
|
||||
|
||||
Auf `feat/desktop-ui` als Nächstes Offscreen-GUI-Tests, sicheres Startskript,
|
||||
Desktopanleitung und anschließend echten lokalen GUI-Smoke ergänzen.
|
||||
Auf `feat/desktop-ui` als Nächstes vollständige Abschlussprüfungen ausführen,
|
||||
Dokumentation committen und Feature-Branch pushen. Danach für Pascals manuelle
|
||||
Desktop-Abnahme stoppen; noch nicht nach `main` mergen.
|
||||
Medizinische Antwortqualität bleibt ein späteres Sicherheits-/Systemprompt-Thema.
|
||||
Noch keine Obsidian-Integration oder Tools beginnen.
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
| ADR-0005 | Laufenden Handoff kompakt halten und Vollstände nur zu Meilensteinen archivieren | 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 |
|
||||
| UI-0001 | Desktop-MVP verwendet PySide6 und denselben Javis-Kern wie die CLI | angenommen |
|
||||
|
||||
Der normale Runtime-Secret-Speicher ist mit dem Betriebssystem-Keyring festgelegt;
|
||||
keine XML-Secret-Datei. Offen bleiben insbesondere der genaue
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
# Javis Desktop
|
||||
|
||||
## Installation und Start
|
||||
|
||||
Die Desktopoberfläche verwendet PySide6 und denselben Python-Kern wie der CLI-Chat.
|
||||
|
||||
```powershell
|
||||
& 'D:\Javis-Tools\uv\uv.exe' sync --dev
|
||||
& 'D:\Javis-Tools\uv\uv.exe' run javis gui
|
||||
```
|
||||
|
||||
Der empfohlene Windows-Start prüft zusätzlich Repository, lokale Werkzeuge und
|
||||
Ollama und setzt ausschließlich Prozessvariablen:
|
||||
|
||||
```powershell
|
||||
.\scripts\start-javis-gui.ps1
|
||||
```
|
||||
|
||||
Falls Windows den direkten Skriptaufruf per Richtlinie blockiert, funktioniert
|
||||
ohne systemweite Änderung der prozesslokale Start:
|
||||
|
||||
```powershell
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\start-javis-gui.ps1
|
||||
```
|
||||
|
||||
Der bisherige Start über `.\scripts\start-javis.ps1` beziehungsweise
|
||||
`uv run javis chat` bleibt unverändert verfügbar.
|
||||
|
||||
## Bedienung
|
||||
|
||||
- `Enter`: Nachricht senden
|
||||
- `Shift+Enter`: neue Zeile
|
||||
- `Ctrl+N`: neue Sitzung
|
||||
- `Ctrl+K`: Sitzungssuche fokussieren
|
||||
- `Esc`: laufende Antwort abbrechen
|
||||
- Doppelklick: Sitzung laden
|
||||
- Kontextmenü einer Sitzung: umbenennen
|
||||
|
||||
Die linke Spalte verwaltet Sitzungen. In der Mitte erscheinen Verlauf,
|
||||
Markdownantwort und Eingabe. Rechts stehen nur bereinigte technische Metadaten:
|
||||
Zustand, Modus, Provider, Ollama-Erreichbarkeit, Modell, Datenschutzentscheidung,
|
||||
Cloudzähler, Fallback und Datenverzeichnis.
|
||||
|
||||
## Provider und Datenschutz
|
||||
|
||||
`Hybrid/Auto` verwendet weiterhin den vorhandenen lokalen Datenschutzrouter.
|
||||
`Lokal` verhindert Cloudnutzung. Bei `ask` stehen drei Entscheidungen bereit:
|
||||
|
||||
- `Einmal erlauben`: minimierten notwendigen Kontext einmalig an Gemini senden
|
||||
- `Lokal beantworten`: ohne Cloud mit Ollama antworten
|
||||
- `Abbrechen`: Anfrage ohne Speicherung beenden
|
||||
|
||||
`never` wird ausschließlich lokal verarbeitet und zeigt keinen Freigabedialog.
|
||||
Der Gemini-Key bleibt im Betriebssystem-Keyring und wird in der Oberfläche weder
|
||||
ausgegeben noch dokumentiert.
|
||||
|
||||
## Streaming und Abbruch
|
||||
|
||||
Die Modellgenerierung läuft in einem Qt-Worker. Es kann nur eine Antwort
|
||||
gleichzeitig laufen. `Stoppen`, `Esc` oder kontrolliertes Schließen fordern den
|
||||
Abbruch an. Ein unvollständiges Benutzer-/Assistentenpaar wird nicht gespeichert.
|
||||
|
||||
## Bekannte Grenzen
|
||||
|
||||
- keine Sprache, kein Mikrofon und kein Wakeword
|
||||
- keine Betriebssystem-, App-, Obsidian-, Server- oder Laptopsteuerung
|
||||
- keine autonomen Aktionen und keine neuen Cloudanbieter
|
||||
- Schließen kann kurz warten, bis der lokale Netzwerkstream kontrolliert reagiert
|
||||
- medizinische Antwortqualität ist ein späteres Sicherheits-/Systemprompt-Thema
|
||||
|
||||
## Manueller Abnahmetest für Pascal
|
||||
|
||||
1. `.\scripts\start-javis-gui.ps1`
|
||||
2. Prüfen, dass sich das Fenster öffnet.
|
||||
3. Eine lokale Frage stellen.
|
||||
4. Die gestreamte Antwort prüfen.
|
||||
5. Eine neue Sitzung anlegen.
|
||||
6. Die alte Sitzung laden.
|
||||
7. Eine Antwort mit `Esc` oder `Stoppen` abbrechen.
|
||||
8. Den Modus `Lokal` testen.
|
||||
9. Eine öffentliche Technikfrage im Hybridmodus testen.
|
||||
10. Eine `ask`-Anfrage lokal beantworten lassen.
|
||||
11. Anwendung schließen und neu starten.
|
||||
12. Die gespeicherte Sitzung erneut laden.
|
||||
|
||||
Abnahmestatus: automatisierte Tests und echter lokaler GUI-Smoke durch Codex
|
||||
bestanden; manuelle Abnahme durch Pascal steht noch aus.
|
||||
@@ -10,14 +10,14 @@ Chatkomfort umfasst sicheres Ollama-/Gemini-Streaming, Strg+C ohne Teilpersisten
|
||||
medizinisches `never`, automatische und manuelle Sitzungstitel, nummerierte
|
||||
Listen, Laden per Nummer/ID-Präfix und begrenzte Suche in Titeln/Benutzertexten.
|
||||
|
||||
91 Unit-Tests, Ruff, Struktur-, Secret-, Gitignore- und Auditprüfungen sowie
|
||||
echte Ollama- und Gemini-Streaming-Smokes sind erfolgreich.
|
||||
Das Desktop-MVP auf `feat/desktop-ui` verwendet denselben Kern wie die CLI.
|
||||
101 Tests, Qt-Offscreen-Start und echter lokaler Ollama-GUI-Smoke sind erfolgreich.
|
||||
Die manuelle Abnahme durch Pascal steht noch aus.
|
||||
|
||||
## Nächster sinnvoller Schritt
|
||||
|
||||
Der Chatkomfort-Branch ist nach `main` gemergt und dort erneut geprüft. Den
|
||||
finalen Stand aus `docs/CHATGPT_HANDOFF.md` übernehmen und mit Pascal ein
|
||||
einzelnes nächstes Paket festlegen; noch keine Folgephase automatisch beginnen.
|
||||
Nur den Desktop-MVP nach `docs/DESKTOP_UI.md` manuell abnehmen. Erst danach mit
|
||||
Pascal ein einzelnes nächstes Paket festlegen; keine Folgephase automatisch beginnen.
|
||||
|
||||
## Weiterhin nicht beginnen
|
||||
|
||||
|
||||
+18
-3
@@ -1,6 +1,6 @@
|
||||
# Projektstatus
|
||||
|
||||
Stand: Chatkomfort-Feature vollständig automatisiert geprüft, 30.07.2026.
|
||||
Stand: Desktop-MVP automatisiert und mit lokalem Modell geprüft, 30.07.2026.
|
||||
|
||||
## Erreicht
|
||||
|
||||
@@ -28,7 +28,7 @@ Stand: Chatkomfort-Feature vollständig automatisiert geprüft, 30.07.2026.
|
||||
Inhalte werden nicht wörtlich in automatische Titel übernommen
|
||||
- echte CLI-Modellantwort sowie Laden und Fortsetzen derselben Sitzung in einem
|
||||
neuen Prozess bestätigt
|
||||
- 91 Unit-Tests, Ruff, Struktur-, Gitignore-, Secret- und Auditprüfung erfolgreich
|
||||
- 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
|
||||
@@ -96,9 +96,24 @@ Stand: Chatkomfort-Feature vollständig automatisiert geprüft, 30.07.2026.
|
||||
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: `main`
|
||||
- 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`
|
||||
|
||||
Reference in New Issue
Block a user