Hustler-Stufe: Prüfstand baut mit VITE_HUSTLER_STUFE=6, Notiz zum Hochsetzen beim Livegang von P4 und P6
build.mjs setzt die Stufe über define ein (Standard 6, andere Ziffer 1 bis 9 aus der Umgebung, Ungültiges bricht ab), damit die Szenarien K (Pult P4) und L (Keller) weiter laufen; ein Test baut den Prüfstand mit Standard, 3 und ungültigen Werten. docs/superpowers/hustler-stufe.md erklärt Stufen, Sperren und die Schritte beim Hochsetzen. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
32f4f1d941
commit
2652108e4c
4 files changed
+105
-2
No files matched your search
@@ -5,6 +5,9 @@
|
||||
// Drei Module der App hängen an Appwrite (Anmeldung, Mitarbeiterliste, Sitzungs-JWT) und werden nur im Prüfstand ausgetauscht, damit die
|
||||
// echte Seite WorkersPage (Bildschirme Hochhaus, Pult und Keller samt Brief, Akte, ProspectPanel und Einstellungen) ohne Netz läuft: AuthContext -> stub-auth.js,
|
||||
// useEmployees -> stub-employees.js, workersClient -> stub-client.js. Am Quelltext der App ändert das nichts.
|
||||
// Stufen-Sperre (src/lib/hustlerStufe.js): die App zeigt P4-Aktionen im Pult erst ab Stufe 4 und den Keller (Bot-Leads) erst ab Stufe 6. Die Szenarien des Prüfstands
|
||||
// (K pult-p4, L keller, die Keller-Etage im Haus) brauchen beides, deshalb baut dieses Skript standardmäßig mit VITE_HUSTLER_STUFE=6. Eine andere Stufe 1..9 kommt aus der
|
||||
// Umgebung (VITE_HUSTLER_STUFE=3 node scripts/workers-harness/build.mjs <outDir> baut den Stand der Produktion); ein ungültiger Wert bricht ab.
|
||||
import esbuild from 'esbuild'
|
||||
import fs from 'node:fs'
|
||||
import os from 'node:os'
|
||||
@@ -32,6 +35,12 @@ if (fs.existsSync(out) && fs.readdirSync(out).length > 0) {
|
||||
}
|
||||
fs.mkdirSync(out, { recursive: true })
|
||||
|
||||
const stufe = process.env.VITE_HUSTLER_STUFE ?? '6'
|
||||
if (!/^[1-9]$/.test(stufe)) {
|
||||
console.error(`refusing: VITE_HUSTLER_STUFE must be a digit 1..9 (got ${JSON.stringify(stufe)})`)
|
||||
process.exit(2)
|
||||
}
|
||||
|
||||
const STUBS = [
|
||||
{ filter: /(^|\/)context\/AuthContext(\.jsx?)?$/, file: 'stub-auth.js' },
|
||||
{ filter: /(^|\/)hooks\/useEmployees(\.jsx?)?$/, file: 'stub-employees.js' },
|
||||
@@ -57,10 +66,10 @@ const result = await esbuild.build({
|
||||
// Bilder der Pixelwelt (url() in src/styles/hustler/*.css) landen als data:-URI im harness.css
|
||||
loader: { '.png': 'dataurl' },
|
||||
plugins: [stubPlugin],
|
||||
define: { 'process.env.NODE_ENV': '"development"' },
|
||||
define: { 'process.env.NODE_ENV': '"development"', 'import.meta.env.VITE_HUSTLER_STUFE': JSON.stringify(stufe) },
|
||||
logLevel: 'warning',
|
||||
metafile: true,
|
||||
})
|
||||
fs.copyFileSync(path.join(here, 'index.html'), path.join(out, 'index.html'))
|
||||
const sizes = Object.entries(result.metafile.outputs).map(([file, info]) => `${path.basename(file)} ${info.bytes}`)
|
||||
console.log(`built ${sizes.join(', ')} -> ${out}`)
|
||||
console.log(`built ${sizes.join(', ')} (Stufe ${stufe}) -> ${out}`)
|
||||
@@ -3,6 +3,7 @@
|
||||
// flock /run/lock/hustler-schwer.lock systemd-run --scope -q -p MemoryMax=1500M -p MemorySwapMax=0 timeout 600 \
|
||||
// node --max-old-space-size=600 scripts/workers-harness/shot.cjs <distDir> <outDir>
|
||||
// <distDir> = Ausgabe von build.mjs, <outDir> = NEUER oder leerer Ordner unter dem Temp-Ordner (TMPDIR, sonst /tmp) oder unter .superpowers/ im Repo.
|
||||
// Stufen-Sperre (src/lib/hustlerStufe.js): build.mjs baut standardmäßig mit VITE_HUSTLER_STUFE=6 (P4-Aktionen im Pult und Keller offen); alle Szenarien unten setzen das voraus.
|
||||
// Ein kleiner Server auf 127.0.0.1 liefert distDir und /fonts/* aus public/fonts. Am Ende steht eine JSON-Zeile und `OK`; bei einem Verstoß Exit 1.
|
||||
// Szenarien (Name für HARNESS_ONLY, Vorsilbe der Bilder):
|
||||
// A hochhaus (a-) Hochhaus am Desktop 1280 x 720 und 1920 x 1080: keine Fehler, nichts läuft über den Rand, 19 Figuren mit aria-label, Kim/Pia/Finn grau, Kopfzeile, Briefkasten
|
||||
|
||||
Reference in new issue
Block a user