Skip to content

Commit 2770059

Browse files
committed
Enforce Playwright test ownership during discovery to block misplaced files before targeted lane execution - PR_26146_031-playwright-discovery-ownership-enforcement
1 parent 57d1e96 commit 2770059

12 files changed

Lines changed: 382 additions & 30 deletions

docs/dev/reports/dependency_gating_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Dependency Gating Report
22

3-
Generated: 2026-05-26T19:12:03.836Z
3+
Generated: 2026-05-26T19:30:40.928Z
44
Status: PASS
55

66
## Gate Order

docs/dev/reports/lane_compilation_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Lane Compilation Report
22

3-
Generated: 2026-05-26T19:12:03.836Z
3+
Generated: 2026-05-26T19:30:40.927Z
44
Status: PASS
55

66
## Lane Graph

docs/dev/reports/lane_deduplication_report.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
# Lane Deduplication Report
22

3-
Generated: 2026-05-26T19:12:03.837Z
3+
Generated: 2026-05-26T19:30:40.928Z
44
Status: PASS
55

66
## Summary
77

8-
Raw lane requests: tool-runtime, tool-runtime, integration, integration
8+
Raw lane requests: tool-runtime, integration
99
Unique scheduled lanes: tool-runtime, integration
10-
Prevented duplicate lane executions: 2
11-
Prevented browser launches: 4
10+
Prevented duplicate lane executions: 0
11+
Prevented browser launches: 0
1212
Prevented Workspace lane reruns: 0
1313

1414
## Duplicate Requests
1515

1616
| Lane | Request Count | Duplicate Executions Prevented | Browser Launches Prevented | Status |
1717
| --- | --- | --- | --- | --- |
18-
| tool-runtime | 2 | 1 | 3 | DEDUPED |
19-
| integration | 2 | 1 | 1 | DEDUPED |
18+
| none | 0 | 0 | 0 | No duplicate lane requests in this run. |
2019

2120
## Enforcement Notes
2221

docs/dev/reports/lane_runtime_optimization_report.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Lane Runtime Optimization Report
22

3-
Generated: 2026-05-26T19:12:03.837Z
3+
Generated: 2026-05-26T19:30:40.928Z
44
Status: PASS
55

66
## Runtime Cost Summary
77

88
Reused runtime sessions: 2
9-
Prevented redundant browser launches: 5
10-
Prevented redundant lane execution: 5
9+
Prevented redundant browser launches: 1
10+
Prevented redundant lane execution: 3
1111
Baseline Playwright/browser launches: 4
1212
Scheduled Playwright/browser launches: 3
1313

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Playwright Discovery Ownership Report
2+
3+
Generated: 2026-05-26T19:30:40.904Z
4+
Status: PASS
5+
6+
## Discovery-Time Ownership
7+
8+
| File | Lane Requested | Detected Ownership | Expected Location | Lane Blocked | Status | Reason |
9+
| --- | --- | --- | --- | --- | --- | --- |
10+
| tests/playwright/tools/AssetManagerV2.spec.mjs | tools | tools | tests/playwright/tools | none | PASS | tool-specific filename: AssetManagerV2 |
11+
| tests/playwright/tools/CollisionInspectorV2.spec.mjs | tools | tools | tests/playwright/tools | none | PASS | tool-specific filename: CollisionInspectorV2 |
12+
| tests/playwright/tools/ObjectVectorStudioV2FirstClassToolStarter.spec.mjs | tools | tools | tests/playwright/tools | none | PASS | tool-specific filename: ObjectVectorStudioV2 |
13+
| tests/playwright/tools/PreviewGeneratorV2Baseline.spec.mjs | tools | tools | tests/playwright/tools | none | PASS | tool-specific filename: PreviewGeneratorV2 |
14+
| tests/playwright/tools/WorkspaceManagerV2.spec.mjs | tools | tools | tests/playwright/tools | none | PASS | tool-specific filename: WorkspaceManagerV2 |
15+
| tests/playwright/games/AsteroidsBackgroundAssetResolution.spec.mjs | games | games | tests/playwright/games | none | PASS | game-specific filename: Asteroids |
16+
| tests/playwright/games/AsteroidsBeatTiming.spec.mjs | games | games | tests/playwright/games | none | PASS | game-specific filename: Asteroids |
17+
| tests/playwright/games/AsteroidsGameSceneCleanup.spec.mjs | games | games | tests/playwright/games | none | PASS | game-specific filename: Asteroids |
18+
| tests/playwright/games/AsteroidsShipStateVisuals.spec.mjs | games | games | tests/playwright/games | none | PASS | game-specific filename: Asteroids |
19+
| tests/playwright/integration/GameIndexPreviewManifestResolution.spec.mjs | integration | integration | tests/playwright/integration | none | PASS | integration filename marker: GameIndex, ManifestResolution |
20+
21+
## Shared Helper Naming
22+
23+
| File | Detected Ownership | Expected Location | Status | Reason |
24+
| --- | --- | --- | --- | --- |
25+
| tests/helpers/playwrightCtrlTapClick.mjs | shared | tests/helpers | PASS | Generic shared helper name. |
26+
| tests/helpers/playwrightRepoServer.mjs | shared | tests/helpers | PASS | Intentionally shared helper is documented. |
27+
| tests/helpers/playwrightStorageIsolation.mjs | shared | tests/helpers | PASS | Intentionally shared helper is documented. |
28+
| tests/helpers/playwrightV8CoverageReporter.mjs | shared | tests/helpers | PASS | Generic shared helper name. |
29+
| tests/helpers/runtimeSceneLoaderHotReload.helpers.mjs | shared | tests/helpers | PASS | Generic shared helper name. |
30+
| tests/helpers/testCoverageCatalog.mjs | shared | tests/helpers | PASS | Generic shared helper name. |
31+
| tests/helpers/workspaceV2CoverageReporter.mjs | shared | tests/helpers | PASS | Intentionally shared helper is documented. |
32+
33+
## Blocking Findings
34+
35+
No discovery ownership blockers. Targeted Playwright lanes may be scheduled.
36+
37+
## Execution Guard
38+
39+
- Discovery ownership validation runs before lane scheduling and browser startup.
40+
- Tool lanes reject game-owned, integration-owned, and engine-owned Playwright files.
41+
- Game lanes reject tool-owned, integration-owned, and engine-owned Playwright files.
42+
- Integration-only files are blocked from targeted tool/game lanes.
43+
- Engine/src Playwright files are blocked from tool/game lanes unless the lane explicitly owns them.
44+
- Ownership failures do not trigger fallback lanes or broad reruns.

docs/dev/reports/playwright_structure_audit.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Playwright Structure Audit
22

3-
Generated: 2026-05-26T19:12:03.801Z
3+
Generated: 2026-05-26T19:30:40.892Z
44
Status: PASS
55

66
## Lane Directories

docs/dev/reports/static_validation_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Static Validation Report
22

3-
Generated: 2026-05-26T19:12:03.834Z
3+
Generated: 2026-05-26T19:30:40.925Z
44
Status: PASS
55
Static only: No
66
Dry run: No

docs/dev/reports/testing_lane_execution_report.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Testing Lane Execution Report
22

3-
Generated: 2026-05-26T19:13:32.997Z
3+
Generated: 2026-05-26T19:31:59.716Z
44
Dry run: No
55

66
## Summary
@@ -19,7 +19,7 @@ Reason: Skipped because changed files do not modify sample JSON or shared sample
1919

2020
Status: PASS
2121
Reason: Runner preflight and Playwright structure audit passed before expensive lane execution.
22-
Command: C:\nvm4w\nodejs\node.exe scripts/audit-playwright-test-locations.mjs
22+
Command: C:\nvm4w\nodejs\node.exe scripts/audit-playwright-test-locations.mjs --discovery-report docs/dev/reports/playwright_discovery_ownership_report.md
2323
Details: Lane tool-runtime grep pattern is passed as a literal Node argv value: launch guard|temporary UAT context|rejects non-Workspace
2424

2525
## Dependency Gate
@@ -32,8 +32,8 @@ Reason: No deterministic dependency failures before runtime.
3232
Status: PASS
3333
Scheduled lane order: tool-runtime, integration
3434
Reused runtime sessions: 2
35-
Prevented redundant browser launches: 5
36-
Prevented redundant lane execution: 5
35+
Prevented redundant browser launches: 1
36+
Prevented redundant lane execution: 3
3737

3838
## Validation Cache
3939

@@ -42,16 +42,16 @@ Validation computations: 6
4242

4343
## Lane Deduplication
4444

45-
Prevented duplicate lane executions: 2
46-
Prevented browser launches from duplicate lane requests: 4
45+
Prevented duplicate lane executions: 0
46+
Prevented browser launches from duplicate lane requests: 0
4747
Prevented Workspace lane reruns: 0
4848

4949
## Validation Sequence
5050

51-
- PASS zero-browser preflight first: `npm run test:playwright:zero-browser`
52-
- PASS cached deterministic validation with duplicate lane requests: `node ./scripts/run-targeted-test-lanes.mjs --zero-browser-only --lanes tool-runtime,tool-runtime,integration,integration`
53-
- PASS affected targeted runtime lanes after validation: `PLAYWRIGHT_BROWSERS_PATH=0 node ./scripts/run-targeted-test-lanes.mjs --lanes tool-runtime,tool-runtime,integration,integration`
54-
- SKIP Workspace V2 lane: no Workspace V2 contract behavior was changed, and duplicate Workspace requests were not needed for the affected runtime validation.
51+
- PASS discovery ownership validation first: `node ./scripts/audit-playwright-test-locations.mjs --discovery-report docs/dev/reports/playwright_discovery_ownership_report.md`
52+
- PASS affected targeted runtime lanes after discovery passed: `PLAYWRIGHT_BROWSERS_PATH=0 node ./scripts/run-targeted-test-lanes.mjs --lanes tool-runtime,integration`
53+
- SKIP Workspace V2 full lane: workspace-contract behavior was not changed.
54+
- SKIP engine/src lane: engine/src runtime behavior was not changed.
5555
- SKIP full samples smoke: changed files do not modify sample JSON or shared sample loader/framework behavior.
5656

5757
## Lanes

docs/dev/reports/validation_cache_report.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Validation Cache Report
22

3-
Generated: 2026-05-26T19:12:03.837Z
3+
Generated: 2026-05-26T19:30:40.929Z
44
Status: PASS
55

66
## Cache Summary
@@ -14,13 +14,13 @@ Validations computed: 6
1414
| --- | --- | --- | --- | --- |
1515
| lane registration validation | MISS | d331d34f620be161 | initial computation | lane definitions change; package.json lane scripts change |
1616
| runner preflight validation | MISS | 4a29a5cb869a7876 | initial computation | lane definitions change; fixture ownership changes; targeted files change |
17-
| structural ownership validation | MISS | bc8d35347e302d46 | initial computation | fixture ownership changes; helper/import graph changes; targeted files change |
17+
| structural ownership validation | MISS | 24b098f22be17ce1 | initial computation | fixture ownership changes; helper/import graph changes; targeted files change |
1818
| lane compilation validation | MISS | 614ff201f755c81c | initial computation | lane definitions change; targeted files change; fixture ownership changes |
1919
| lane compilation validation | HIT | 614ff201f755c81c | dependency validation input | unchanged within execution cycle |
2020
| dependency validation | MISS | ab41de7d0ff270b0 | initial computation | dependency graph changes; lane definitions change; lane compilation input changes |
2121
| zero-browser preflight | MISS | 6c43c915a37a0e95 | initial computation | lane definitions change; fixture ownership changes; helper/import graph changes; targeted files change; dependency graph changes |
22-
| structural ownership validation | HIT | bc8d35347e302d46 | static validation report | unchanged within execution cycle |
23-
| structural ownership validation | HIT | bc8d35347e302d46 | zero-browser preflight report | unchanged within execution cycle |
22+
| structural ownership validation | HIT | 24b098f22be17ce1 | static validation report | unchanged within execution cycle |
23+
| structural ownership validation | HIT | 24b098f22be17ce1 | zero-browser preflight report | unchanged within execution cycle |
2424
| lane compilation validation | HIT | 614ff201f755c81c | lane compilation report | unchanged within execution cycle |
2525
| lane compilation validation | HIT | 614ff201f755c81c | runtime scheduling | unchanged within execution cycle |
2626
| dependency validation | HIT | ab41de7d0ff270b0 | dependency report | unchanged within execution cycle |

docs/dev/reports/zero_browser_preflight_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Zero-Browser Preflight Report
22

3-
Generated: 2026-05-26T19:12:03.837Z
3+
Generated: 2026-05-26T19:30:40.928Z
44
Status: PASS
55

66
## Prevented Browser Launches

0 commit comments

Comments
 (0)