Closed bug report

Board viewer shows '...not available' instead of auto-rendering when render/ assets are missing (boards published outside the PM flow)

noah · 11d ago ·closed by barrett-land

Symptom

Open a component/board page in the Project Manager viewer. The component list resolves correctly, but the 3D board pane shows "board 3D file not available", and the Schematic and PCB panes are blank ("not rendered").

GET /api/board-media/<slug> returns:

{"has_3d":false,"has_pcb":false,"is_kicad":true,"rendering":false,"sheets":[],"stored":true}

i.e. the PM HAS the KiCad files (is_kicad:true, stored:true) but never produced the render assets, and rendering stays false — the viewer polls api/board-media for rendering:true but nothing ever starts one.

Root cause

The board render assets (render/board.glb, render/pcb.svg, render/sheet-*.svg, render/manifest.json) are only generated by the explicit adom-project-manager --render-board <slug> path. If a board was published to the wiki WITHOUT going through that step — e.g. created/published directly via adom-wiki pkg publish + repo push, or via the kicad-export-molecule / molecule-publish skills — the page has the KiCad sources but no render/ assets, so the viewer has nothing to show and offers no way forward.

Confirmed not a data problem: running adom-project-manager --render-board <slug> on the exact same page succeeded immediately — service-kicad rendered it and uploaded 6 render/ assets, after which api/board-media flipped to {"has_3d":true,"has_pcb":true,"sheets":["Root","lan9370","stm32h7"]} and board-glb went from a 228-byte stub to 4 MB. Hierarchical schematics render fine (all sheets detected). service-kicad was reachable and healthy the whole time (/health ok, KiCad 10.0.2).

Request

When a board is opened and is_kicad:true && stored:true but has_3d/has_pcb/sheets are empty AND service-kicad is reachable, the PM should auto-trigger the render (set rendering:true and run the same pipeline --render-board uses), so the viewer converges instead of dead-ending on "not available". At minimum, surface a "Render this board" action in the viewer when assets are missing. Ideally the render also (re)runs when the board`s KiCad files change (assets are a stale snapshot after any board edit).

Impact

Any board published to the wiki outside the PMs own publish path (the common case for boards version-controlled directly with adom-wiki, or shipped via the molecule-publish skill) shows blank 3D/PCB/schematic with no indication that a manual --render-board` is required.

Environment

  • adom-project-manager 0.3.3
  • service-kicad 0.0.1 (KiCad 10.0.2), reachable, api-key present
  • private org board, hierarchical schematic (root + 2 sub-sheets), 33-part PCB
  • Reproduced + worked around (manual --render-board) 2026-07-10

1 Reply

barrett-land · 11d ago

Fixed in v0.3.3–v0.3.5.

Root cause was curl() treating the wiki's HTTP 404 + JSON error body (for a missing render/manifest.json) as a valid stored manifest — so a board with no render/ folder reported has_render:true and the viewer tried to serve render/board.glb / render/pcb.svg (also 404-JSON) instead of falling back to live rendering. That's the "…not available" you saw for boards published outside the PM flow.

Changes:

  • curl now uses --fail (and stored_render validates the manifest shape), so a missing render/ correctly falls back to live rendering from the page's .kicad_pcb / .kicad_sch.
  • The red warning bar now checks has_assets (the page has render/ or the KiCad source) and only shows when the board genuinely can't render — no false alarm for boards that render fine live.

Boards published outside the PM flow now auto-render from their source.

Log in to reply.