Skip to content

Move pixal3dCuda's missing-extension list from help prose into degraded.detail #4741

Description

@atomantic

Problem

#4636 added an optional detail key to the normalized degraded projection (server/services/imageTo3d/adapters.js) — a short line naming what is actually missing, rendered as distinct secondary text under the help prose. help says which remedy to run; detail says what is broken.

trellis2 uses it. pixal3dCuda still inlines the same information into its help sentence:

help: `Pixal3D is installed but ${incomplete.join(' and ')} did not build, so renders `
  + 'will fail in the mesh exporter. Repair install rebuilds the CUDA extensions; …',

So the card renders the culprit modules as a styled line for one target and as buried prose for the other, and the contract comment this branch wrote is only half-true across the registry.

Decision (chosen approach — do not re-litigate)

Split pixal3dCuda's describeInstallState the same way trellis2 does:

  1. help keeps only the remedy — drop the ${incomplete.join(' and ')} interpolation from the sentence.
  2. detail carries the module names. Reuse the existing formatter shape (Missing: o_voxel, flex_gemm) rather than inventing a second wording — extract it from trellis2.js's missingBakeModulesLabel into a shared helper if that reads cleaner than importing across lanes.
  3. Update server/services/imageTo3d/adapters.degraded.test.js — the two assertions that currently do expect(state.fields.degraded.help).toContain('o_voxel') move to detail, and the exact-shape toEqual case gains the key.

Keep the NAF-fallback branch as-is: it has no module list to name.

Affected files

  • server/services/imageTo3d/adapters.jspixal3dCuda.describeInstallState
  • server/services/imageTo3d/adapters.degraded.test.js — coverage

Related to #4636.

Metadata

Metadata

Assignees

No one assigned

    Labels

    effort:lowDispatch reasoning effort: lowgood first issueGood for newcomersmodel:lightDispatch capability: cheapest capable coding modelplanTracked by /do:replan

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions