This is a pre-release. djust 0.4.4 has shipped since: read the djust 0.4.4 release notes.
Fixed
VDOM patch path traversal skips regular HTML comments (#729) — The JS patcher was counting all HTML comment nodes during path traversal, but the Rust VDOM parser only preserves
<!--dj-if-->placeholders. This caused every page with HTML comments indj-rootto fail VDOM patching and fall back to full HTML recovery.Scroll to top on
dj-navigatelive_redirect —handleLiveRedirect()now scrolls to the top of the page (or to anchor if URL has a hash) afterpushState.
Changed
- Event delegation replaces per-element binding (#730) —
bindLiveViewEvents()no longer scans the DOM after every VDOM patch. Instead, one listener per event type is installed on thedj-rootelement via delegation (e.target.closest('[dj-click]')). This reduces client-side post-patch handling from ~56ms to ~30ms on large pages. Per-element rate limiting preserved via WeakMap.
Added
- Per-phase Rust timing in
render_with_diff()(#730) — Instrumentation measuring template render, html5ever parse, VDOM diff, and HTML serialization. Exposed to Python viaget_render_timing()and propagated to WebSocket response performance metadata.