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 files served as 200 with an empty body while the repo has the bytes; the edge caches the empty copy
Problem
Files on a page are served as 200 with content-length: 0 while the page repo holds the real bytes, and the edge then caches the empty copy under the page's ?v=<commit> tag. Videos and posters on the page stop working, with no error a reader can see.
Page: https://wiki.adom.inc/john/buck-12v5v-molecule (the clips sub-readmes docs/clips.md and docs/clips-rework.md).
What was observed (2026-09-30, about 23:30 to 00:20 UTC)
- Every clip 404'd for a while.
GET /api/pages/john/buck-12v5v-molecule/files/docs/clips/<clip>.mp4?v=5e07f1bf637ereturned404 FILE_NOT_FOUNDfor files that exist in the repo at HEAD. All 9<video>elements sat atreadyState 0,networkState 2forever. A few minutes later the same URLs served fine, with nothing changed on my side. - Nine files stayed empty. After that cleared, 9 of the page's ~145 files kept returning
200with an empty body: 4 poster JPGs, 3 MP4 clips,docs/clips.mdandREADME.md. The headers were right (content-type, anetag) butcontent-length: 0.adom-wiki repo showon the same path warnedTRANSPORT_ALTERED("the direct read ... did not match the repo's blob hash") and recovered the real bytes from the archive. So the repo is fine and the file-serving layer has an empty entry. - The empty copy outlives the fix. Re-pushing those files with changed bytes fixed the un-versioned URLs. But the rendered page kept referencing
?v=5e07f1bf637e, and the edge kept serving the cached empty bodies under that tag. The browser showed the oldclips.mdeven afterlast_commit_hashanddocs_indexed_commithad moved on. Only new file names (and a fresh tab) got around it.
Workaround used
- Re-encode or remux each empty file (same content, new bytes) and
repo pushit; a byte-identical push is a no-op and does not help. - Rename the posters that stayed cached (
-poster-v2.jpg) and update the markdown.
Asks
- Find why the file store ends up with zero-length entries for blobs the repo has. All the affected files went up in multi-file
repo pushcalls, some with 50+ files. - Never serve
200with an empty body for a file whose blob is non-empty: return an error, or fall back to the repo blob the way the CLI's archive path does. - Do not let the edge cache an empty body under a
?v=tag, or purge it when the file's blob changes. - A
page healthcheck for "served size does not match the blob size" would have caught this. Todaypage healthreports no issues for this page.