Files
rippy/rippy-windows/BAUEN.md
T
HitonabiandClaude Fable 5 c539e65cd2 feat(v5): Etappe W-0 — das Geruest steht
Electron 44 + TypeScript, drei Prozesse (haupt / kern als utilityProcess /
fenster mit React), Nachrichten-Schema mit Pruef-Funktionen, node:sqlite
als einzige Datenbank-Stelle (kern/speicher/db.ts, § 6.7), Prozess-Leine
im Haupt (Job Object aus beweise/leine.js — Begruendung fuer den Ort im
Dateikopf), MessagePort direkt Fenster<->Kern, Einzelinstanz-Sperre,
Kern-Neustart-Wache, strikte CSP im gebauten Fenster.

Wächter-Tests nach § 4.3: koffi nur an zwei benannten Orten (R1), kein
leerer catch und kein catch-mit-Leerwert (R2/R4), kein HTTP-Server
(§ 4.1), node:sqlite nur in db.ts (§ 6.7). Dazu Datenbank- und
Schema-Tests: 18/18 gruen, Typpruefung in drei Kontexten.

Der W-0-Beweis (npm run smoke, echtes Programm):
SMOKE: OK — fenster=geladen kern=pid:13676,node:24.18.1 datenbank=ok
leine=gesetzt pong=ok version=5.0.0-w0

Nachgemessen ausserdem: taskkill /F auf den Haupt-Prozess (ohne /T,
der Absturz-Fall aus rc10) — der Kern stirbt mit.

Bau-Fallen dokumentiert (BAUEN.md): npm 11 blockt Electrons
Install-Skript (§ 3.5), plugin-react 6 verlangt Vite 8 (deshalb 5.2),
TypeScript bewusst auf 5.9.3 gepinnt statt tsgo 7.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 16:53:30 +02:00

3.3 KiB
Raw Blame History

Rippy v5 bauen — Anleitung

Gilt für den Ordner rippy-windows/. Grundlage: KONZEPT-WINDOWS.md, die Messungen dazu liegen in beweise/.

Voraussetzungen

Werkzeug Version Anmerkung
Node 24 (LTS) dieselbe Linie wie Electrons eingebautes Node (24.18)
npm 11 kommt mit Node 24
Windows 10 (ab 1809) / 11, x64 zum Entwickeln und für den Smoke-Beweis; Bau/Tests laufen auch auf Linux (CI)

Einrichten — zwei Schritte, nicht einer

npm install
node node_modules/electron/install.js

Die zweite Zeile ist kein Versehen (gemessen 30.08.2026, siehe beweise/README.md und KONZEPT § 3.5): npm 11 blockiert Install-Skripte fremder Pakete. koffi übersteht das, weil es vorgebaute Binärdateien mitbringt — Electron nicht: Sein Install-Skript lädt die eigentliche Programmdatei herunter. Wird es geblockt, liegt nach npm install ein Paket ohne dist/electron.exe da, und nichts startet. Der Nachholer ist auch als npm-Skript hinterlegt: npm run werkzeug:electron.

Die Läufe

Befehl Was er tut
npm run dev Entwicklung: baut, startet Electron, lädt das Fenster vom Vite-Server
npm run build Typprüfung (beide tsconfig) + Bau nach out/
npm test Vitest: Wächter-Tests (§ 4.3), Datenbank, Nachrichten-Schema
npm run smoke Der W-0-Beweis: baut, startet das echte Programm mit --smoke, prüft Fenster + Kern + Datenbank + Leine + Ping/Pong über den MessagePort und endet mit Code 0 (grün) oder 2. RIPPY_SMOKE_BILD=<pfad.png> legt zusätzlich einen Screenshot ab. Läuft nur unter Windows (Electron-Binary + koffi).

Der Smoke-Lauf benutzt ein Wegwerf-Profil unter %TEMP%\rippy-smoke — er fasst die echten Einstellungen nicht an.

Was die CI-Ampel prüft (.gitea/workflows/ci.yml)

Die Ampel läuft auf Linux und führt hier npm ci, npm run build und npm test aus. Deshalb gilt für Tests: nichts importieren, was koffi, Win32 oder das Electron-Binary braucht. Die Wächter-Tests LESEN Quelltext nur; die Datenbank-Tests laufen, weil node:sqlite im System-Node genauso vorhanden ist wie in Electrons Node (§ 3.4). Was zwingend Windows braucht (Smoke, später die Laufwerks-Messungen), wird lokal ausgeführt und im SAVEPOINT.md mit Ausgabe belegt.

Festgelegte Versionen und warum

  • Electron 44.0.0 — exakt die am 30.08.2026 gemessene Version (KONZEPT § 3.1/§ 3.4). Sprünge nach der Pflege-Regel § 6.8: bei jedem Release prüfen, ob eine neue Linie ansteht.
  • TypeScript 5.9.3, fest gepinnt — bewusst NICHT die neue Go-Implementierung (7.x, „tsgo", seit 2026 latest auf npm): Für die Ampel zählt ein Typprüfer, dessen Verhalten die restliche Werkzeugkette (Vitest 4, electron-vite 5) breit getestet hat. Der Umstieg auf 7.x ist eine bewusste Entscheidung für später, kein Nebeneffekt eines npm update.
  • Vite 7 — der gemeinsame Nenner von electron-vite 5 (verträgt 57) und Vitest 4 (verträgt 68), am 30.08.2026 per npm view ermittelt.
  • koffi ist die einzige Laufzeit-Abhängigkeit (dependencies) — sie wird nicht gebündelt, sondern zur Laufzeit aus node_modules geladen (natives Modul). Alles andere ist Bauzeit (devDependencies).