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:
co-authored by
Claude Opus 5
parent
c01ef1081c
commit
e1577a4f47
+108
-1
@@ -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 | ~150–210 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.
|
||||
|
||||
Reference in New Issue
Block a user