sx_runtime.ml: unwrap_env now accepts Dict and Nil (converts to Env), fixing env-merge when adapter-html.sx passes dict-as-env. sx_server.ml + run_tests.ml: env-merge bindings use Sx_runtime.env_merge (which handles Dict/Nil) instead of requiring strict Env pattern match. sx_primitives.ml: Added scope stack (scope-push!/pop!/peek/emit!, emitted), type predicates (lambda?/island?/component?/macro?), component accessors (closure/name/params/body/has-children?), lambda accessors, for-each-indexed, empty-dict?, make-raw-html, raw-html-content, is-else-clause?. 8 OCaml render tests still fail (env propagation in render-lambda-html) — same adapter code works in JS and in production via Python bridge. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
16 KiB
16 KiB