Fix production blank screen on Quasar #147

Merged
lost-rob0t merged 8 commits from fix/production-blank-screen into main 2026-07-29 13:48:32 +00:00
lost-rob0t commented 2026-07-29 13:40:00 +00:00 (Migrated from github.com)

Root cause

The production bundle imported melissa-actor-pack-runtime.js before React mounted. That module modified serialized actor source using an exact unminified text fragment and threw when the fragment did not match. Vite production minification changes Function.prototype.toString() output, so module evaluation could fail and leave only the page background visible.

CI missed the crash because Playwright ran against the Vite development server instead of the built production artifact.

Fix

  • replace the exact Melissa source rewrite with a minification-safe actor wrapper
  • normalize Melissa DOB values before StarIntel validation
  • refresh installed Melissa actors when their bundled source changes, even when the pack version is unchanged
  • run CI Playwright against vite preview and the built production artifact
  • expose the graph inspection hook only in development or explicit E2E builds
  • rotate the PWA runtime cache from v3 to v4

Validation

The full pipeline passes formatting, lint, typecheck, boundary/static checks, unit and integration tests, production build validation, and all 21 Playwright tests against the minified production bundle.

Expected behavior

Quasar mounts normally from the GitHub Pages production build instead of showing a blank blue application shell.

## Root cause The production bundle imported `melissa-actor-pack-runtime.js` before React mounted. That module modified serialized actor source using an exact unminified text fragment and threw when the fragment did not match. Vite production minification changes `Function.prototype.toString()` output, so module evaluation could fail and leave only the page background visible. CI missed the crash because Playwright ran against the Vite development server instead of the built production artifact. ## Fix - replace the exact Melissa source rewrite with a minification-safe actor wrapper - normalize Melissa DOB values before StarIntel validation - refresh installed Melissa actors when their bundled source changes, even when the pack version is unchanged - run CI Playwright against `vite preview` and the built production artifact - expose the graph inspection hook only in development or explicit E2E builds - rotate the PWA runtime cache from v3 to v4 ## Validation The full pipeline passes formatting, lint, typecheck, boundary/static checks, unit and integration tests, production build validation, and all 21 Playwright tests against the minified production bundle. ## Expected behavior Quasar mounts normally from the GitHub Pages production build instead of showing a blank blue application shell.
Sign in to join this conversation.
No description provided.