# What changed in svelte-check

> 48 changes in svelte-check 4 from its official release notes, upgrade guides and advisories: 2 breaking, 4 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/svelte-check/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## svelte-check 4

### Breaking changes

- Disallows using --tsgo together with --tsgo-experimental-api. (4.7.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.7)
- tsconfig errors are now reported when using this experimental API. (4.7.2) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.2)

### New APIs and options

- Adds a --config option to svelte-check. (4.7.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.0)
- Adds svelte-check support for tsgo through an experimental API. (4.7.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.0)
- Adds the --incremental flag. (4.4.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.0)
- Adds the --tsgo flag. (4.4.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.0)

### Performance

- Includes various optimizations to the AST walk. (4.4.6) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.6)

### Behavior and default changes

- Props for +error.svelte are available with zero configuration. (4.7.3) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.3)
- Uses machine format when run by Claude Code. (4.3.4) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.3.4)

### Tooling

- svelte-check can now read Svelte config from vite.config.js/ts. (4.6.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.6.0)
- Adds support for Svelte 5 declaration tags. (4.5.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.5.0)
- Adds support for Svelte config files with `.ts` and `.mts` extensions. (4.5.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.5.0)
- Adds support for TypeScript 6.0. (4.4.6) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.8), [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.6)

### Fixes and other changes

- Modern CSS properties such as corner-shape are now recognised. (4.7.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.7)
- Default tsconfig include logic now aligns with tsc and tsserver. (4.7.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.7)
- Recognises the real script and style start tags when a matching token also appears inside the other tag. (4.7.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.7)
- Resolves symlinked packages when importing their .svelte files, avoiding duplicated types. (4.7.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.7)
- Reports a failed TypeScript compiler process and exits non-zero when a run fails. (4.7.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.7)
- The cache directory is ignored in watch mode with --tsgo or --incremental. (4.7.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.7)
- Elements from Svelte's svelte-html.d.ts are typed with --tsgo or --incremental, as in the language server. (4.7.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.7)
- Checks all files with --tsgo or --incremental when tsconfig has no include. (4.7.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.7)
- Handles SvelteKit 3 configs merged at the top level. (4.7.6) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.6)
- No longer logs an error for Vite configs without a Svelte plugin. (4.7.6) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.6)
- Prevents a silent error during start-up caused by an unhandled promise. (4.7.5) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.5)
- Adds support for TypeScript 7 Stable when installed under an npm alias. (4.7.4) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.4)
- The tsgo binary path is resolved using package.json. (4.7.2) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.2)
- Correctly parses the --tsgo-experimental-api flag. (4.7.1) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.1)
- Loads the ESM version of Vite. (4.7.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.0)
- Stops excluding workspaces under dot-prefixed ancestors. (4.7.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.7.0)
- Props named `slot` are now properly handled inside Svelte 5 snippets. (4.5.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.5.0)
- Flush stdout and stderr before exit. (4.4.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.7)
- Report diagnostics in tsconfig.json. (4.4.7) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.7)
- Prevents an error caused by an escape sequence in an attribute. (4.4.6) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.6)
- Resolves Svelte files with NodeNext when using --incremental or tsgo. (4.4.6) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.6)
- Prevents the config loading message from appearing when running svelte-check in incremental mode. (4.4.6) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.6)
- Async kit handler return types now use Promise<Response>, correcting their type declaration. (4.4.5) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.5)
- Resolves Svelte files under path aliases in --incremental/tsgo mode. (4.4.4) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.4)
- Detection of the lang="ts" attribute is more robust. (4.4.4) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.4)
- Passes the filename to warningFilter. (4.4.4) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.4)
- Respect @ts-ignore and similar comments within tags. (4.4.3) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.3)
- Shims are now resolved correctly when using --incremental/tsgo mode. (4.4.2) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.2)
- Generated tsconfig.json now includes references in --incremental/tsgo mode. (4.4.2) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.2)
- Handles relative imports that reach outside the working directory when using these flags. (4.4.1) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.1)
- Supports SvelteKit zero types when running svelte-check with --incremental. (4.4.1) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.1)
- Machine output is properly used by default for Claude Code. (4.4.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.0)
- The file watcher ignores Unix domain sockets to prevent crashes. (4.4.0) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.4.0)
- Types and snippets referencing $store are no longer hoisted. (4.3.6) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.3.6)
- Ensures the await-block type is preserved in the latest Svelte version. (4.3.5) — [release notes](https://github.com/sveltejs/language-tools/releases/tag/svelte-check%404.3.5)
