Changes since 25.3.0-beta1
New features
- Add a playable game to the PWA offline page (#25526) (CP: 25.3) (#25598)
- Add ExtendedClientDetails.getBrowserTime() returning an Instant (#25480) (CP: 25.3) (#25537)
Fixes
- Parse a query string given to UI.navigate(String) (#25591) (CP: 25.3) (#25618, #25563)
- Guard a service worker registration without a push manager (#25612) (CP: 25.3) (#25614, #25611)
- Make ThemeList a live view of the theme attribute (#25590) (CP: 25.3) (#25605)
- Apply a message's stylesheet removals before its adds (#25594) (CP: 25.3) (#25604, #25566)
- Ask the dev server whether a frontend change compiles (#25466) (CP: 25.3) (#25602)
- Treat a null Query sort order list as empty (#25586) (CP: 25.3) (#25601)
- Make the dev-loop skill load before the first edit (#25524) (CP: 25.3) (#25599)
- Allow custom PWA paths in Spring Security (#25501) (CP: 25.3) (#25545, #25493)
- Add support for AppShell stylesheets in service worker precache (#25047) (CP: 25.3) (#25584, #vaadin/hilla5806)
- Rebundle when the bundle misses a template source (#25484) (CP: 25.3) (#25554)
- Rebuild the frontend bundle when PWA offline settings change (#25512) (CP: 25.3) (#25547, #25491)
- Ignore a response that has no request to end (#25469) (CP: 25.3) (#25535, #25467)
- Leave default PWA icons out of a bundle with a custom icon path (#25489) (CP: 25.3) (#25534, #21411)
- Reject a client property value that the bound signal cannot hold (#25438) (CP: 25.3) (#25533)
- Serve the PWA offline stub as same-origin frameable (#25504) (CP: 25.3) (#25530, #25492)
- Keep component formatting failures from hiding state tree errors (#25459)
- Spawn the dev-loop daemon in a session of its own (#25516)
- Route sneaky-thrown checked exceptions from element effects to the error handler (#25508, #25506)
- Share the thread local security context between strategy instances (#25509, 25507, 16953)
- Do not count JavaScript invocations in a closed UI (#25474)
- Pre-bundle the client engine in dev mode (#25470)
- Replay the previous response when a push message is re-sent (#25456)
- Keep parent portal when unmounting a nested adapter (#24661)
- Cancel the pending reconnect when a scheduled one runs (#25457)
- Provision devloop HotswapAgent from flow:install-dev-cli (#25444)
- Restore the client diagnostics lost in the TypeScript port (#25450)
- Keep the Gradle configuration cache entry on a fresh checkout (#25408, #25407)
- Keep components with JS initializers serializable (#25439)