feat: support query.batch in requested(...) (#15751)
breaking: on the server, make the promise returned from refresh represent adding the refresh to the map, not the time it takes to run the remote function (#15705)
feat: experimental query.live function (#15705)
fix: unwrap Promise in RemoteCommand output type (#15771)
fix: empty call to .updates() on a command/form invocation means "don't update anything" (#15705)
fix: form.fields.foo.as('checkbox', default_value) now works (#15752)
fix: remote forms with default values defined by field.as('text', defaultValue) now correctly reset to the provided default values once submitted (#15753)
fix: make sure queries always get started correctly (#15705)
fix: allow plain functions as overrides in updates (#15705)
Svelte CLI Community Add-ons, TypeScript 6.0 support in SvelteKit
breaking: require limit in requested (as originally intended) (#15739)
feat: RemoteQueryFunction gains an optional third generic parameter Validated (defaulting to Input) that represents the argument type after schema validation/transformation (#15739)
breaking: requested now yields { arg, query } entries instead of the validated argument (#15739)
fix: allow query().current, .error, .loading, and .ready to work in non-reactive contexts (#15699)
fix: prevent deep_set crash on nullish nested values (#15600)
fix: restore correct RemoteFormFields typing for nullable array fields (e.g. when a schema uses .default([])), so .as('checkbox') and friends work again (#15723)
fix: don't warn about removed SSI comments in transformPageChunk (#15695)
Server-side include (SSI) directives like <!--#include virtual="..." --> are HTML comments that are replaced by servers such as nginx. Previously, removing them in transformPageChunk would trigger a false positive warning about breaking Svelte's hydration. Since SSI comments always start with <!--# and Svelte's hydration comments never do, they can be safely excluded from the check.
Change enhance function return type from void to MaybePromise<void>. (#15710)
fix: throw an error when resolve is called with an external URL (#15733)
fix: avoid FOUC for CSR-only pages by loading styles and fonts before CSR starts (#15718)
fix: reset form result on redirect (#15724)
fix: ensure proper HMR updates for dynamic components (#18079)
fix: correctly calculate @const blockers (#18039)
fix: freeze deriveds once their containing effects are destroyed (#17921)
fix: defer error boundary rendering in forks (#18076)
fix: avoid false positives for reactivity loss warning (#18088)
submit to indicate submission validity for enhanced form remote functions (#15530)fix: use array type for select fields that accept multiple values (#15591)
fix: silently 404 Chrome DevTools workspaces request in dev and preview (#15656)
fix: config.kit.csp.directives['trusted-types'] requires 'svelte-trusted-html' (and 'sveltekit-trusted-url' when a service worker is automatically registered) if it is configured (#15323)
fix: avoid inlineDynamicImports ignored with codeSplitting warning when using Vite 8 (#15647)
fix: reimplement treeshaking non-dynamic prerendered remote functions (#15447)
fix: invalidate @const tags based on visible references in legacy mode (#18041)
fix: handle parens in template expressions more robustly (#18075)
fix: disallow -- in idPrefix (#18038)
fix: correct types for ontoggle on <details> elements (#18063)
fix: don't override $destroy/set/on instance methods in dev mode (#18034)
fix: unskip branches of earlier batches after commit (#18048)
fix: never set derived.v inside fork (#18037)
fix: skip rebase logic in non-async mode (#18040)
fix: don't reset status of uninitialized deriveds (#18054)
breaking: rework client-driven refreshes (#15562)
breaking: stabilize remote function caching by sorting object keys (#15570)
breaking: add run() method to queries, disallow awaiting queries outside render (#15533)
feat: support TypeScript 6.0 (#15595)
breaking: isolate command-triggered query refresh failures per-query (#15562)
feat: use hydratable for remote function transport (#15533)
feat: allow form fields to specify a default value (field.as(type, value)) (#15577)
fix: don't request new data when .refresh is called on a query with no cache entry (#15533)
fix: allow using multiple remote functions within one async derived (#15561)
fix: avoid false-positive overridden Vite base setting warning when setting a paths.base in svelte.config.js (#15623)
fix: manage queries in their own $effect.root (#15533)
fix: avoid inlineDynamicImports deprecation warning when building the service worker with Vite 8 (#15550)
fix: correctly escape backticks when precomputing CSS (#15593)
fix: discard obsolete forks before finishing navigation (#15634)
chore: tighten up override implementation (#15562)
fix: ensure the default Svelte 5 error.svelte file uses runes mode (#15609)
fix: deduplicate same-cache-key batch calls during SSR (#15533)
fix: decrement pending_count when form callback doesn't call submit() (#15520)
MCP in OpenCode, functions in config and error boundaries on the server.
Monthly roundup of new features, bug fixes, and community highlights in the Svelte ecosystem.
fix: correctly handle bindings on the server (#18009)
fix: prevent hydration error on async {@html ...} (#17999)
fix: cleanup superTypeParameters in ClassDeclarations/ClassExpression (#18015)
fix: improve duplicate module import error message (#18016)
fix: reschedule new effects in prior batches (#18021)
fix: hydration comments during hmr (#17975)
fix: null out effect.b in destroy_effect (#17980)
fix: group sync statements (#17977)
fix: defer batch resolution until earlier intersecting batches have committed (#17162)
fix: properly invoke iterator.return() during reactivity loss check (#17966)
fix: remove trailing semicolon from {@const} tag printer (#17962)
fix: ensure $inspect after top level await doesn't break builds (#17943)
fix: resume inert effects when they come from offscreen (#17942)
fix: don't eagerly access not-yet-initialized functions in template (#17938)
fix: discard batches made obsolete by commit (#17934)
fix: ensure "is standalone child" is correctly reset (#17944)
fix: remove nodes in boundary when work is pending and HMR is active (#17932)