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
|
||||
|
||||
## 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 —
|
||||
> und HandBrake meldete es als Erfolg.** Dazu vierzehn weitere Funde aus
|
||||
|
||||
Reference in New Issue
Block a user