Root cause identified: :ref attribute on DOM elements inside defisland
triggers dict-set!/reduce error in WASM kernel hydration system.
Minimal repro:
(defisland ~test ()
(let ((el-ref (signal nil)))
(div (div :ref (fn (el) (reset! el-ref el)) ""))))
→ "dict-set!: dict key val (in reduce → reduce → for-each)"
Without :ref: works perfectly (signals, effects, canvas FFI,
break-lines, pretext-layout-lines all functional).
Working version: full Pretext with 3 controls + effect + layout
computation, outputs text via (deref result). 34 disposers, no error.
Just needs :ref fix to add DOM rendering.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>