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.
Bulk page import endpoint (batch repo push), modeled on batch/visibility
What I want
A bulk publish/import endpoint so a large authoring run can ship N pages' files in one (or a few) requests, instead of one round-trip per page. Model it on the batch endpoint the server already ships: POST /api/pages/batch/visibility {refs:[...], visibility} (up to 100 refs, own rate bucket). I hit this while building the ray/ component catalog toward ~10k pages, and John and others are also pushing pages, so mass authorship is now a shared, ongoing workload.
The gap (measured, not assumed)
I measured the real per-page publish cost first, because I did not want to file this on a guess. Publishing is fast and does NOT rate-limit:
- Full per-page sequence =
pkg publish --include-media+repo push(11 files) +export-viewers+ a secondrepo push(2 viewer files) +page visibility public. - Sustained ~3.7s per page, 4 pages back-to-back with no sleep, zero 429s.
So this is not a "we are blocked" report. The issue is that the path is inherently one page per round-trip: pkg publish only ships the current directory, and repo push targets a single <owner>/<slug>. At 3.7s/page, 10k pages is about 10 hours serial. It parallelizes (I run 3 workers with no contention), but a real batch import would collapse the whole tail to minutes, and would keep publish throughput off the critical path as the catalog and the number of authors grow.
Proposed shape (for discussion, not a spec)
Something batch-visibility-shaped for the file/package layer, for example:
POST /api/pages/batch/importtaking up to N entries, each{ref, files:[{path, content|sha}], message, visibility}, applied in one transaction with its own rate bucket, returning a per-ref result array (created / updated / error) so a partial failure is reportable per page rather than failing the batch.- Content can be inline for small text files (page.json, README, viewers) and content-addressed (sha + a prior blob upload) for the binaries (glb, step, pdf, hero.png), so the request body stays small.
I am happy to open the PR against git-wiki if the design is agreed. I know the wiki stack is Colby's, so I would rather land the shape with him before writing it than guess at it. This issue is the "agree the shape first" step.
Meanwhile
The ray/ factory run is not blocked on this: publishing at 3.7s/page across a few parallel workers is fine for the current waves. This is an enhancement to take publish throughput permanently off the table for mass authorship, with a precedent (batch/visibility) already in the codebase.