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.
Page create is not crash-atomic: an orphan bare repo bricks the slug (409 on create, 404 on push)
Found on staging while verifying #149. Page create is not crash-atomic: it creates the bare repo on disk before inserting the page row. The staging container restarted (redeploy) mid-request, after createRepo and before the INSERT, and the slug is now bricked both ways:
- POST create again: 409 "kcknox/component/ztest-qa-149 already exists" (the repo layer sees the orphan bare repo)
- repo push: 404 "Page not found" (no page row)
No recovery path exists short of shell access to rm the orphan repo dir. The orphan kcknox/component/ztest-qa-149.git is still sitting on staging's disk as a live repro.
Two fixes worth considering, smallest first:
- Self-heal on create: when createRepo hits an existing bare repo whose owner/type/slug has NO page row (and the repo has no commits, or only commits by the same caller), treat it as the orphan it is: adopt or remove it and proceed. This unbricks the slug with no migration.
- Order the work so the window closes: insert the page row first (or wrap repo creation and the insert so a crash leaves either nothing or a row that a retry completes). The repo is the expensive-to-orphan half, so it should come second.
Either way a sweep that lists bare repos with no matching page row would find any existing orphans on prod.