host: doc — blog SPA complete + live on the WASM OCaml kernel
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 27s

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-29 11:11:18 +00:00
parent 689dae7d0c
commit 059897970e

View File

@@ -1,5 +1,24 @@
# Host blog → SPA via the SX-htmx engine (WASM OCaml kernel)
## ✅ COMPLETE 2026-06-29 — live SPA on the WASM OCaml kernel
blog.rose-ash.com is now a single-page app: the browser boots the SAME OCaml
kernel the server runs (compiled to WASM), `sx-boost` fragment-swaps every link
into #content with URL push + working back button, no full reload. Verified:
native host conformance 271/271; `lib/host/playwright/spa-check` 4/4 in chromium;
LIVE blog.rose-ash.com boost 19/19 + click nav + zero errors.
The boot crash was the crypto stack assuming 63-bit int (fixed in `fce9e0c6`).
The boost then needed six more source-load/boost-path fixes (commit `689dae7d`):
import double-apply (library_loaded_p got a key not a spec), unloaded-import
crash (library_exports nil -> empty dict), value_to_js missing Integer (broke
dom-query-all -> only 1 link boosted), browser-same-origin? rejecting relative
URLs, dom-query-in undefined (= dom-query), and lazy-deps never preloaded under
source fallback (CEK can't lazy-resolve). Everything below is the history.
---
Turn the blog (lib/host/blog.sx) into a single-page app using the in-repo SX
hypermedia engine (web/engine.sx — "our htmx"): boot the **WASM OCaml kernel**
(the same evaluator the server runs) in the browser, and `sx-boost` every