|
| 1 | +# BUILD_PR_LEVEL_18_7_UNSTABLE_SURFACE_REMOVAL_OR_ISOLATION |
| 2 | + |
| 3 | +## Purpose |
| 4 | +Advance Level 18 Track C by removing or isolating unstable/experimental surfaces while preserving stable contracts. |
| 5 | + |
| 6 | +## Scope Executed |
| 7 | +- inspected selector/provider public surfaces in `src/engine/debug/standard/threeD` |
| 8 | +- identified unstable top-level barrel exposure for legacy summary-era 3D debug surfaces |
| 9 | +- isolated legacy surfaces behind an explicit controlled boundary |
| 10 | +- validated that active consumers remain on stable contracts |
| 11 | + |
| 12 | +## Unstable Surface Identified |
| 13 | +Top-level exports in `src/engine/debug/standard/threeD/index.js` exposed legacy summary-era APIs alongside current inspector-era APIs: |
| 14 | +- legacy providers: transform/render-stage/collision/scene-graph summary |
| 15 | +- legacy panels: transform/render-stages/collision/scene-graph summary |
| 16 | + |
| 17 | +This mixed stable and legacy contracts in the primary barrel surface. |
| 18 | + |
| 19 | +## Isolation Actions Applied |
| 20 | +1. Added explicit legacy namespace module: |
| 21 | +- `src/engine/debug/standard/threeD/legacySummarySurface.js` |
| 22 | + |
| 23 | +2. Removed legacy summary symbols from top-level `threeD/index.js` exports. |
| 24 | + |
| 25 | +3. Added controlled legacy boundary in top-level barrel: |
| 26 | +- `export * as legacySummary3d from "./legacySummarySurface.js";` |
| 27 | + |
| 28 | +Result: |
| 29 | +- stable top-level surface now exposes current contracts only |
| 30 | +- legacy summary contracts remain available through explicit opt-in namespace |
| 31 | + |
| 32 | +## Consumer Impact Check |
| 33 | +- no active `src/` or `tests/` consumers depended on removed top-level legacy summary exports |
| 34 | +- legacy symbols are now referenced only within legacy module and underlying implementation files |
| 35 | + |
| 36 | +## Files Changed |
| 37 | +- `src/engine/debug/standard/threeD/index.js` |
| 38 | +- `src/engine/debug/standard/threeD/legacySummarySurface.js` |
| 39 | + |
| 40 | +## Validation Commands Run |
| 41 | +1. Legacy isolation contract check (inline Node): |
| 42 | +- asserts legacy summary symbols are absent at top-level `threeD` exports |
| 43 | +- asserts legacy summary symbols are present under `threeD.legacySummary3d` |
| 44 | +- Result: PASS |
| 45 | + |
| 46 | +2. Consumer dependency scan: |
| 47 | +```bash |
| 48 | +rg -n "PROVIDER_3D_TRANSFORM_SUMMARY|createTransformSummaryProvider|PROVIDER_3D_RENDER_STAGE_SUMMARY|createRenderStageSummaryProvider|PROVIDER_3D_COLLISION_SUMMARY|createCollisionSummaryProvider|PROVIDER_3D_SCENE_GRAPH_SUMMARY|createSceneGraphSummaryProvider|PANEL_3D_TRANSFORM\b|create3dTransformPanel|PANEL_3D_RENDER_STAGES|create3dRenderStagesPanel|PANEL_3D_COLLISION\b|create3dCollisionPanel|PANEL_3D_SCENE_GRAPH\b|create3dSceneGraphPanel" src tests -g "*.js" -g "*.mjs" |
| 49 | +``` |
| 50 | +- Result: matches limited to legacy boundary/module definitions only |
| 51 | + |
| 52 | +3. Focused regression tests: |
| 53 | +- `tests/tools/CameraDebugPanel.test.mjs` |
| 54 | +- `tests/tools/TransformInspectorDebugPanel.test.mjs` |
| 55 | +- `tests/tools/RenderPipelineStagesDebugPanel.test.mjs` |
| 56 | +- `tests/tools/CollisionOverlaysDebugPanel.test.mjs` |
| 57 | +- `tests/tools/SceneGraphInspectorDebugPanel.test.mjs` |
| 58 | +- `tests/final/DebugObservabilityMaturity.test.mjs` |
| 59 | +- Result: 6/6 PASS |
| 60 | + |
| 61 | +## Roadmap Note |
| 62 | +- No roadmap file update was included in this PR slice to avoid mixing with pre-existing unrelated working-tree changes in the roadmap file. |
0 commit comments