Skip to content

Fulgora's default view renders entirely in TypeScript, so #227's done-when is not met #363

Description

@wormeyman

Every Fulgora render an ordinary user sees is served by TypeScript, not the
engine. That does not break #227's deletion - no Fulgora module is in the dead
set - but it does mean #227's own done-when, "the deployed app renders all three
planets from WASM", is not met when the deletion lands.

Measured three ways

  1. The module serves three Fulgora views. crates/fmw-wasm/src/render.rs's
    supported match admits (PLANET_FULGORA, VIEW_LANDMASK | VIEW_TERRAIN | VIEW_SCRAP_FOOTPRINT).
  2. The dispatcher's Fulgora gate admits two of them.
    src/noise/preview/elevationRenderRequest.ts routes to
    renderFulgoraThroughWasm only for view === "landmask" || view === "terrain". Everything else falls to the TypeScript arm.
  3. The panel asks for neither. ElevationPreviewPanel.vue's effectiveView
    returns "all" for every non-dev-mode Fulgora request - ported is
    ["terrain", "all"] and the non-dev branch returns "all" unconditionally.

So the default path is view: "all", which is not in the gate, which means
renderFulgoraTerrain plus renderFulgoraResources in TypeScript. The engine is
reached only by the island finder (landmask) and by a dev-mode user who ticks
Terrain.

Why "all" is the gap rather than "resources"

Fulgora's "all" composite is terrain plus the scrap overlay. The module has
VIEW_SCRAP_FOOTPRINT, so both halves exist in Rust; what is missing is a code
that composites them the way VIEW_ALL does on Nauvis and Vulcanus. That looks
like the smallest change that closes this: give Fulgora a composite view code,
then widen the dispatcher's gate to "all".

Not a deletion hazard

Stated explicitly because it is easy to mistake for one. renderFulgoraTerrain,
renderFulgoraLandMask and renderFulgoraResources are all outside the dead
set, and so is their whole import closure - tiles/fulgoraCatalog.ts reaches
only expressions/fulgora* and touches none of the dead tiles/ modules. The
TypeScript Fulgora path keeps working after the deletion. It is simply the only
planet still doing so.

Found while auditing #227's phase 7. Filed separately because it is scope, not a
blocker.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions