Enforce engine SDK boundaries and rehearse every layer display

Restrict runtime SDK imports to their engine directories, including package
subpaths, re-exports and dynamic imports. Keep three measured, reasoned
exceptions for the Bhote Koshi property-record models and reject stale
exceptions. Move the Cesium annotation renderers and both wind adapters to
their engine folders, preserving their implementations and lazy loading.

Load all 35 manifest display entries on a fake engine with an unknown kind
and no native extensions. Draw small fixtures and verify resource and
subscription cleanup before destroying the engine. Name the three entries
without display factories as skips. Update the architecture, infrastructure
lifecycle and engine integration documentation to describe the code today.

Cesium behavior is unchanged, and Navara keeps its existing behavior. The
weather comparison harness supplies the Navara flow-mesh factory and accepts
the previous backend location for comparison runs. No user-visible strings
change.

Cesium layer-renderer lines fall from 14 to 0, Navara layer-renderer lines
from 314 to 189, outside-engine Cesium import files from 5 to 3, viewer lines
from 933 to 910, extension reads from 4 to 3, and engine-name lines from 36
to 33. No coupling count grows. Targeted checks pass: 845 tests, three named
rehearsal skips. Import directions, package boundaries, formatting and syntax
checks pass.

Checked in the browser, keyless: the contract suite passes on Navara and on
Cesium apart from the camera-events check that also fails intermittently
before; Navara annotations pass across engine switches; the ground-look
comparison is pixel-identical. qa-draw-tool's hidden-line check and the wind
engine switch fail the same way before this change.
This commit is contained in:
German Khokhlov committed 2026-11-07 16:06:43 +04:00
1 parent 656943641c
commit 52c6f68bd5
31 files changed
+1145 -208

No files matched your search

+24 -7
View File
@@ -1,4 +1,21 @@
{
"engineImportExceptions": [
{
"file": "src/data/bhoteKoshiEmbeddedMedia.js",
"package": "cesium",
"reason": "Authored story media still uses Cesium positions and property records."
},
{
"file": "src/data/bhoteKoshiEvent.js",
"package": "cesium",
"reason": "Authored event timing and geometry still build Cesium property records for the shared story display."
},
{
"file": "src/data/bhoteKoshiLocator.js",
"package": "cesium",
"reason": "Locator model still builds Cesium property records for the shared story display."
}
],
"infrastructure": {
"exports": [
"./infrastructure",
@@ -2416,9 +2433,9 @@
"src/annotations/hybridAnnotationRenderer.js",
"src/annotations/index.js",
"src/annotations/resolver.js",
"src/annotations/screenAnnotationRenderer.js",
"src/globe/cesium/annotations/screenAnnotationRenderer.js",
"src/annotations/screenScene.js",
"src/annotations/worldAnnotationRenderer.js",
"src/globe/cesium/annotations/worldAnnotationRenderer.js",
"src/app/catalog.js",
"src/app/constructCatalog.js",
"src/app/sourceComposition.js",
@@ -3569,7 +3586,7 @@
"src/layers/recentImagery/render/display.js",
"src/layers/weather/render/display.js",
"src/layers/wind/render/display.js",
"src/layers/wind/render/navaraFlow.js",
"src/globe/navara/windFlow.js",
"src/layers/bhoteKoshi/render/display.js",
"src/globe/navara/imagery/pass.js",
"src/globe/navara/imagery/index.js",
@@ -3577,7 +3594,7 @@
"src/globe/cesium/imagery.js",
"src/globe/cesium/imageryShell.js",
"src/globe/navara/ground/corridors.js",
"src/layers/wind/render/cesiumFlow.js",
"src/globe/cesium/windFlow.js",
"src/globe/cesium/postStages.js",
"src/data/geoImportRecords.js",
"src/data/geoImportKml.js",
@@ -3984,7 +4001,7 @@
"src/layers/vessels/recordPolicy.js",
"src/layers/vessels/snapshotRenderer.js",
"src/data/inputOwnership.js",
"src/annotations/worldAnnotationRenderer.js",
"src/globe/cesium/annotations/worldAnnotationRenderer.js",
"src/cameraGroundGuard.js",
"src/cameraVerbs.js",
"src/globeInView.js",
@@ -4326,14 +4343,14 @@
"src/layers/recentImagery/render/display.js",
"src/layers/weather/render/display.js",
"src/layers/wind/render/display.js",
"src/layers/wind/render/navaraFlow.js",
"src/globe/navara/windFlow.js",
"src/layers/bhoteKoshi/render/display.js",
"src/layers/bhoteKoshi/render/story.js",
"src/globe/navara/ground/surface.js",
"src/globe/navara/windFlowMesh.js",
"src/globe/navara/ground/effect.js",
"src/globe/navara/ground/pulse.js",
"src/layers/wind/render/cesiumFlow.js",
"src/globe/cesium/windFlow.js",
"src/globe/cesium/postStages.js",
"src/globe/cesium/sonar.js",
"src/globe/cesium/sonarCommands.js",