Superfix / Superfixer-lus (**026**), world-per-world lokale console-bewijs met Playwright, niet Cursor-browser als gate.
Harde regel: geen superfix:local-* of brede Playwright-console-audit starten zolang de starttoestand niet bewezen gezond is. Anders meet je timeout/hang i.p.t. productfouten.
curl -sf --max-time 120 "http://voices.localhost:${PORT:-3000}/" moet snel een echte HTTP-response geven (geen lege timeout op :3000). Zo niet: één luisterend proces op die poort (PID), geen brede kills; bij stale/hung listener: stop die PID, daarna npm run dev. Kale 127.0.0.1 zonder Host / zonder *.localhost is geen vervanging voor deze check (preflight in scripts volgt al voices.localhost).cd apps/web && PLAYWRIGHT_BASE_URL=http://voices.localhost:${PORT:-3000} SUPERFIX_GOTO_URL=http://voices.localhost:${PORT:-3000}/ npm run test:superfix-world-smoke
Pas als dit groen is, weet je dat console/page/5xx/inline op de hub kloppen.ld+jsonnpm run superfix:local-priority-consoles en eventueel superfix:local-world-consoles / SUPERFIX_THEN_WORLD_HUBS=1..cursor/rules/026-SUPERFIXER-LOOP.mdc (niet hier dupliceren; wijzigingen alleen daar + UNLOCK indien lock actief).apps/web/src/lib/system/localhost-world-dev-aliases.ts + 328-LOCAL-DEV-WORLD-HOSTS-MASTERCLASS (file slug volledig).superfix local zonder concrete URL volgt al §0e (rij-voor-rij World-plan).type-check / eslint zeggen niets over hydration/chunks/runtime-console (026 §0d).page.on('console'|'pageerror'|5xx) op de zelfde URL die je bezoekt — zelfde allowlist als route-inventory audit (tests/e2e/console-audit-helpers.ts).Eerst uitzoomen — zie sectie hierboven (health → één smoke → dan pas breed).
Eén terminal — dev laten draaien (open laten):
cd <repo-root> # map met root package.json (superfix-scripts)
npm run dev
(Poort PORT of 3000; root-script = cd apps/web && npm run dev.)
test:superfix-world-smoke op de hub: prioriteit-superfixcd <repo-root>
npm run superfix:local-priority-consoles
apps/web/test-results/superfix-priority-last.mdChunk / ReactCurrentDispatcher-ruis / 500 op /_next/static: harde reset (stopt 3000 + wist .next + webpack caches), daarna opnieuw npm run dev:
cd <repo-root>
npm run superfix:local-next
(Zelfde bedoeling als dev:clean, maar expliciet voor “MIME leeg / chunk 500”-symptomen.) Alternatief: npm run dev:clean.
(dev:clean stopt geen andere terminal — bij EADDRINUSE op 3000: dev-terminal Ctrl+C of npm run stop waar aanwezig, daarna opnieuw npm run dev.)
Agents in Cursor: zelfde volgorde; dev mag in de achtergrond i.p.v. tweede fysieke terminal. Belangrijk: niet tegelijk een Playwright-run die apps/web/.next wist terwijl die dev draait — standaard wist Playwright dat niet meer (zie apps/web/playwright.config.ts: alleen met PLAYWRIGHT_WEBSERVER_RM_NEXT=1). Preflight in de superfix-scripts gebruikt http://voices.localhost:${PORT}/ (kale 127.0.0.1 zonder etalage-Host kan in middleware blijven hangen).
npm run superfix:local-priority-consoles
/, /cart/, /checkout/, /checkout/configurator/, /agency/contact/, /partners/, /partners/teamtel/ (concrete etalage), /partners/sample/, /partners/contact/, /account/favorieten/, /freelance/.SUPERFIX_THEN_WORLD_HUBS=1 npm run superfix:local-priority-consolesnpm run superfix:local-world-consoles
PORT=3100 npm run superfix:local-world-consoles.ReactCurrentDispatcher / chunk-ruis op dev.next / gemixte chunks uitsluiten: npm run dev:clean (root) of root dev:clean + daarna opnieuw npm run superfix:local-world-consoles — zie 002 §31 (caching vs code) en 325 voor strakkere prod-pariteit (PLAYWRIGHT_NEXT_START=1 / full-check:prod).next build → next dev: apps/web schrijft een marker (postbuild); npm run dev wist .next automatisch vóór dev-start zodat productie-artefacten niet met dev-webpack mixen (encryption-utils / __webpack_require__).Enkel één URL handmatig:
cd apps/web && \
PLAYWRIGHT_BASE_URL=http://voices.localhost:3000 \
SUPERFIX_GOTO_URL=http://studio.localhost:3000/ \
npm run test:superfix-world-smoke
npm run full-check:fast of test:console-audit (325).