Root cause: process-elements during WASM boot-init marks elements as
processed but process-one silently fails (effect functions don't execute
in WASM boot context). Deferred process-elements then skips them.
Fixes:
- boot-init: defer process-elements via set-timeout 0
- hydrate-island: defer process-elements via set-timeout 0
- process-elements: move mark-processed! after process-one so failed
boot-context calls don't poison the flag
- observe-intersection: native JS platform function (K.registerNative)
to avoid bytecode callback issue with IntersectionObserver
- Remove SX observe-intersection from boot-helpers.sx (was overriding
the working native version)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>