OCaml HTTP server now serves /static/* files with MIME types, immutable
cache headers, and in-memory caching. Computes MD5 hashes for JS/WASM
files and injects them as ?v= cache-busting query params.
Inline CSS: reads tw.css + basics.css at startup, injects into
<style id="sx-css"> tag. Pages now render with full Tailwind styling.
Shell statics now include real file hashes:
sx-js-hash, body-js-hash, wasm-hash — 12-char MD5 hex
Docker compose: mounts shared/static as /app/static for the container.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>