giles
23c88cd1e5
Atomic island hydration: replaceChildren instead of clear+append
...
The hydrate-island function was doing:
(dom-set-text-content el "") ;; clears SSR content — visible flash
(dom-append el body-dom) ;; adds reactive DOM
Now uses:
(host-call el "replaceChildren" body-dom) ;; atomic swap, no empty state
Per DOM spec, replaceChildren is a single synchronous operation — the
browser never renders the intermediate empty state. The MutationObserver
test now checks for content going to zero (visible gap), not mutation
count (mutations are expected during any swap).
Test: "No clobber: clean" — island never goes empty during hydration.
All 8 home features pass: no-flash, no-clobber, boot, islands, stepper,
smoke, no-errors.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 07:51:37 +00:00
..
2026-04-04 12:18:41 +00:00
2026-04-08 21:44:58 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 12:18:41 +00:00
2026-04-04 17:11:12 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 12:18:41 +00:00
2026-04-08 21:44:58 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 12:18:41 +00:00
2026-04-08 21:44:58 +00:00
2026-04-01 23:19:25 +00:00
2026-04-10 07:51:37 +00:00
2026-04-10 07:51:37 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 12:18:41 +00:00
2026-04-04 17:11:12 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 00:08:00 +00:00
2026-04-04 17:11:12 +00:00
2026-04-01 23:19:25 +00:00
2026-04-09 19:29:56 +00:00
2026-04-09 19:29:56 +00:00
2026-04-01 23:19:25 +00:00
2026-04-05 11:39:38 +00:00
2026-04-04 17:11:12 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 22:52:41 +00:00
2026-04-05 21:18:14 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 12:18:41 +00:00
2026-04-04 17:11:12 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 21:31:17 +00:00
2026-04-04 21:31:17 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 22:52:41 +00:00
2026-04-05 13:28:17 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 12:18:41 +00:00
2026-04-05 14:38:28 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 12:18:41 +00:00
2026-04-04 17:11:12 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 00:08:00 +00:00
2026-04-08 21:44:58 +00:00
2026-04-01 23:19:25 +00:00
2026-04-05 11:05:17 +00:00
2026-04-10 06:50:57 +00:00
2026-04-10 06:50:57 +00:00
2026-04-09 19:59:04 +00:00
2026-04-09 19:59:04 +00:00
2026-04-09 19:29:56 +00:00
2026-04-09 19:29:56 +00:00
2026-04-10 06:50:57 +00:00
2026-04-10 06:50:57 +00:00
2026-04-09 19:29:56 +00:00
2026-04-09 19:29:56 +00:00
2026-04-04 12:18:41 +00:00
2026-04-04 17:11:12 +00:00
2026-04-01 23:19:25 +00:00
2026-04-10 06:50:57 +00:00
2026-04-09 19:59:04 +00:00
2026-04-09 19:59:04 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 00:08:00 +00:00
2026-04-04 17:11:12 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 00:08:00 +00:00
2026-04-04 17:11:12 +00:00
2026-04-01 23:19:25 +00:00
2026-04-05 21:18:14 +00:00
2026-04-08 21:44:58 +00:00
2026-04-01 23:19:25 +00:00
2026-04-04 12:18:41 +00:00
2026-04-04 17:11:12 +00:00
2026-04-01 23:19:25 +00:00
2026-04-02 11:31:57 +00:00
2026-04-02 11:31:57 +00:00
2026-04-02 11:31:57 +00:00
2026-04-02 11:31:57 +00:00
2026-04-02 09:37:58 +00:00
2026-04-08 21:44:58 +00:00
2026-04-08 21:44:58 +00:00
2026-04-08 21:44:58 +00:00
2026-04-01 23:19:25 +00:00