Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
c539e65cd2
commit
0464933ada
+83
-1
@@ -1,6 +1,88 @@
|
|||||||
# SAVEPOINT — Rippy
|
# SAVEPOINT — Rippy
|
||||||
|
|
||||||
## Aktueller Stand: v4.0-rc11 — der Schalter, den es nicht gibt (30.08.2026)
|
## Aktueller Stand: Rippy v5 — Etappe W-0, das Gerüst steht (30.08.2026)
|
||||||
|
|
||||||
|
> **Rippy v5 hat sein Fundament.** Auf dem Branch `worktree-windows-electron`
|
||||||
|
> steht jetzt neben dem Konzept das erste lauffähige Programm: Electron 44,
|
||||||
|
> durchgehend TypeScript, drei Prozesse, eine Datenbank, die Prozess-Leine.
|
||||||
|
> Kein Python, kein Docker-Code, kein HTTP-Server — genau wie
|
||||||
|
> `KONZEPT-WINDOWS.md` es festlegt. 18/18 Tests grün, Smoke-Beweis grün.
|
||||||
|
|
||||||
|
### Was gebaut wurde (`rippy-windows/`)
|
||||||
|
|
||||||
|
* **Drei Prozesse, wie im Konzept § 4.1:** Das Haupt (`src/haupt/`) verwaltet
|
||||||
|
Fenster und Kern; der Kern (`src/kern/`, ein Electron-utilityProcess) macht
|
||||||
|
die Arbeit; das Fenster (`src/fenster/`, React) zeigt nur an. Fenster und
|
||||||
|
Kern reden über einen **direkten MessagePort** — kein localhost, kein Port,
|
||||||
|
kein Polling.
|
||||||
|
* **Die Datenbank läuft** — `node:sqlite`, wie in `beweise/` gemessen, und
|
||||||
|
sie hat genau **einen** Zugriffsort (`kern/speicher/db.ts`, § 6.7). Der
|
||||||
|
Kern schreibt beim Start eine Einstellung und liest sie zurück; „geöffnet"
|
||||||
|
allein gilt nicht als Beweis.
|
||||||
|
* **Die Prozess-Leine ist scharf:** Das Haupt legt die Windows-Arbeitsgruppe
|
||||||
|
aus `beweise/leine.js` an und hängt sich selbst hinein — alles, was Rippy
|
||||||
|
je startet, stirbt mit ihm. Eine bewusste, im Code begründete Abweichung
|
||||||
|
von der Ordnerliste § 4.2: Die Leine liegt in `haupt/leine.ts`, nicht im
|
||||||
|
Kern — das Job-Handle muss bei dem Prozess liegen, dessen Tod alles
|
||||||
|
mitreißen soll (§ 4.1: „ALLES stirbt mit ihm").
|
||||||
|
* **Wächter-Tests nach § 4.3** — mechanisch, wie versprochen: koffi nur an
|
||||||
|
den zwei benannten Orten (R1) · kein leerer catch, kein catch, das leere
|
||||||
|
Listen erfindet (R2/R4) · kein HTTP-Server (§ 4.1) · `node:sqlite` nur in
|
||||||
|
`db.ts` (§ 6.7). Dazu Tests für Datenbank und Nachrichten-Schema.
|
||||||
|
* **Sicherheitsrahmen:** contextIsolation, Sandbox, kein Node im Fenster,
|
||||||
|
strikte CSP im gebauten HTML, Einzelinstanz-Sperre, Kern-Neustart-Wache
|
||||||
|
(stirbt der Kern, startet ihn das Haupt neu — höchstens dreimal je Minute,
|
||||||
|
danach steht der Fehler sichtbar im Fenster).
|
||||||
|
|
||||||
|
### Der Beweis
|
||||||
|
|
||||||
|
`npm run smoke` startet das ECHTE Programm und prüft alle fünf Punkte
|
||||||
|
maschinell — Ausgabe vom 30.08.2026 auf dem Commander-PC:
|
||||||
|
|
||||||
|
```
|
||||||
|
SMOKE: OK — fenster=geladen kern=pid:13676,node:24.18.1 datenbank=ok leine=gesetzt pong=ok version=5.0.0-w0
|
||||||
|
```
|
||||||
|
|
||||||
|
Dazu nachgemessen, nicht geglaubt: `taskkill /F` auf den Haupt-Prozess
|
||||||
|
(ohne `/T` — der Absturz-Fall, der in rc10 verwaiste makemkvcon
|
||||||
|
hinterließ) → **der Kern ist danach tot.** Der Wirkungs-Test mit einem
|
||||||
|
echten Werkzeug-Kind folgt in W-2, wenn es erstmals eines gibt.
|
||||||
|
|
||||||
|
Das W-0-Fertigkriterium aus § 12 — „Ein Fenster geht auf, der Kern läuft,
|
||||||
|
ein Testlauf ist grün" — ist damit erfüllt.
|
||||||
|
|
||||||
|
### Die Ampel prüft v5 mit
|
||||||
|
|
||||||
|
`ci.yml` läuft jetzt fest auf **Node 24** (vorher: Zufalls-Node des
|
||||||
|
Runners; `docker/ui` unter Node 24 vorher lokal nachgemessen). Die Ampel
|
||||||
|
baut und testet `rippy-windows/` auf Linux mit — nur der Smoke bleibt ein
|
||||||
|
Windows-Beweis und steht deshalb hier mit Ausgabe.
|
||||||
|
|
||||||
|
### Stolperdrähte, dokumentiert in `rippy-windows/BAUEN.md`
|
||||||
|
|
||||||
|
npm 11 blockt Electrons Install-Skript — nach `npm install` fehlt die
|
||||||
|
`electron.exe`, `node node_modules/electron/install.js` holt sie nach
|
||||||
|
(§ 3.5, beim Bau erneut bestätigt) · `@vitejs/plugin-react` 6 verlangt
|
||||||
|
Vite 8, deshalb die 5er-Linie · TypeScript fest auf 5.9.3 gepinnt (die
|
||||||
|
neue Go-Fassung 7.x ist eine bewusste Entscheidung für später).
|
||||||
|
|
||||||
|
### Was W-0 absichtlich NICHT kann
|
||||||
|
|
||||||
|
Kein Tray, kein Autostart, kein Update, keine Laufwerks-Erkennung — das
|
||||||
|
sind W-1 bis W-6. Bis das Tray kommt (W-5), gilt: Fenster zu = Rippy zu.
|
||||||
|
|
||||||
|
### Nächste Schritte
|
||||||
|
|
||||||
|
1. **W-1 — Laufwerk:** `kern/laufwerk/win32.ts` aus dem § 3.2-Beweis,
|
||||||
|
Wache im 3-Sekunden-Takt, Disc-Typ, Auswerfen mit Nachsehen.
|
||||||
|
2. **Parallel, eigener Branch von `main`:** das Aufräumen nach § 11
|
||||||
|
(A → C, Remote-Worker bleibt) — noch nicht begonnen.
|
||||||
|
3. **Termin im Blick (§ 9.1):** MakeMKVs Beta-Key läuft **Ende September
|
||||||
|
2026** ab.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## v4.0-rc11 — der Schalter, den es nicht gibt (30.08.2026)
|
||||||
|
|
||||||
> **Ein falscher Kommandozeilen-Schalter kostete einen fertigen 16,5-GB-Rip —
|
> **Ein falscher Kommandozeilen-Schalter kostete einen fertigen 16,5-GB-Rip —
|
||||||
> und HandBrake meldete es als Erfolg.** Dazu vierzehn weitere Funde aus
|
> und HandBrake meldete es als Erfolg.** Dazu vierzehn weitere Funde aus
|
||||||
|
|||||||
Reference in New Issue
Block a user