docs: SAVEPOINT v4.0-rc — Windows ist ein echtes Programm
Ampel / ampel (push) Failing after 55s

Der SAVEPOINT stand seit V2-3 still, waehrend elf Commits dazukamen.
Nachgetragen mit den gemessenen Zahlen: 562 gruen, RippySetup.exe 31,7 MB,
WebView2 151.0.4129.107, 5 Encoder auf diesem PC.

Zwei Dinge stehen bewusst gross drin, weil sie sonst verloren gehen:

* Der Dienst, der /api/health mit 200 beantwortete und / mit 404 -- und
  warum ein %TEMP%-Verzeichnis kein Ort fuer eine Oberflaeche ist.
* Der Test, der den PC des Commanders getroffen hat. Ein Test, der Spuren
  ausserhalb von tmp_path hinterlaesst, ist kein Test, sondern ein Eingriff.

Und was NICHT bewiesen ist, steht als solches da: Ein echter Rip unter
Windows ist nie gelaufen, die VM haengt elf Commits zurueck.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-08-28 12:15:29 +02:00
co-authored by Claude Opus 5
parent c01ef1081c
commit e1577a4f47
+108 -1
View File
@@ -1,6 +1,113 @@
# SAVEPOINT — Rippy
## Aktueller Stand: v4.0-beta — V2-0 bis V2-3 stehen, Polling ist weg (28.08.2026)
## Aktueller Stand: v4.0-rc — Windows ist ein echtes Programm (28.08.2026)
> **Rippy läuft auf Windows ohne Docker, in einem eigenen Fenster, findet und
> aktualisiert seine Werkzeuge selbst — und meldet sich bei Windows an wie
> jedes andere Programm.**
### ZUSTAND, gemessen
| | |
|---|---|
| Repo | `c01ef10` auf `main` |
| Tests | **562 grün** + 18 übersprungen (Sitzungsbeginn: 378) |
| `RippySetup.exe` | **31,7 MB**, liegt auf dem Desktop |
| Fenster | WebView2 **151.0.4129.107**, 1280×860, Oberfläche im Bild belegt |
| Werkzeuge auf diesem PC | 5 Encoder gefunden, darunter **AMD VCE** |
| VM (Arcane) | **noch auf `05ab655`** — alles ab `b723fee` ist NICHT deployt |
| Echter Rip auf Windows | **ungeprüft** — das Laufwerk hängt an der VM |
### Was jetzt geht
Doppelklick RippySetup.exe -> installiert nach %LOCALAPPDATA%\Rippy
Desktop-Symbol + Startmenue-Eintrag
Eintrag in "Programme und Features"
Autostart (HKCU\...\Run)
Doppelklick Desktop-Symbol -> eigenes Fenster, keine Adresszeile,
kein Browser, kein Konsolenblitzer
Taskmanager -> "Rippy.exe" mit Beschreibung
Programme und Features -> Rippy 2.0.0, Deinstallieren raeumt auf
### Die Entscheidung dieser Sitzung: WebView2, nicht Electron
Der Commander fragte: *„Warum nutzen wir für Windows weiterhin einen Browser?
Warum nutzen wir kein Electron oder sowas und machen daraus einen echten
Client."*
Erste Hälfte: berechtigt, umgesetzt. Zweite Hälfte: abgelehnt, **gemessen**:
| | Zusatz | Was mitkommt |
|---|---|---|
| pywebview + WebView2 | **2,7 MB** in der EXE | nur die Anbindung |
| Electron | ~150210 MB | zweites Chromium **und** zweite Laufzeit neben Python |
Windows 11 liefert die Laufzeit mit. Nachgemessen, was sie rendert:
`Chrome/151.0.0.0 … Edg/151.0.0.0`, fetch ✓, EventSource ✓, CSS Grid ✓.
Dasselbe Chromium wie in Electron — nur ohne es zweimal mitzuschleppen.
Vollständige Begründung: `src/rippy/fenster.py`, `KONZEPT-V2.md` § 10
Entscheid 4.
### DER FUND: ein Dienst, der gesund meldete und keine Oberfläche mehr hatte
Beim Nachsehen im laufenden Betrieb — nicht in einem Test:
/api/health HTTP 200
/ HTTP 404 im Fenster: {"detail":"Not Found"}
Der Server war in Ordnung. Sein Entpack-Verzeichnis war es nicht:
_MEI000074b02 31 Eintraege, 5 Ordner <- der laufende Dienst, kein ui
_MEI000082e82 44 Eintraege, 16 Ordner <- vollstaendig
Eine PyInstaller-Onefile-EXE liest bei **jeder** Anfrage aus `%TEMP%\_MEIxxxxx`.
Ein Temp-Verzeichnis ist kein Ort für etwas, das eine Woche liegen bleiben
soll — und der Ausfall ist der schlimmstmögliche: Die API antwortet weiter,
der Dienst gilt als gesund, nur die Oberfläche ist weg.
**Genau davor warnte `ROADMAP.md` beim Bau-Verfahren** („one-dir statt
one-file"). Die Abweichung bleibt, die Lücke ist geschlossen: Der Installer
legt die Oberfläche neben das Programm, `daemon._ui_pfad()` nimmt diese Kopie
zuerst. Zwei Tests halten es fest. Zeigt sich derselbe Ausfall an den
API-Modulen, ist one-dir die richtige Antwort.
### Der Vorfall, der den PC des Commanders getroffen hat
Ein Test rief `installieren()` auf. Seit dem Verknüpfungs-Feature legt das
Verknüpfungen auf dem **echten** Desktop an — die kennen kein `tmp_path`. Der
Test überschrieb damit das funktionierende Desktop-Symbol durch eines, das auf
eine 2-KB-Attrappe in `…\Temp\pytest-of-…` zeigte. Windows meldete beim Klick:
*„Diese App kann auf dem PC nicht ausgeführt werden."*
Aufgeräumt hatte der Test nur Registry und Autostart. **Ein Test, der Spuren
außerhalb von `tmp_path` hinterlässt, ist kein Test, sondern ein Eingriff.**
Jetzt zwei Sicherungen statt einer: `verknuepfen=False` **und** die
Anlege-Funktion ist ersetzt. Dazu ein eigener Wächter-Test.
### Gebaut in dieser Sitzung (11 Commits)
- **V2-4 Windows-Treiber** (`b723fee`, `3d7f3b1`, `9d95c95`) — Win32 per
ctypes, an einer echten Disc bewiesen
- **Daemon unter Windows** (`e5254c2`) — `rippyd` ohne Docker
- **RippySetup.exe** (`059183c`) — ein Programm, drei Betriebsarten
- **Werkzeug-Kette** (`288f9ee`, `f4a8d77`) — finden, holen, aktuell halten;
Rippy ist **standalone**, wie der Commander es verlangt hat
- **Verknüpfungen + `--oeffnen`** (`99c0586`)
- **Test-Vorfall behoben** (`069fc46`)
- **Echtes Fenster + UI-Kopie** (`c01ef10`)
### WAS ALS NÄCHSTES ANSTEHT
- [ ] **Laufwerk an den PC** — ein echter Rip unter Windows ist noch nie
gelaufen. Alles davor ist bewiesen, das nicht.
- [ ] **Deploy auf Arcane** — die VM steht auf `05ab655`, elf Commits zurück.
- [ ] **V2-5 Docker neu**: ein Image, drei Profile, Host-Mounts.
- [ ] **V2-6 Headless** — zurückgestellt, aber nicht gestrichen
(ausdrücklich: *„soll aber nicht vernachlässigt werden"*).
- [ ] **V2-7**: neue Funktionen inkl. Schlüsselkette in drei Stufen.
- [ ] Offen aus V2-4: `WM_DEVICECHANGE` statt Poll, `SetThreadExecutionState`.
## Letzter Stand davor: v4.0-beta — V2-0 bis V2-3 stehen, Polling ist weg (28.08.2026)
> **Vier Etappen gebaut, alle gruen, alles deployt.** Und ein Vorfall, den es
> ohne den Deploy nie gegeben haette — der aber eine echte Altlast aufgedeckt hat.