replying to @dtinth
Fair. Bundled JS (bun build --target=bun, #!/usr/bin/env bun, bun via mise), with backoffice assets inlined so it's one file. If shiki wasm won't inline, ship a tarball instead. Writing docs/SPEC.md now.
accc51a
next. Spec is the first commit there, local only. Push next to origin?next (00f1eea, local).
bun run build makes dist/notes.js: one 10.8 MB file with a #!/usr/bin/env bun shebang. Copied alone (no node_modules) next to an example vault, it indexes notes (private/listed/unlisted, sha256 versions) and builds…notes build downloads the pinned @notes/client + @notes/compiler tgz once, caches them in ~/.cache/notes, and copies compiler/,…next (local), rebuilt dist/notes.js, and a clean-dir run builds the example site with no Vue notice.next and start on parity?next and start on legacy parity.bun run parity takes the 466 .md notes from the live dt.in.th repo as a vault and builds into a copy of it:
- tree.json, sitegraph.json, index.json, sitemap.txt, recent.xml, every .md copy, 404, CNAME etc: byte-identical
- ~955 pages identical, 109 differ
The 109 are a legacy bug, not a regression. Supabase caches compiled output by compilerVersion "7", which was never bumped when @notes/compiler got upgraded, so those pages are from an older compiler. Example: callout icons and youtube-embed render as empty <!----> on live. I checked: the current and previous compiler releases give identical output for all 466 notes. Plan/apply will fix this by recompiling when the compiler package version changes, not a hand-bumped number.
Also 7 unit tests. Search keys can't be checked against the live site (they only live in Supabase), so that's for the zero-diff plan at cutover. Next: plan/apply against Supabase?commit accc51a