v0.8.21
leptos-rs/leptosv0.8.21Sep 26, 2026by gbj
Upgrading?
AI Summary
This release focuses on fixing critical rendering bugs in `<For/>` components and Suspense, alongside improvements to the Islands router and wasm-split prefetch machinery. It includes dependency updates, macro refactoring, and introduces a simplified `use_nonce()` API.
Key Highlights
- Fixed `<For/>` key handling and hydration order to ensure correct rendering
- Resolved concurrency issues with Suspense and error boundary notifications
- Fixed Islands router branch marker and wasm-split prefetch panic
- Refactored macros to use syn diagnostics instead of proc-macro-error2
- Always expose `use_nonce()` function for nonces
New Features
- Always expose `use_nonce()`
- Convert subfield into MaybeProp in reactive stores
Full Release Notes
## What's Changed * chore(deps): bump actions/cache from 5 to 6 by @dependabot[bot] in https://github.com/leptos-rs/leptos/pull/4822 * fix: handle `<For/>` keys correctly in non-async HTML rendering (see #4780, #4833) by @gbj in https://github.com/leptos-rs/leptos/pull/4834 * fix: notify error boundaries in LocalResource-only Suspense (closes #4826) by @gbj in https://github.com/leptos-rs/leptos/pull/4827 * feat(leptos): always expose use_nonce() (simplified version of #4825) by @Ofenhed in https://github.com/leptos-rs/leptos/pull/4828 * chore: make sure failing tests in CI actually cause failures by @gbj in https://github.com/leptos-rs/leptos/pull/4840 * fix: include submit input value in FormData when submitting Form by @dav-wolff in https://github.com/leptos-rs/leptos/pull/4836 * Fix/islands router branch marker off by one by @seanaye in https://github.com/leptos-rs/leptos/pull/4832 * Fix two concurrency issues with Suspense by @gbj in https://github.com/leptos-rs/leptos/pull/4853 * fix: don't panic in the wasm-split prefetch machinery when its lock is unavailable by @JohnHarrison in https://github.com/leptos-rs/leptos/pull/4830 * Assorted islands-router fixes by @gbj in https://github.com/leptos-rs/leptos/pull/4855 * fix: check for resource reads inside Signal/Memo used as attribute values (see #4856) by @gbj in https://github.com/leptos-rs/leptos/pull/4859 * fix(reactive_graph): ignore dropped local-resource listener by @adrianncovaci in https://github.com/leptos-rs/leptos/pull/4856 * feat(reactive_stores): convert a subfield into MaybeProp by @svieujot in https://github.com/leptos-rs/leptos/pull/4867 * fix(leptos): nonce incorrectly generated for wasm preload by @Ofenhed in https://github.com/leptos-rs/leptos/pull/4844 * fix: UnsyncCallback/Callback comments by @geovie in https://github.com/leptos-rs/leptos/pull/4868 * fix(examples): prevent Trunk auto-reload during browser tests by @larstobi in https://github.com/leptos-rs/leptos/pull/4872 * fix(examples): await the add-1000-counters click by @larstobi in https://github.com/leptos-rs/leptos/pull/4871 * fix(ci): use locked dependencies when installing Trunk by @larstobi in https://github.com/leptos-rs/leptos/pull/4877 * refactor(macros): replace direct proc-macro-error2 usage with syn diagnostics by @larstobi in https://github.com/leptos-rs/leptos/pull/4862 * chore(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in https://github.com/leptos-rs/leptos/pull/4841 * chore(deps): bump actions-rust-lang/setup-rust-toolchain from 1 to 2 by @dependabot[bot] in https://github.com/leptos-rs/leptos/pull/4876 * fix: hydrate `<For>` children in the same order we SSR them (closes #4881) by @gbj in https://github.com/leptos-rs/leptos/pull/4882 ## New Contributors * @dav-wolff made their first contribution in https://github.com/leptos-rs/leptos/pull/4836 * @adrianncovaci made their first contribution in https://github.com/leptos-rs/leptos/pull/4856 * @svieujot made their first contribution in https://github.com/leptos-rs/leptos/pull/4867 * @larstobi made their first contribution in https://github.com/leptos-rs/leptos/pull/4872 **Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.8.19...v0.8.20
Related Repositories
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one