Cache-bust wasm scripts, fix orchestration.sx paren balance

- Add wasm_hash (MD5 of sx_browser.bc.js) to shell template
- Script tags: /wasm/sx_browser.bc.js?v={hash}, /wasm/sx-platform.js?v={hash}
- Pass wasm_hash through helpers.py and ocaml_bridge.py
- Fix missing close paren in bind-sse-swap (broke SX parsing)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-25 14:21:51 +00:00
parent 1e42eb62a2
commit 998536f52d
5 changed files with 37 additions and 10 deletions

View File

@@ -17,8 +17,10 @@
(pages-sx :as string?) (page-sx :as string?)
(body-html :as string?)
(asset-url :as string) (sx-js-hash :as string) (body-js-hash :as string?)
(wasm-hash :as string?)
(head-scripts :as list?) (inline-css :as string?) (inline-head-js :as string?)
(init-sx :as string?) (body-scripts :as list?))
(init-sx :as string?) (body-scripts :as list?)
(use-wasm :as boolean?))
(<>
(raw! "<!doctype html>")
(html :lang "en"
@@ -83,7 +85,12 @@ details.group{overflow:hidden}details.group>summary{list-style:none}details.grou
(raw! (or pages-sx "")))
(script :type "text/sx" :data-mount "#sx-root"
(raw! (or page-sx "")))
(script :src (str asset-url "/scripts/sx-browser.js?v=" sx-js-hash))
(if use-wasm
(let ((wv (or wasm-hash "dev")))
(<>
(script :src (str asset-url "/wasm/sx_browser.bc.js?v=" wv))
(script :src (str asset-url "/wasm/sx-platform.js?v=" wv))))
(script :src (str asset-url "/scripts/sx-browser.js?v=" sx-js-hash)))
;; Body scripts — configurable per app
;; Pass a list (even empty) to override defaults; nil = use defaults
(if (not (nil? body-scripts))