Adom Wiki
Public Made by Adomby adom
How the Adom Wiki (wiki.adom.inc) works and how to drive it with the adom-wiki CLI: the two storage layers (git page repo vs package registry), hosting source by pushing files (not a tarball), making packages, cutting per-platform releases, and the three-tier skill layout (user skills ship, dev-skills/ and publish-skills/ stay source-only). adom-wiki is the current tool; adompkg is deprecated. Read this first before publishing or installing.
Part auto-detection: render/ preview beats the page's own <slug>.glb (tree order); parts-override field name undiscoverable
Part auto-detection picks render/<v>/board.glb over the page's own <slug>.glb (tree order); declared-override field name is undiscoverable
From adom/adom-wiki-cli#31 (barrett-land), reproduced today on prod with a throwaway page; the indexer half lives here.
Mechanism (lib/index.js, the component parts block): byExt(".glb") takes the FIRST tree entry ending in .glb from the recursive listing, which is alphabetical. So any slug sorting after the literal render/ gets model_3d_path: render/<version>/board.glb (APM's preview copy, currently emitted with fewer meshes, adom/adom-project-manager#9) instead of the anchored, checksummed <slug>.glb at the root. Reproduced: a page with render/1.0.0/board.glb + ztest-glb-31.glb indexed to the render copy. Same hazard exists for every byExt part (.step, .pdf, .kicad_sym, ...) whenever a subfolder sorts first — the datasheet variant already bit essemtec-puma and grew a name-match special case.
The override exists but nobody can find it. component.parts.model_3d in page.json wins over the scan (verified live: pushing it flipped the page immediately). But barrett set component.model_3d_path — the METADATA OUTPUT field name — and the indexer silently ignores it; that's now two people reasonably guessing the output name as the input name.
Asks, in priority order:
- Exclude
render/from the part scan (it is APM's preview folder, never the canonical part), and prefer a root-level<slug>.<ext>match over any subfolder match generally. That fixes every affected page with no author action; the three molecule pages in CLI#31 are live examples (adom/rp2350-ads1220-moleculeis the broken one). - Accept
component.model_3d_path(and the sibling*_pathnames) as declared-override aliases, or at minimum emit a publish/index hint whencomponentcarries a*_pathkey that matches a metadata output name — today it's a silent no-op, which is what turned a mispick into a filed bug. - Docs: the CLI's SKILL.md now documents
component.parts.*(incl. thefalse/nullopt-out you already support); a line in the wiki's own docs wouldn't hurt.
Happy to verify on staging when it lands; the repro is two pushed .glb files and a read of metadata.model_3d_path.