You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add zero-browser preflight and lane compilation validation to prevent deterministic Playwright setup failures from reaching runtime execution - PR_26146_028-zero-browser-preflight-and-lane-compilation
| Lane | Status | Runtime Execution | Targets | Reason |
15
+
| --- | --- | --- | --- | --- |
16
+
| workspace-contract | PASS | Skipped |`npm run test:workspace-v2`| Lane definition compiles and fixture path resolves; not selected for affected runtime validation. |
|`npm run test:playwright:static`| PASS | No | Required first validation pass. Ran structure audit and lane runner static checks without starting Playwright. |
17
-
|`PLAYWRIGHT_BROWSERS_PATH=0 node ./scripts/run-targeted-test-lanes.mjs --lanes integration,tool-runtime`| PASS | Yes, after static pass | Re-ran the same static gate inside the lane runner before affected Playwright lanes started. |
15
+
Count: 0
16
+
Reason: No deterministic static validation failure was found.
18
17
19
18
## Checks
20
19
21
20
| Check | Status | Details |
22
21
| --- | --- | --- |
23
-
| test placement validation | PASS | Covered by `docs/dev/reports/playwright_structure_audit.md`. |
24
-
| lane ownership validation | PASS | Playwright specs are separated under tools, games, integration, and optional engine ownership buckets. |
25
-
| invalid filename detection | PASS | No game-specific spec/helper filenames remain in generic reusable tool/helper locations. |
26
-
| invalid lane target detection | PASS | Selected lanes target existing files under their expected lane directories. |
Reason: This PR changes static validation, structural preflight routing, and targeted lane execution only. No sample JSON, shared sample loader, or sample framework files were changed.
16
+
Reason: This PR changes zero-browser preflight, lane compilation, and targeted lane routing only. No sample JSON, shared sample loader, or sample framework files were changed.
17
17
18
18
## Executed and Skipped Lanes
19
19
20
20
| Lane / Check | Status | Executed/Skipped Reason | Affected Surface | Evidence |
21
21
| --- | --- | --- | --- | --- |
22
-
|static-validation| PASS | Executed first to prove deterministic checks run before browser startup. | Placement, ownership, filenames, lane targets, fixtures, imports, grep, quoting, duplicate registrations |`npm run test:playwright:static` passed and wrote `docs/dev/reports/static_validation_report.md`. |
| integration | PASS | Executed because the integration lane target remains part of the affected Playwright routing surface. | Game index preview manifest handoff | Same combined runner command; focused Pong handoff subset 3 passed. |
25
-
| workspace-contract | SKIP | Skipped because static validation does not require Workspace V2 launch and Workspace V2 wiring was not changed. | Workspace Manager V2 contract/lifecycle behavior | Not run. |
22
+
|zero-browser-preflight| PASS | Executed first to prove deterministic setup checks run before Playwright runtime initialization. | Placement, ownership, registrations, imports, fixtures, helpers, grep, quoting, lane references, lane configuration |`npm run test:playwright:zero-browser` passed and wrote zero-browser plus lane compilation reports. |
23
+
| tool-runtime | PASS | Executed because lane compilation and zero-browser routing changed. | Asset Manager V2, Preview Generator V2, Collision Inspector V2 runtime tests |`PLAYWRIGHT_BROWSERS_PATH=0 node ./scripts/run-targeted-test-lanes.mjs --lanes integration,tool-runtime`; Asset Manager focused subset 5 passed, Preview Generator and Collision Inspector combined run 11 passed. |
24
+
| integration | PASS | Executed because the integration lane remains part of the affected compiled lane graph. | Game index preview manifest handoff | Same combined runner command; focused Pong handoff subset 3 passed. |
25
+
| workspace-contract | SKIP | Skipped because zero-browser preflight does not require Workspace V2 launch and Workspace V2 runtime wiring was not changed. | Workspace Manager V2 contract/lifecycle behavior | Not run. |
26
26
| engine-src | SKIP | Skipped because no `src/`, engine Playwright, or node engine lane targets changed. | src/ engine/shared runtime behavior | Not run. |
27
27
| samples | SKIP | Skipped because samples are on-request or affected-sample only and this PR did not impact samples. | On-request samples lane | Not run. |
28
28
29
29
## Prevented Launches and Fast-Fail Reasons
30
30
31
-
- Prevented launches: 0 in this validation run because no deterministic static failures were found.
31
+
- Prevented browser launches: 0 in this validation run because no deterministic pre-runtime failures were found.
32
32
- Fast-fail reasons: none.
33
-
- If static validation finds placement, import, fixture, lane target, duplicate registration, grep, or quoting failures, the runner exits before Playwright/browser startup.
33
+
- If preflight finds placement, helper ownership, import, fixture, lane reference, lane configuration, grep, or quoting failures, the runner exits before Playwright/browser startup.
34
34
35
-
## Placement and Helper Cleanup
35
+
## Corrected Ownership Drift
36
36
37
-
- Existing placement corrections remain enforced in `docs/dev/reports/playwright_structure_audit.md`.
38
-
- No additional misplaced tests or game-specific reusable helper names were found.
39
-
-`tests/playwright/integration/GameIndexPreviewManifestResolution.spec.mjs` remains the integration-owned handoff target.
37
+
- No new misplaced tests or helpers were found in this PR.
38
+
- Existing corrections remain enforced: Asteroids game specs under `tests/playwright/games`, integration handoff under `tests/playwright/integration`, documented game fixtures only in tool tests.
40
39
41
40
## Runtime Savings Observations
42
41
43
-
-Static validation ran once as a standalone gate before affected lanes.
44
-
- Affected lanes ran together in one Node lane-runner process instead of separate npm launches.
45
-
- Preview Generator V2 and Collision Inspector V2 execute through one Playwright CLI invocation.
42
+
-Zero-browser preflight ran before browser startup.
43
+
- Affected lanes ran in one Node lane-runner process.
44
+
- Preview Generator V2 and Collision Inspector V2 ran through one Playwright CLI invocation.
46
45
- Workspace V2, engine/src, samples, and full samples smoke were not started.
|`npm run test:playwright:zero-browser`| PASS | No | Required first pass. Ran lane ownership, structure, lane registration, import, fixture, grep, quoting, and lane compilation checks without starting Playwright. |
17
+
|`PLAYWRIGHT_BROWSERS_PATH=0 node ./scripts/run-targeted-test-lanes.mjs --lanes integration,tool-runtime`| PASS | Yes, after preflight | Re-ran zero-browser validation before selected affected lanes executed. |
18
+
19
+
## Deterministic Checks
20
+
21
+
| Check | Status | Details |
22
+
| --- | --- | --- |
23
+
| lane ownership | PASS | Selected lane targets resolve inside their owning lane directories. |
24
+
| directory placement | PASS | Playwright specs are separated into tools, games, integration, and optional engine buckets. |
25
+
| invalid file naming | PASS | No game-specific reusable helper or tool-lane filename drift was found. |
26
+
| duplicate registrations | PASS | No duplicate `test:lane:*` npm registrations were found. |
27
+
| invalid imports | PASS | Relative imports in Playwright specs and shared helpers resolve. |
0 commit comments