v0.8.3

leptos-rs/leptosv0.8.3Jul 13, 2025by gbj

AI Summary

A minor patch release featuring a significant rewrite of ownership/context handling for nested routes to fix bugs, along with various bugfixes, dependency updates, and new features.

Key Highlights

  • Rewrite of ownership/context work with nested routes to close bugs
  • Added `regression` example set for e2e testing
  • Added `Resource::write()` and similar functions
  • Fixed meta tags rendering inside synchronously-available Suspense
  • Added `IntoFragment` for `AnyView`

New Features

  • `Resource::write()` method
  • `BrowserFormData::take()` method
  • `IntoFragment` implementation for `AnyView`
  • Inert SVG elements support

Full Release Notes

This is a minor patch release. It does include a significant re-write of how ownership/context work with nested routes (#4091). This should close a number of bugs. However, it's always possible that changes like this introduce regressions. Please test to see whether you have any issues with context and nested routing, and let me know. (We have a new `regression` example set up to add e2e regression tests for issues going forward.)

## What's Changed
* Remove unnecessary "crate::" prefix in a documentation example. by @eroman-code in https://github.com/leptos-rs/leptos/pull/3952
* Fix deprecated parameters js warning by @matchish in https://github.com/leptos-rs/leptos/pull/3956
* fix: correct doc comment for `SsrMode::PartiallyBlocked` (closes #3963) by @marcuswhybrow in https://github.com/leptos-rs/leptos/pull/3964
* fix: add namespace to g in svg portals (closes #3958) by @uber5001 in https://github.com/leptos-rs/leptos/pull/3960
* fix: allow rebuilding `Vec<_>` before it is mounted (closes #3962) by @gbj in https://github.com/leptos-rs/leptos/pull/3966
* chore: unify all deps with min occurrences of 2 by @sabify in https://github.com/leptos-rs/leptos/pull/3854
* chore: upgrade rand and getrandom by @sabify in https://github.com/leptos-rs/leptos/pull/3840
* fix: render identical branch structure for out-of-order and async streaming of Suspense (closes #3970) by @gbj in https://github.com/leptos-rs/leptos/pull/3977
* fix: remove non-existent feature dep in leptos_macro by @sabify in https://github.com/leptos-rs/leptos/pull/3985
* feat: add missing `Resource::write()` and similar functions (see #3959) by @gbj in https://github.com/leptos-rs/leptos/pull/3984
* Fix spelling typos. by @eroman-code in https://github.com/leptos-rs/leptos/pull/3965
* fix: meta tags not properly rendered inside synchronously-available Suspend (closes #3976) by @gbj in https://github.com/leptos-rs/leptos/pull/3991
* fix: smooshed static segments no longer matches the path #3968 by @mskorkowski in https://github.com/leptos-rs/leptos/pull/3973
* Provide error message if file hashing is enabled but no hash file is … by @Bytekeeper in https://github.com/leptos-rs/leptos/pull/3990
* fix: forward missing lint attributes passed to `#[component]` macro by @mondeja in https://github.com/leptos-rs/leptos/pull/3989
* fix: don't use `Arc::ptr_eq` for string comparison (closes #3983) by @gbj in https://github.com/leptos-rs/leptos/pull/3994
* docs: document `#[prop(default = ...)]` and `#[prop(name = ...)]` by @mondeja in https://github.com/leptos-rs/leptos/pull/4003
* Make handle_response_inner public to be used in custom file_and_error (see #3996) by @NCura in https://github.com/leptos-rs/leptos/pull/3998
* Fix context issues with nesting routing by @gbj in https://github.com/leptos-rs/leptos/pull/4015
* Implement AttributeValue for Cow<'_, str> by @sgued in https://github.com/leptos-rs/leptos/pull/4013
* fix: fix `<select>` value by ensuring HTML children are mounted before setting attributes (closes #4005) by @gbj in https://github.com/leptos-rs/leptos/pull/4008
* Minor: bump rkyv to 0.8.10. by @martinfrances107 in https://github.com/leptos-rs/leptos/pull/4018
* remove unnecessary where-clauses by @lcnr in https://github.com/leptos-rs/leptos/pull/4023
* Fix typo by @saikatdas0790 in https://github.com/leptos-rs/leptos/pull/4025
* Update `session_auth_axum` example by @gbj in https://github.com/leptos-rs/leptos/pull/4033
* fix: allow multiple `#[middleware]` macros (closes #4029) by @gbj in https://github.com/leptos-rs/leptos/pull/4048
* fix: suppress false-positive warning when adding children to a `<For/>` that is not currently mounted (closes #3385) by @gbj in https://github.com/leptos-rs/leptos/pull/4050
* fix: allow nested untracked reads without false positives (closes #4032) by @gbj in https://github.com/leptos-rs/leptos/pull/4049
* chore: Fix issue template check boxes by @JosiahParry in https://github.com/leptos-rs/leptos/pull/4031
* fix: do not track anything inside the `async` block of a `Resource` (closes #4060) by @gbj in https://github.com/leptos-rs/leptos/pull/4061
* Tests for #4061 by @metatoaster in https://github.com/leptos-rs/leptos/pull/4064
* fix: hygiene on `view` macro. by @metatoaster in https://github.com/leptos-rs/leptos/pull/4071
* fix: memory leak introduced by #4015 by @gbj in https://github.com/leptos-rs/leptos/pull/4065
* docs: update Tauri project to Leptos v0.8.2 by @mondeja in https://github.com/leptos-rs/leptos/pull/4020
* feat(CI): add checking minimal-versions on release by @sabify in https://github.com/leptos-rs/leptos/pull/3987
* Bugfixes to `reactive_stores` by @elias098 in https://github.com/leptos-rs/leptos/pull/4056
* Fix unresolved path in server side redirect by @TERRORW0LF in https://github.com/leptos-rs/leptos/pull/4074
* feat: allow dereferencing `LocalResource` to an `AsyncDerived` (closes #4063) by @gbj in https://github.com/leptos-rs/leptos/pull/4077
* Fix updates to static class names by @gbj in https://github.com/leptos-rs/leptos/pull/4078
* fix: don't render a comment node for `()` attributes in `template` (closes #4079) by @gbj in https://github.com/leptos-rs/leptos/pull/4080
* Remove unnecessary Option wrapping by @mohe2015 in https://github.com/leptos-rs/leptos/pull/4035
* Removed crate once_cell by @martinfrances107 in https://github.com/leptos-rs/leptos/pull/4083
* Fix compilation because of concurrent conflicting change by @mohe2015 in https://github.com/leptos-rs/leptos/pull/4090
* Use remove_event_listener_with_callback_and_bool when capturing listener by @foldedwave in https://github.com/leptos-rs/leptos/pull/4082
* feat: impl `IntoFragment` for `AnyView` by @gbj in https://github.com/leptos-rs/leptos/pull/4087
* docs: add document on adding `class` and other attributes to `<A/>` component by @gbj in https://github.com/leptos-rs/leptos/pull/4086
* Add template cache for dom. by @bicarlsen in https://github.com/leptos-rs/leptos/pull/4099
* Add inert svg elements. by @bicarlsen in https://github.com/leptos-rs/leptos/pull/4085
* chore(deps): bump autofix-ci/action from 1.3.1 to 1.3.2 by @dependabot[bot] in https://github.com/leptos-rs/leptos/pull/4072
* enhance: handle ../ in aria-current for A tags by @TERRORW0LF in https://github.com/leptos-rs/leptos/pull/4051
* [fix] Update `svg::InertElement` for `dom` cache. by @bicarlsen in https://github.com/leptos-rs/leptos/pull/4100
* Create `svg::InertElement` templates in SVG namespace.  by @bicarlsen in https://github.com/leptos-rs/leptos/pull/4104
* feat: add method `take` for BrowserFormData by @veigaribo in https://github.com/leptos-rs/leptos/pull/4102
* fix: correctly provide context via nested outlets (closes #4088) by @gbj in https://github.com/leptos-rs/leptos/pull/4091
* chore: remove now-unused `join_contexts` API by @gbj in https://github.com/leptos-rs/leptos/pull/4113
* A place to put e2e tests for regression, plus reporting issue caused by #4091. by @metatoaster in https://github.com/leptos-rs/leptos/pull/4114
* chore bump syn and tokio-tungsenite. by @martinfrances107 in https://github.com/leptos-rs/leptos/pull/4117
* Use inert_element for top level <svg> elements. by @bicarlsen in https://github.com/leptos-rs/leptos/pull/4109
* chore(deps): bump the rust-dependencies group across 1 directory with 18 updates by @dependabot[bot] in https://github.com/leptos-rs/leptos/pull/4110
* fix: disable InertElement when global class is provided (closes #4116) by @gbj in https://github.com/leptos-rs/leptos/pull/4119
* chore: Respond to updated clippy rules by @martinfrances107 in https://github.com/leptos-rs/leptos/pull/4120
* Add an example to show server_fn is capable to serve on Cloudflare Workers by @ryo33 in https://github.com/leptos-rs/leptos/pull/4052
* Clean up nested routing ownership and add regression tests by @gbj in https://github.com/leptos-rs/leptos/pull/4115
* fix(examples): remove redundant cf-worker example by @sabify in https://github.com/leptos-rs/leptos/pull/4140
* Fixes #4136: Compile time errors while deriving store by @mskorkowski in https://github.com/leptos-rs/leptos/pull/4142

## New Contributors
* @matchish made their first contribution in https://github.com/leptos-rs/leptos/pull/3956
* @uber5001 made their first contribution in https://github.com/leptos-rs/leptos/pull/3960
* @mskorkowski made their first contribution in https://github.com/leptos-rs/leptos/pull/3973
* @Bytekeeper made their first contribution in https://github.com/leptos-rs/leptos/pull/3990
* @lcnr made their first contribution in https://github.com/leptos-rs/leptos/pull/4023
* @JosiahParry made their first contribution in https://github.com/leptos-rs/leptos/pull/4031
* @elias098 made their first contribution in https://github.com/leptos-rs/leptos/pull/4056
* @mohe2015 made their first contribution in https://github.com/leptos-rs/leptos/pull/4035
* @foldedwave made their first contribution in https://github.com/leptos-rs/leptos/pull/4082

**Full Changelog**: https://github.com/leptos-rs/leptos/compare/v0.8.2...v0.8.3