docs: SAVEPOINT — 5.1.4 im Kanal, Leine-Fix gemessen
Ampel / ampel (push) Successful in 1m31s

Die Update-Kette hat ab 5.1.2 nie installiert; bewiesen war immer nur der
Kanal, nie der letzte Meter. Ursache, Fix und die dreifache Messung
festgehalten — inklusive des ersten, falsch negativen Messlaufs.

Notiert: Der Sprung AUF 5.1.4 ist einmalig Handarbeit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-09-01 18:30:43 +02:00
co-authored by Claude Opus 5
parent 7a4f92036d
commit 45402e887e
+81
View File
@@ -1,5 +1,86 @@
# SAVEPOINT — Rippy
## Die eigene Leine erschlug den Update-Installer — Version 5.1.4 (01.09.2026, nachts)
> Commander: *„Das Update auf Version 5.1.3 geht nicht. Rippy wird zwar
> sauber beendet aber startet NICHT neu in der neuen version."*
>
> **Die Update-Kette hat ab 5.1.2 nie funktioniert.** Bewiesen war immer
> nur der KANAL (Download, Prüfsummen, Changelog) — der letzte Meter, das
> INSTALLIEREN, war nie gemessen. Genau die Sorte Annahme, vor der
> AGENTS.md warnt.
### Die Ursache, auf drei Beinen belegt
1. **Bibliothek:** `electron-updater` startet den Installer per
`spawn(…, { detached: true })` (`BaseUpdater.js`, an der installierten
Fassung nachgelesen). `detached` setzt unter Windows **kein**
Breakaway.
2. **Leine:** `leine.ts` setzt `KILL_ON_JOB_CLOSE`, und Kinder erben die
Mitgliedschaft. Der Installer war damit Mitglied der Arbeitsgruppe.
3. **Platte:** `pending\RippySetup-5.1.3.exe` lag geladen da (18:11:47),
installiert war weiter 5.1.2.
Der Installer starb also in genau der Sekunde, in der Rippy sich
beendete, um ihm Platz zu machen.
### Der Fix — die Leine bleibt, der Installer klinkt sich aus
* `leine.ts` setzt zusätzlich `JOB_OBJECT_LIMIT_BREAKAWAY_OK`. Das ändert
für sich genommen NICHTS (siehe Messung, Fall 2).
* Neu `ausserhalbDerLeineStarten()``CreateProcessW` mit
`CREATE_BREAKAWAY_FROM_JOB | CREATE_NO_WINDOW`. Liegt in `leine.ts`,
weil dort die Arbeitsgruppe verwaltet wird und Wächter R1 koffi nur
dort und in `kern/laufwerk/win32.ts` erlaubt.
* `update.ts` installiert jetzt SELBST: `autoInstallOnAppQuit` ist AUS,
der Pfad kommt aus `downloadUpdate()` (AppUpdater.d.ts: „Paths to
downloaded files"), die Argumente sind die gemessenen
(`--updated /S --force-run`). Gestartet bei `will-quit` und per Knopf.
* Neu `kommandozeile.ts` (pur, ohne koffi/Electron): `CreateProcessW`
nimmt EINE Zeichenkette — ohne die Regeln von `CommandLineToArgvW`
zerfiele ein Pfad wie `C:\Users\Tobi Neu\…` in zwei Argumente.
* **Warum nicht `shell.openPath` wie bei MakeMKV (§ 9)?** Der entkommt der
Leine nur, WEIL er Adminrechte verlangt und über den AppInfo-Dienst
startet. Rippys Installer ist bewusst benutzerlokal
(`isAdminRightsRequired: false`) — er liefe wieder als Kind.
### Die Messung: `beweise/leine-breakaway.js`
```
1) Leine wie bisher, Kind normal -> stirbt WIE ERWARTET
2) Leine erlaubt Ausklinken, Kind normal -> stirbt WIE ERWARTET
3) Leine erlaubt Ausklinken, Kind klinkt sich aus -> lebt WIE ERWARTET
```
**Fall 2 ist der wichtige:** Das bloße Erlauben weicht § 3.3 NICHT auf —
Kern, makemkvcon und HandBrakeCLI bleiben angeleint, die rc10-Waisen-
Falle ist unverändert zu.
**Der erste Messlauf zeigte ein falsches Negativ** („Ausklinken wirkt
nicht"). Grund: Der Enkel teilte sich die KONSOLE des Elternprozesses und
starb mit ihr, nicht mit der Arbeitsgruppe. Erst `CREATE_NO_WINDOW` misst,
was gemessen werden soll. **Lehre: Auch der Versuchsaufbau kann die
falsche Sache messen** — der Flag steht deshalb auch im echten Aufruf.
### Setup 5.1.4 und Release
* `dist-setup-514/RippySetup-5.1.4.exe`, **131 528 605 Bytes**, SHA-256
`2933CA098421A3C5C5807E32BB718B18C4A7FB9F1AB6D70C9B1D164A15F21B84`
* Paket-Smoke GRÜN: `leine=gesetzt … version=5.1.4` — die Leine steht
auch mit dem neuen Recht.
* Im Release `aktuell`, anonym von außen gegengeprüft: Content-Length =
`latest.yml` = lokale Datei; `releaseNotes` durchgereicht.
* 237 Tests, Ampel GRÜN (`051cab3`).
### ⚠ Der Sprung AUF 5.1.4 ist einmalig Handarbeit
Eine installierte 5.1.05.1.3 kann sich nicht selbst aktualisieren — der
Fehler steckt in IHR. `RippySetup-5.1.4.exe` einmal von Hand ausführen.
**Ab 5.1.4 läuft die Kette von allein**; das ist dann der erste echte
Selbst-Update-Beweis und steht noch aus (z. B. mit einer kleinen 5.1.5).
---
## Eigenes Fenster + Layout, das mitwächst — Version 5.1.3 (01.09.2026, abends)
### Zuerst: „hier zieht garnichts hoch" — doch, es zog