Summary
The Playwright config (playwright.config.ts) has no webServer block; E2E tests blindly target http://localhost:4200 and use whatever process happens to be listening. On 2026-08-01/02 this produced a materially misleading result: a full DFD E2E run reported 42/58 passing while being served by a stale, long-lived ng serve process that predated a dependency change (#826) which had actually broken every fresh dev-server boot on main (see #762's override collision; diagnosed during #446 execution). The passing run masked a hard bootstrap crash for over a day.
Acceptance Criteria
Notes
Summary
The Playwright config (
playwright.config.ts) has nowebServerblock; E2E tests blindly targethttp://localhost:4200and use whatever process happens to be listening. On 2026-08-01/02 this produced a materially misleading result: a full DFD E2E run reported 42/58 passing while being served by a stale, long-livedng serveprocess that predated a dependency change (#826) which had actually broken every fresh dev-server boot on main (see #762's override collision; diagnosed during #446 execution). The passing run masked a hard bootstrap crash for over a day.Acceptance Criteria
playwright.config.tsgains awebServerentry (e.g.command: pnpm dev:e2e/ng serve --configuration=e2e --port 4200,url: http://localhost:4200) so Playwright owns dev-server lifecycle.reuseExistingServer: falselocally (or gated so CI always starts fresh), guaranteeing E2E can never run against a pre-existing server process.ng serveis no longer required.Notes
@angular/build>viteoverride (build: drop @angular/build>vite pnpm override once Angular dev-server supports Rolldown-based Vite 8 #762/build: eliminate ng serve startup deprecation warnings #763), invisible because the E2E run reused a pre-chore(deps): bump dependencies #826 server.--trace on-first-retryas a default while touching the config.