/** * Hält fest, wann die Vollstufe des Gates zuletzt sauber durchlief. * * Der Stempel liegt in `.git/` und ist damit bewusst NICHT versioniert: Er * beschreibt den Zustand dieses einen Arbeitsplatzes, nicht den des Projekts. * Ein eingecheckter Stempel würde behaupten, bei jedem anderen sei die * Vollstufe auch schon gelaufen. * * Der pre-commit-Hook vergleicht sein Alter mit der jüngsten Änderung unter * `app/src` und erinnert, wenn der Quelltext seither weitergewandert ist. */ import { execFileSync } from 'node:child_process'; import { writeFileSync } from 'node:fs'; import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; import { paketstand } from './paketstand.mjs'; const wurzel = execFileSync('git', ['rev-parse', '--show-toplevel'], { encoding: 'utf8', }).trim(); const pfad = join(wurzel, '.git', 'gate-stempel'); writeFileSync(pfad, `${new Date().toISOString()}\n`, 'utf8'); process.stdout.write(`Gate vollständig durchlaufen. Stempel: ${pfad}\n`); /* Und jetzt das, was der Bericht bisher verschwieg. Playwright zählt übersprungene Prüfungen nicht in die Zusammenfassung: Aus „203 bestanden“ wird „183 bestanden“, und die fehlenden fallen niemandem auf. Ein Gate, das nicht sagt, was es ausgelassen hat, behauptet mehr, als es geprüft hat – dieselbe Unwahrheit, gegen die `bauPruefen()` angelegt ist. Die Zahlen sind am 03.09.2026 gemessen (`npx playwright test --list`: 203 Prüfungen in 23 Dateien; ohne frisches Paket bleiben 20 liegen – 15 aus `gepackt.spec.ts`, 3 aus `fensterlage.spec.ts` und 2 aus `store-paket.spec.ts`, die ein registriertes MSIX brauchen). Sie standen hier bis Fassung 0.27.2 auf 119 und 110 und waren damit selbst das, wogegen dieser Absatz argumentiert. Kein Fehlschlag, sondern eine Feststellung: `npm run gate` baut das Paket nicht mit, und ein Abbruch zwänge zu einem mehrminütigen `dist:win` vor jedem Lauf. Wer veröffentlicht, findet den Schritt in docs/veroeffentlichen.md. */ const appWurzel = dirname(dirname(fileURLToPath(import.meta.url))); const paket = paketstand(appWurzel); if (!paket.vorhanden || paket.veraltet) { process.stdout.write( `\nNICHT geprüft: e2e/gepackt.spec.ts – ${paket.grund}\n` + 'Die gepackte Anwendung ist damit ungeprüft geblieben; vor einer ' + 'Veröffentlichung ist das ein offener Punkt.\n', ); } else { process.stdout.write('Einschließlich der Prüfungen gegen das gebaute Paket.\n'); }