releases.shpreview
Home/Svelte/SvelteKit

SvelteKit

Full-stack web framework built on Svelte with file-based routing, SSR, and adapter-based deployment.

Mon
Wed
Fri
JunJulAugSepOctNovDecJanFebMarAprMayJun
Less
More
Releases33Avg Interval2dAvg Cadence14/mo
Minor Changes
  • feat: allow queries to refresh other queries (#16012)
Patch Changes
  • fix: dedupe remote data (#15991)

  • fix: skip client build if all routes have CSR disabled (#15936)

Minor Changes
  • feat: explicit env vars (#15934)
Patch Changes
  • fix: remove check for svelte.config.js before running sync (#15946)

  • fix: generate a placeholder tsconfig.json to squelch sync-time warnings (#15948)

  • fix: allow use of $app/env/public in service workers (#15950)

Patch Changes
  • fix: regression where routes starting and ending with a route group are not matched correctly (#15903)
Minor Changes
  • breaking: the .run() method has been removed from remote queries on both the client and the server. Use await query() directly instead — it now works everywhere (#15779)

  • feat: remote queries can now be awaited in any context (event handlers, module scope, async callbacks), not just inside reactive contexts. The cache is shared across reactive and non-reactive subscribers, so awaiting a query in an event handler will dedupe with components that have already subscribed to the same query. (#15779)

  • feat: live query instances are now themselves async-iterable (#15878)

  • feat: add programmatic submit method to form remote function instances (#15657)

  • feat: pass form remote function instance into enhance callback (#15657)

Patch Changes
  • fix: resolve the app payload without using process.env.NODE_ENV (#15852)

  • fix: support exactOptionalPropertyTypes for optional route params (#15825)

  • fix: correctly send true value to the server for 'submit' and 'hidden' form fields (#15858)

  • fix: avoid build warnings about undefined universal hooks (#15895)

  • fix: prefer default error page when failing to decode the URL pathname (#15744)

  • fix: disable link prefetching on slow internet connections (#15885)

  • fix: allow routes ending with optional parameters next to more specific routes (#15861)

  • fix: remove reliance on Content-Length header in deserialize_binary_form, which caused failures when proxies (e.g. Vercel, Azure) strip the header and use chunked transfer encoding (#15796)

Minor Changes
  • 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)

Patch Changes
  • 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)

Minor Changes
  • 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)

Patch Changes
  • 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)

Patch Changes
  • fix: better validation for redirect inputs (10d7b44)

  • fix: enforce BODY_SIZE_LIMIT on chunked requests (3202ed6)

  • fix: use default values as fallbacks (#15680)

  • fix: relax form typings for union types (#15687)

Minor Changes
  • feat: return boolean from submit to indicate submission validity for enhanced form remote functions (#15530)
Patch Changes
  • 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)

Minor Changes
  • feat: allow error boundaries to catch errors on the server (#15308)
Patch Changes
  • chore: upgrade devalue (#15535)

  • fix: don't wait for remote functions that are not awaited in the template (#15280)

  • feat: allow resolve() to accept pathnames with a search string and/or hash (#15458)

  • chore: remove deprecation warnings for config.kit.files.* options when validating the Svelte config file (#15482)

  • fix: handles form target attribute in remote form redirects (#15457)