@sveltejs/kit@3.0.0

Major Changes

-

breaking: move remote function types to $app/server(#16740)

-

breaking: remove experimental.handleRenderingErrorsflag (#16265)

-

breaking: make getRequestandsetResponsesynchronous (#16280)

-

breaking: TypeScript 6 is now the minimum required version (#15930)

-

breaking: refresh all load functions/queries when clicking a link to the current URL (#16572)

-

breaking: move remote function types to $app/server(#16764)

-

breaking: upgrade to cookiev2. Cookie names must now contain only ASCII characters (#13386)

-

breaking: require Node 22 or newer (#12548)

-

major: error when a client-requested single-flight mutation isn't respected by the server, allow the server to explicitly ignore refreshes (#16892)

-

breaking: remove the preloadStrategyoption.modulepreloadwill always be used (#15256)

-

breaking: default the cookie pathoption to'/'(#15398)

-

breaking: remove @sveltejs/kit/node/polyfills(#15430)

-

breaking: add config.kit.output.linkHeaderPreloadto preload using theLinkheader (#15939)

-

breaking: require @sveltejs/vite-plugin-sveltev7 (#15371)

-

breaking: make page.urlimmutable on a type level (#16256)

-

breaking: remove base,assets, andresolveRoutefrom$app/paths(#15507)

-

breaking: remove createEntriesfrom theBuilderobject passed to adapter functions (#15509)

-

breaking: return no content for 204 responses (#16200)

-

breaking: rename Pathnametype toPathandAssettoAssetPath(#16430)

breaking: remove leading/fromPathandAssetPath

-

breaking: handle'sresolveis now typed to always return aPromise(#16352)

-

breaking: remove Serverconstructor andSSRManifestfrom public types (#16876)

-

breaking: require Svelte config options to be passed through the Vite plugin (#16007)

-

breaking: form action responses now use the HTTP status code returned from fail(#16200)

-

breaking: write tsconfig to node_modules/$app/tsconfig(#16458)

-

breaking: move defineParamsand associated types to@sveltejs/kit/params(#16716)

-

breaking: remove the deprecated CSRF checkOriginoption in favor oftrustedOrigins(#15437)

-

breaking: the deltaproperty now only exists forpopstatenavigation events (#15522)

-

breaking: change form.errortype fromanytoApp.Error | undefined(#16245)

-

breaking: remove deprecated pragmaheader in version polling for improved CORS support (#15428)

-

breaking: gotonow rejects when called with a URL that does not resolve to a route within the app, matching the existing behaviour for external URLs (#16164)

-

breaking: run all errors through the handleErrorhook (#16664)

-

breaking: require Svelte 5.56.4 or newer (#15371)

-

breaking: error on event.url,event.paramsandevent.routeaccess inside queries (#16452)

-

breaking: enhanced cross-page form actions now navigate to the action page on success and failure, matching native form behavior (#16684)

-

breaking: delete $service-workermodule (#16450)

-

breaking: move defineEnvVarsto@sveltejs/kit/env(#16375)

-

breaking: nested server-only directories (#15685)

-

feat: allow adapters to provide additional Vite plugins (#16206)

-

breaking: replace the $libalias with#liband removefiles.libconfig. (#16360)

-

breaking: remove #libdefinition frompaths; requires explicit module extensions as a result (#16736)

-

chore: change error,isHttpError,redirect, andisRedirectto refer to public type instead of internal class (#13036)

-

breaking: move hooks-related types to @sveltejs/kit/hooks(#16737)

-

breaking: add 'error' result type to preloadData(#12579)

-

breaking: detect new deployments on data, remote, and form action responses, tab focus, and visibility change, and default version.pollIntervalto 1 hour (#16496)

-

breaking: disallow cross-origin form submissions without a Content-Typeheader (#16347)

-

breaking: Server-only directories ( /server/in the path) are now treated as server-only everywhere inside the project (exceptsrc/routesand the assets directory) (#16360)

-

breaking: configexported from a universal route file takes precedence over a server one (#16400)

-

breaking: require Vite 8. Provides new functionality even for existing Vite 8 users such as faster builds with Vite hook filters and more powerful SvelteKit adapters with the Vite environment API (#15371)

-

breaking: remove data-sveltekit-*option'off'in favour offalse(#15907)

-

breaking: move tracing out of the experimental namespace and remove the instrumentation flag (#16260)

-

breaking: add kit.paths.originconfig option, removekit.prerender.originand theadapter-nodeORIGINenvironment variable (#16161)

-

breaking: move Page,ReadonlyURLandReadonlyURLSearchParamsfrom@sveltejs/kitto$app/state(#16694)

-

breaking: remove $app/stores(#15499)

-

breaking: add refreshAlland deprecateinvalidateAll(#16289)

-

breaking: reject query parameters beginning with x-sveltekit-(#17125)

-

breaking: disallow *.remote.ts/jsfiles unlessexperimental.remoteFunctionsis enabled (#16247)

-

breaking: replace the noScrollandkeepFocusoptions ofgotowith a singleresetoption, and thedata-sveltekit-noscrollanddata-sveltekit-keepfocusattributes withdata-sveltekit-reset(#16558)

-

breaking: don't abort navigation when calling invalidate(All)during navigation (#16188)

-

breaking: consistent special filename patterns (#16382)

-

breaking: allow handleErrorto influence status code (#16162)

-

breaking: delegate CORS handling to Vite for static directory requests during development (#16357)

-

breaking: require vite@^8.0.12, the first Vite 8 release bundling stablerolldown1.0.0 (#16134)

-

breaking: only include routes with a +pageor+serverinRouteId(#16580)

-

breaking: require Node 22.17 (#16597)

-

breaking: deprecate error(status, {...})in favour oferror(status, message, {...})(#16540)

-

breaking: replace the builder.generateManifestwithbuilder.generateServerInstanceandbuilder.manifest(#16875)

-

breaking: forbid external redirects by default (#16198)

-

breaking: separate adapter Vite plugins into preandpost(#16711)

-

breaking: remove param files in folder in favor of params.js/tsfile (#16189)

-

breaking: move env-related types to @sveltejs/kit/env(#16739)

-

breaking: preloadCodenow takes a route ID (e.g./blog/[slug]) instead of a pathname. Route IDs are not prefixed withpaths.base(#16576)

-

breaking: move BeforeNavigate,OnNavigate,AfterNavigate,Navigation,NavigationTarget,NavigationType,GotoOptionsand theNavigation*variant types from@sveltejs/kitto$app/navigation(#16694)

-

breaking: move ActionResultandSubmitFunctionfrom@sveltejs/kitto$app/forms(#16694)

-

breaking: remove handleValidationErrorand pass remote function validation errors tohandleErrorwithkind: 'validation'(#16672)

-

breaking: remove deprecated .run()method from live queries (#16573)

Minor Changes

-

feat: allow hyphens in param and matcher names (#16284)

-

feat: add $app/manifestmodule withimmutable,assets,prerendered, androutesexports (#16372)

-

feat: ignore files with + prefix if they contain test/spec/stories (#16715)

-

feat: add ErrorPropsto generated types (#16272)

-

feat: support sourcemaps in production (#16412)

-

feat: return the list of compressed files from builder.compress(#16566)

-

feat: better response logging (#16744)

-

feat: warn when tsconfig doesn't exclude service worker (#16645)

-

feat: validate that all remote form fields were created with form.fields.foo.as(...) (#16331)

-

feat: support function validators for environment variables (#16402)

-

feat: use type: 'module'for service worker registrations (#16169)

-

feat: allow adapters to receive the Svelte config as a function argument when adding Vite plugins (#16986)

-

feat: add shallow routing to gotoand deprecatepushStateandreplaceState(#16449)

-

feat: abort request.signalwhen the response closes prematurely, via a newresponseoption forgetRequest(#16793)

-

feat: make $app/pathsimportable in service workers (#16441)

-

feat: pass the project-relative source filenameto thepreloadfilter for fonts (#16443)

-

feat: preserve page state set through goto(..., { state, persistState: true })across reloads (#16449)

-

feat: reinstate $env/static/private,$env/dynamic/private,$env/static/public,$env/dynamic/publicand$app/environmentas deprecated aliases for$app/env/private$app/env/publicand$app/env(#16334)

-

feat: add pageandendpointbooleans to$app/manifest'sroutes, and export aManifestRoutetype (#16594)

-

feat: $app/service-workermodule (#16458)

-

feat: resolve paths using the Vite config rootoption instead ofprocess.cwd()to better support monorepo configurations such as Vitest workspaces (#15469)

-

feat: better error logging (#16374)

-

feat: add PageRouteIdandEndpointRouteIdto$app/types(#16594)

-

feat: better tsconfig validation (#16458)

-

feat: add dirty()property to form fields (#16208)

-

feat: support the QUERYHTTP method in+server.js(#16782)

-

feat: allow adapters to override getRequestandsetResponseduringvite devandvite preview(#16753)

-

chore: deprecate Responsehelpers in favor of platform-provided alternatives (#15448)

-

feat: add cookies.parsemethod (#16203)

-

chore: deprecate export const snapshotin favour of thesnapshothelper (#16687)

-

feat: add snapshothelper to$app/navigation(#16685)

-

feat: support custom values in page.stateviatransporthook (#16662)

-

fix: default cookies to securetofalseduring development (#16462)

-

feat: warn when naively proxying requests that result in responses with a content-encodingheader (#16633)

-

feat: accept the checked state as a third argument to .as('radio', ...)and.as('checkbox', ...)so that these inputs reset to it after a submission (#16926)

-

feat: add an applyReroutehelper for adapters that support split serverless function deployments (#16665)

Patch Changes

-

fix: prevent scheme-like path segments from causing off-site trailing-slash redirects (#17294)

-

chore: share the action error result between form actions and remote forms (#16835)

-

fix: persist global app state across module graph reloads (#16663)

-

fix: generate valid Pathtypes for routes with optional or rest params, several params in one segment, or escape sequences (#16577)

-

fix: coerce values typed into remote form fields, and only apply the default given to .as()until the field is edited (#16939)

-

fix: blur focused SVG elements before the DOM update on navigation (#16983)

-

fix: support bigint params in server-side route resolution (#17130)

-

chore: build streamed responses from async generators (#16847)

-

fix: generate types when dev server starts (#17034)

-

fix: allow undefinedvalues to be passed to form field.as(...)where applicable (#15681)

-

fix: respect paths.relativeduring development for client files (#17053)

-

fix: validate prerender concurrency (#17145)

-

chore: deprecate builder.rimrafandbuilder.mkdirpin favour ofnode:fsmethods (#16610)

-

fix: manipulate stack trace for errors that happen while generating prerender inputs (#17113)

-

fix: don't treat callable standard schemas as function param matchers (#16403)

-

fix: prevent non-redirect enhanced form results from navigating to another origin (#17293)

-

fix: clarify circular imports from src/env(#17014)

-

fix: keep memory flat when precompressing many files (#16993)

-

fix: render remote form actions while prerendering (#17139)

-

fix: ignore Vitest browser loader HTML transforms (#17092)

-

fix: prevent failed link preloads from causing unhandled promise rejections in production (#17181)

-

fix: resolve generated rootDirs from the project root (#17242)

-

fix: generate route resolution modules as siblings of .htmlpages (#16674)

-

perf: parse large streamed frames in linear time (#16489)

-

fix: keep at most one pending body read at a time when deserializing binary forms (#16783)

-

fix: escape cache-control headers in prerendered HTML (#17293)

-

fix: decode all numeric character references, including above ffff, when crawling prerendered pages (#16611)

-

fix: enforce request body size limits when Content-Type is absent (#17127)

-

fix: include queries refreshed from within another query in the serialized response (#16461)

-

fix: reject malformed streamed data encoding (#16423)

-

perf: cache the default cookie header parse and avoid allocations in cookies.get(#16341)

-

fix: exclude deleted cookies from cookies.getAll()so it stays consistent withcookies.get()(#16297)

-

fix: hide stack traces for internal errors like 404s (#16411)

-

chore: deduplicate repeated CSP directive handling (#16498)

-

fix: render the nearest error page when a form submission receives a non-ActionResult error response (#16308)

-

chore: bump mrmimeto 2.0.1 (#16745)

-

fix: correctly implement Vite plugin hook filters (#16760)

-

fix: ignore nested outDir files outside generated (#17150)

-

fix: defer query.refresh()in server commands until after the command body completes (#16225)

-

fix: drain unconsumed request bodies so keep-alive connections don't hang (#16170)

-

fix: keep history.scrollRestorationset tomanualwhen leaving the page, so a document restored from the back/forward cache does not fall back to browser scroll restoration (#17244)

-

fix: resolve service worker and tsconfig.jsonbased on Viterootsetting (#16229)

-

fix: rebuild the dev manifest when route files disappear during an incremental update (#16643)

-

breaking: populate env vars before instrumentation.server.jsis evaluated and update the adapter instrumentation API (#16303)

-

fix: only print prerender progress newline when necessary (#16766)

-

perf: match only unpaired surrogates when escaping HTML (#16407)

-

fix: treat data:protocol URLs as external for redirect (#16392)

-

chore: deduplicate request hashing for serialized fetch responses (#16499)

-

fix: don't treat Object.prototypemembers as param matchers during validation (#16612)

-

fix: generate a neverPathtype when there are no routes (#17228)

-

fix: follow HTTP redirects from authentication proxies when enhancing form submissions (#17106)

-

fix: don't report empty environment variables as missing (#16401)

-

chore: generate the env modules in a single pass (#16833)

-

fix: externalize @opentelemetry/apito prevent bundler chunk colocation betweeninstrumentation.server.jsand application code (#16302)

-

fix: support form fields named after Object prototype properties (#17136)

-

fix: exclude routes without a page or endpoint from routesin$app/manifest, and remove directories with no route files fromLayoutParams(#16588)

-

fix: record a history traversal before resolving its route (#16959)

-

fix: avoid Vite dev server reload on initial page request (#16553)

-

fix: don't set a nullaccept-languageheader on internalfetchsub-requests when the incoming request has none (#16527)

-

fix: reuse SSR-cached fetch responses during hydration when a cross-origin URL is not in canonical form (#16339)

-

fix: correctly detect prerendered paths in server fetchwhenpaths.baseis set (#16525)

-

chore: say what a valid remote form field name looks like when rejecting one (#16938)

-

chore: warn when remote form fields are enumerated in dev (#16940)

-

fix: populate $app/env/*dynamic variables in contexts that don't run the dev server, such asvite-node(#16223)

-

fix: resolve client manifest imports against the Vite root (#16803)

-

fix: properly handle Date objects in form.fields.set (#16168)

-

fix: return 404 for form actions and remote functions whose name is an Object.prototypemember (#16072)

-

fix: no longer throw "An impossible situation occurred" when a server-only module is imported by both server and client code (#16257)

-

fix: respect Vite default log level (#16767)

-

fix: set the focus starting point without a fragment navigation, which leaked a hashchangeto app listeners (#16992)

-

fix: keep a form.forinstance registered when the derived that holds it disconnects and reconnects (#17230)

-

fix: make cookie options optional (#17201)

-

fix: don't duplicate remote modules in the generated manifest (#16532)

-

fix: evict hashed fetch cache entries after mutations (#17146)

-

chore: reuse base64 and text decoding helpers (#16608)

-

fix: explain the removal of $liband$service-workerwhen their imports fail to resolve (#16635)

-

fix: tweak response logging for remote requests (#16865)

-

fix: correctly massage stack traces with async frames (#16633)

-

fix: mark RequestEventproperties asreadonly(#16661)

-

fix: render the nearest +error.svelteat the depth it occupies when an error is thrown during rendering (#16526)

-

fix: support coordinate objects from image inputs in remote forms (#16944)

-

fix: revert route metadata caching to regenerate missing root-route types during sync (#17281)

-

chore: bump @sveltejs/acorn-typescriptto 1.0.12 (#16745)

-

fix: update matchparameter type (#16636)

-

fix: generate sourcemaps for remote modules (#16440)

-

fix: keep hash-router links on the current document when resolving paths (#17107)

-

fix: avoid empty getElementById() call on hash routing navigation (#16448)

-

fix: resolve every module entry point using kit.moduleExtensions(#17043)

-

fix: serve .icofiles withimage/x-iconContent-Type (#16234)

-

chore: bump magic-stringto 1.1.0 (#16745)

-

fix: exclude inlined files from the page's $app/manifestimmutable list (#16531)

-

fix: discard invalidation results when a navigation completes while they load (#16852)

-

fix: avoid client-side code being bundled by Cloudflare Wrangler (#16364)

-

fix: wait for the redirect navigation before remote form submissions resolve (#16765)

-

fix: record the mime types of prerendered paths in the server manifest (#16564)

-

fix: only require the svelte-trusted-htmltrusted-types policy when client-side code is shipped, allowing builds where all pages havecsr: false(#16928)

-

chore: clarify which hooks run during server route resolution (#16397)

-

fix: yield to allow prerender updates to be visible (#16748)

-

fix: make paths.origintype looser (#16215)

-

chore: bump devalueto 5.9.0 (#16745)

-

feat: send periodic keep-aliveSSE comments fromquery.liveto prevent idle-timeout errors (#16063)

-

fix: send an explicit SSE Accept header for query.liverequests to avoid buffering by proxies (#17104)

-

fix: don't touch the query.livestream controller after teardown, and make response cancellation observable via the generator'srequest.signal(#16790)

-

fix: print builder.log.warnmessages to stderr, as documented (#17253)

-

fix: warn if hook files are spelled as "hook" instead of "hooks" (#16483)

-

fix: only suggest a +prefix for route filenames that are valid with the file's extension (#16837)

-

chore: only generate each route's resolution module once when prerendering (#16576)

-

fix: don't throw from remote form validate()if the form unmounts while it is waiting for a tick (#16720)

-

chore: share navigation completion between navigate and shallow routing (#16838)

-

fix: route dev-server response logging through Vite's logger so it respects logLevelandcustomLogger(#16858)

-

fix: skip clean fields when programmatically validating forms (#16208)

-

perf: skip import graph collection outside client environments (#16383)

-

breaking: experimental remote form validate({ includeUntouched })option is nowall(#16208)

-

fix: rerun load functions when the number of values of a tracked search parameter changes (#16495)

-

chore: read build-time config from defines on the server instead of carrying it in options(#16873)

-

fix: avoid client build warning about externalising node:async_hooks(#16244)

-

chore: stop externalizing cookiedependency during build (#16936)

-

fix: reinstate $app/environmentas an alias for$app/env, in case dependencies import it (#15964)

-

fix: preserve paths.basewhenvite previewredirects a prerendered page to the correct trailing slash (#16836)

-

fix: error when reading non-serialized set-cookieheaders viagetSetCookieinload(#16614)

-

fix: walk and copy directories without a stat per file (#16995)

-

perf: avoid quadratic remote form issue merging (#16493)

-

fix: widen remote form fields for union schemas and string enums (#16937)

-

chore: deprecate the aliasoption (#16470)

-

fix: don't attempt to serialize fetch responses when the request body is not a string or TypedArray (#16501)

-

fix: respond to HEADrequests without a body (#17036)

-

chore: replace deprecated Vite dev server APIs (#16961)

-

chore: iterate the query cache maps through a single generator (#16846)

-

fix: handle rejected streamed server data after delayed loads (#16268)

-

fix: don't crash on interactions inside a form whose controls shadow nodeName(#16769)

-

fix: don't replay a preloaded redirect when a later hop of the navigation returns to the route (#16955)

-

fix: prevent path traversal when previewing prerendered pages and data on Windows (#17293)

-

fix: settle a query's pending request in place when its value arrives through set()(#16958)

-

fix: render pages over sibling endpoints without GET or HEAD handlers (#16125)

-

fix: exit build workers after completing their tasks while allowing synchronous exit handlers to run (#17135)

-

fix: prevent infinite loops when server-side queries refresh each other in a cycle during the single-flight drain (#16461)

-

fix: populate versionin service workers (#16434)

-

feat: add field.touched() helper to remote form fields (#14692)

-

fix: respect paths.relativefor server-side route resolution imports (#17056)

-

fix: read the error status of App.Errorin theprerenderandquery.liveremote functions (#16529)

-

fix: resolve remote modules as external during dev prebundling so packages can re-export remote functions (#16426)

-

chore: standardize remote-function and shared form diagnostics (#17277)

-

fix: avoid Promise.withResolversin client remote functions for older browser support (#16777)

-

fix: propagate errors from prerendered remote responses instead of re-running the function (#16535)

-

chore: remove unused helpers (#16834)

-

fix: allow reserved words (e.g. delete,class) as remote function export names (#16264)

-

fix: reset failed <svelte:boundary>on client navigation so a stale+error.svelteis torn down (#16296)

-

fix: clear navigatingwhen a shallow popstate aborts an in-flight navigation (#17118)

-

fix: expand [x+nn]and[u+nnnn]escape sequences when resolving a route id to a pathname (#16570)

-

fix: respect user-set server.corsandpreview.corsconfig instead of overriding them (#16924)

-

fix: respect the status returned from handleErroron the fallback error page served to error-page sub-requests (#16528)

-

fix: restore scroll position after back-forward cache returns (#17255)

-

fix: warn if there are plugins using transformIndexHtml(#16394)

-

fix: refetch route-tracking server data when navigating away from an error page (#16381)

-

fix: allow routes to contain [and]via the[x+5b]and[x+5d]escapes (#16569)

-

chore: use Response.jsoninstead of the deprecatedjsonhelper in runtime responses (#16804)

-

fix: recommend safe include and exclude patterns in tsconfig warning (#17102)

-

chore: remove dependency on kleur (#12548)

-

fix: prevent server-side self-fetch fallbacks from following redirects (#17293)

-

fix: serialize query(...).set(...)/query(...).refresh()values into the rendered HTML when called from within a query during SSR (#16461)

-

chore: configure the server runtime in one place, deprecate Serverin favour of theserverobject written bybuilder.generateServerInstance(#17000)

-

chore: derive content-lengthfrom fixed response bodies insetResponse(#16794)

-

fix: correctly read zero-length files at the end of a binary form payload (#16783)

-

fix: reject fallback handlers on prerendered endpoints (#17140)

-

fix: don't destroy partial-line app output with the prerender progress line (#16750)

-

chore: remove virtual modules (#16813)

-

fix: surface prerender errors during development (#16507)

-

chore: bump cookieto 2.0.1 (#16745)

-

fix: detect $app/serverand$app/env/privateclient imports when SvelteKit is installed inside the project root (#16648)

-

chore: read optionsfrom a single module instead of passing it through the server runtime (#16871)

-

fix: wait for the redirect navigation before prerendered remote functions resolve (#16765)

-

fix: sort directory entries when building the route manifest so node indices are deterministic across runtimes (e.g. Bun and Node) (#16074)

-

fix: skip unnecessary version.jsonchecks ifupdated.currentis alreadytrue(#16518)

-

fix: allow generation of $app/tsconfig without TypeScript installed (#16534)

-

chore: remove dependency on set-cookie-parser(#15384)

-

chore: share the nearest error page walk between client and server (#16774)

-

fix: fall back to the page's form actions when a sibling endpoint has no POST handler (#16349)

-

fix: record client output extensions in builder.mimeTypes(#16908)

-

perf: use a Setto check element ids when validating fragment links during prerendering (#16494)

-

fix: preserve shared client chunk hashes when the app version changes (#16324)

-

fix: include hoisted packages in Vite's server.fs.allowlist (#15998)

-

chore: standardize app template diagnostics (#17250)

-

chore: standardize Vite plugin, build, prerender and adapter diagnostics (#17253)

-

chore: standardize client navigation, preload, snapshot and enhancement diagnostics (#17276)

-

chore: standardize configuration, environment and tsconfig diagnostics (#17251)

-

chore: standardize public API, $app/*and deprecated module diagnostics (#17265)

-

chore: standardize route discovery, parameter and route export diagnostics (#17252)

-

chore: standardize server request, hook and page diagnostics (#17275)

-

fix: preserve metadata on streamed page responses (#16935)

-

fix: only include _app/immutablefiles in$app/manifest'simmutablein the service worker (#16531)

-

chore: remove the dead SSRState.fallbackfield and name the server state fork semantics (#16598)

-

fix: atomically replace route metadata during sync (#17096)

-

fix: import resolved peer dependencies as file URLs so project-relative resolution works on Windows (#16618)

-

fix: preserve sourcemap source paths when adapters copy build output (#17082)

-

fix: log errors caught by the Vite dev server handler (#16550)

-

chore: bump acornto 8.18.0 (#16745)

-

fix: resolve rootper instance of the SvelteKit Vite plugin (#16513)

-

fix: report tsconfig parse errors on Windows (#17251)

-

fix: return root layout server data for error-page data requests to non-existent routes (#16376)

-

fix: prevent prerender crawler from hanging on unterminated unquoted attributes (#17141)

-

fix: prevent await_reactivity_losswarning andstate_unsafe_mutationerror when the new version detector runs after anawait(#16915)

-

fix: redact nested and typed underscore-prefixed remote form fields after invalid submissions (#17128)

-

fix: ignore path casing differences when warning about overridden Vite config on Windows (#16545)

-

fix: return a lightweight 404 instead of rendering the error page for subresource requests (#16463)

-

fix: preserve stripped path prefixes by making trailing-slash redirects relative (#16431)

-

fix: preserve the current URL search parameters when submitting a remote form without JavaScript (#16373)

-

fix: only treat files in node_modules as remote modules when the package has a peer dependency on @sveltejs/kit (#16492)

-

fix: treeshake prerendered remote functions in the right chunks (#16533)

-

fix: correctly serialize Node.js buffers returned from remote functions during SSR (#17158)

-

fix: preserve errors with read-only stack properties (#17180)

-

chore: deduplicate type-stripping logic in tweak_types(#16454)

-

fix: avoid infinite loop when building with --watchflag (#16632)

-

chore: unify the walkandlist_filesfilesystem helpers (#16784)

-

fix: error during development if the adapter does not support instrumentation and it exists (#16548)

-

fix: use mouseover+mousemove for preloading to reduce events (#16325)

-

fix: reject invalid binary form file metadata (#17149)

-

fix: error on server-only imports reachable from hooks or service worker files outside the project root (#16912)

-

fix: write generated tsconfig to node_modules/$app/tsconfig.jsonso that tools with simplified tsconfig resolution can find it (#16589)

-

chore: emit env modules to disk (#16807)

-

fix: more informative error message when running a command inside a query or prerender function (#17293)

-

fix: adjust error overload for optional App.Errorparameters (#16725)

-

fix: prerender and crawl pages whose content-typeheader carries acharsetparameter (#16567)

-

fix: stream promised readresults lazily instead of eagerly buffering them (#16622)

-

fix: copy worker files emitted by the server build to the client output directory (#16929)

-

chore: parse page options and remote modules with Vite's parseSyncinstead ofacorn(#16947)

-

fix: correctly decode [u+nnnn]escape sequences aboveffff(#16611)

-

fix: Reject all pending query promises when a query fails before resolving with a value for the first time (#16890)