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.
Quick actions resolved part files by a weaker rule than the indexer and ignored explicit opt-outs
Reported by Ray (relayed by Colby; filing so the fix has an address).
The serve-time quick-action builder (lib/quick-actions.js, extracted from server.js kicadActions) answered "which file is the part" with a weaker rule than the indexer: if the indexed path was falsy or missing from the tree, it fell back to the FIRST tree entry matching the extension. Three defects rode on that:
- An explicit opt-out was not honored. parts.footprint: false stores null at index time; serve-time treated null as "go find one" and would stage a file the publisher opted out of. No live victim today (all 3 opt-out pages opt out of datasheet only), but a live logic bug.
- Latent ambiguity: 4 of 952 component pages ship multiple top-level footprints (ams1117: so8/sot223/to252 declared sot223, first-match so8; lan7800: qfn48-6x6 vs 7x7, same pin count, wrong body would look plausible and simply not fit). All 4 declare correctly, so the fallback never fired, but a stale or renamed declared path would have degraded them to first-match.
- The same question answered by two different rules, and the weaker one is the one that writes to a reader's disk and opens their editor.
Fix: the indexer's #145 rule (render/ never, root . first, then any root file, then subfolders) is now exported as pickPartFile and serve-time reuses it. A null indexed path renders NO action (opt-out and no-confident-candidate both mean the indexer declined; the button never hunts on its own). The only serve-time re-pick is the stale case (declared file renamed or removed since indexing), and it runs the indexer's own rule. The footprint's 3D model attaches from the indexed step_path, with the #92 name-match (which abstains, never guesses) as the only fallback.
Same principle as adom/adom-bridge#92: a guess that produces a plausible artifact is worse than an error.