|
1 | | -BUILD_PR_PREVIEW_PATH_CONTRACT_REALIGNMENT |
| 1 | +BUILD_PR_LEVEL_18_2_BOUNDARY_HARDENING_ENFORCEMENT |
2 | 2 | Date: 2026-04-17 |
3 | | -Scope: Preview path contract repair only (tools/preview + preview generation script). |
| 3 | +Scope: Engine/shared/games/tools boundary hardening with smallest valid coupling removal. |
4 | 4 |
|
5 | | -Summary of changes |
6 | | -1) Preview sample-path contract stays aligned to canonical sample paths: |
7 | | - - samples/phase-XX/XXXX/index.html |
| 5 | +Summary |
| 6 | +1) Added boundary guard implementation |
| 7 | +- Added tools/dev/checkBoundaryHardeningGuard.mjs |
| 8 | +- Scans src/engine, src/shared, games, tools for dependency-direction violations. |
| 9 | +- Enforces: |
| 10 | + - engine must not depend on games/tools/samples/docs |
| 11 | + - shared must not depend on engine/games/tools/samples/docs |
| 12 | + - games must not depend on tools/samples/docs |
| 13 | + - tools must not depend on games/samples/docs |
8 | 14 |
|
9 | | -2) Updated preview HTML executors to default preview output folder to images path: |
10 | | - - tools/preview/generate-list-previews_updated.html |
11 | | - - tools/preview/preview_svg_executor_1600x900.html |
12 | | - - tools/preview/preview_svg_executor_games_enter.html |
| 15 | +2) Findings before fix (execution evidence) |
| 16 | +- games/breakout/main.js imported ../../tools/dev/devConsoleIntegration.js |
| 17 | +- games/Asteroids/index.js imported ../../tools/dev/devConsoleIntegration.js |
| 18 | +- These were cross-layer leakage from games -> tools. |
13 | 19 |
|
14 | | - Exact output-folder changes applied in each: |
15 | | - - input default: "assets" -> "assets/images" |
16 | | - - fallback display path: "assets" -> "assets/images" |
17 | | - - displayed sample write target now resolves as: |
18 | | - samples\\phase-XX\\XXXX\\assets\\images |
| 20 | +3) Smallest valid hardening implementation applied |
| 21 | +- Added src/shared/utils/createNoopDevConsoleIntegration.js as a boundary-safe default integration surface. |
| 22 | +- Updated games/breakout/main.js to use createNoopDevConsoleIntegration default. |
| 23 | +- Updated games/Asteroids/index.js to use createNoopDevConsoleIntegration default. |
| 24 | +- Removed direct games -> tools imports for dev console integration. |
19 | 25 |
|
20 | | -3) Updated runtime sample preview writer path: |
21 | | - - scripts/generate-runtime-sample-previews.mjs |
22 | | - - output path changed: |
23 | | - path.join(sample.sampleDir, 'assets', 'preview.svg') |
24 | | - -> path.join(sample.sampleDir, 'assets', 'images', 'preview.svg') |
25 | | - |
26 | | -4) Preview capture dependency remains aligned to preview tooling location: |
27 | | - - /tools/preview/runtimePreviewCapture.html |
28 | | - - local capture page: tools/preview/runtimePreviewCapture.html |
| 26 | +4) Roadmap status-only update (execution-backed) |
| 27 | +- docs/dev/roadmaps/MASTER_ROADMAP_HIGH_LEVEL.md |
| 28 | +- Level 18 Track B updated in place: |
| 29 | + - [.] -> [x] enforce engine vs shared vs game vs tool boundaries |
| 30 | + - [.] -> [x] eliminate cross-layer leakage |
| 31 | + - [.] -> [x] validate dependency direction rules across repo |
| 32 | + - [ ] -> [x] remove accidental coupling |
29 | 33 |
|
30 | 34 | Notes |
31 | | -- No engine/runtime feature behavior changed beyond preview output path contract. |
32 | | -- No roadmap edits. |
| 35 | +- No broad refactor performed. |
33 | 36 | - No start_of_day edits. |
34 | | -- No unrelated cleanup. |
35 | | - |
| 37 | +- No engine-core behavior changes introduced beyond boundary-safe debug integration defaulting for two games. |
0 commit comments