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:
co-authored by
Claude Opus 5
parent
7a4f92036d
commit
45402e887e
@@ -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.0–5.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
|
||||
|
||||
Reference in New Issue
Block a user