Skip to content

fix: add <svelte:options runes={true} /> to svelte-5 default error component#15609

Merged
teemingc merged 10 commits into
mainfrom
copilot/fix-error-svelte-runes-mode
Mar 27, 2026
Merged

fix: add <svelte:options runes={true} /> to svelte-5 default error component#15609
teemingc merged 10 commits into
mainfrom
copilot/fix-error-svelte-runes-mode

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 27, 2026

  • Add <svelte:options runes={true} /> to packages/kit/src/runtime/components/svelte-5/error.svelte to ensure it compiles in runes mode
  • Add unit test that compiles all svelte-5 runtime components and verifies the output doesn't include legacy flags (renamed to components.spec.js, uses test.each)

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Mar 27, 2026

🦋 Changeset detected

Latest commit: a436bad

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@sveltejs/kit Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copilot AI changed the title [WIP] Fix default svelte 5 error.svelte for runes mode fix: add <svelte:options runes={true} /> to svelte-5 default error component Mar 27, 2026
Copilot AI requested a review from teemingc March 27, 2026 09:40
@teemingc teemingc marked this pull request as ready for review March 27, 2026 10:08
@teemingc teemingc requested a review from GrygrFlzr March 27, 2026 10:18
@teemingc
Copy link
Copy Markdown
Member

@copilot can we add a test that fail without this fix?

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 27, 2026

@copilot can we add a test that fail without this fix?

Added a unit test in 4f70fe6 that compiles error.svelte without passing the runes compiler option and asserts the output doesn't contain svelte/internal/flags/legacy. Without the <svelte:options runes={true} /> directive, the compiled output includes the legacy flag — the test catches that.

@teemingc
Copy link
Copy Markdown
Member

@copilot can we change error.spec.js to components.spec.js and use Vitest's test.each to test all the components in the directory?

…r all svelte-5 components

Agent-Logs-Url: https://github.com/sveltejs/kit/sessions/62c4f134-c2a1-4232-a57a-41888a5b447f

Co-authored-by: teemingc <54401897+teemingc@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 27, 2026

@copilot can we change error.spec.js to components.spec.js and use Vitest's test.each to test all the components in the directory?

Done in 4779a1d. Renamed to components.spec.js and switched to test.each — it now dynamically reads all .svelte files in the directory and runs the legacy-flag assertion on each one (currently error.svelte and layout.svelte). New components added to that directory will be picked up automatically.

Comment thread packages/kit/src/runtime/components/svelte-5/components.spec.js Outdated
Copy link
Copy Markdown
Member

@GrygrFlzr GrygrFlzr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The assert part definitely needs to be changed to use public API instead of relying on the internal compiled output.

The components can either be a static predefined list, or if it remains dynamic, should at minimum explicitly account for the case where it finds zero .svelte files.

Comment thread packages/kit/src/runtime/components/svelte-5/components.spec.js Outdated
Comment thread packages/kit/src/runtime/components/svelte-5/components.spec.js Outdated
Comment thread packages/kit/src/runtime/components/svelte-5/components.spec.js
@teemingc teemingc requested a review from GrygrFlzr March 27, 2026 17:27
@teemingc teemingc merged commit 734992d into main Mar 27, 2026
29 checks passed
@teemingc teemingc deleted the copilot/fix-error-svelte-runes-mode branch March 27, 2026 17:53
@github-actions github-actions Bot mentioned this pull request Mar 26, 2026
elliott-with-the-longest-name-on-github pushed a commit that referenced this pull request Apr 3, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @sveltejs/kit@2.56.0

### Minor Changes

- breaking: rework client-driven refreshes
([#15562](#15562))


- breaking: stabilize remote function caching by sorting object keys
([#15570](#15570))


- breaking: add `run()` method to queries, disallow awaiting queries
outside render ([#15533](#15533))


- feat: support TypeScript 6.0
([#15595](#15595))


- breaking: isolate command-triggered query refresh failures per-query
([#15562](#15562))


- feat: use `hydratable` for remote function transport
([#15533](#15533))


- feat: allow `form` fields to specify a default value (`field.as(type,
value)`) ([#15577](#15577))

### Patch Changes

- fix: don't request new data when `.refresh` is called on a query with
no cache entry ([#15533](#15533))


- fix: allow using multiple remote functions within one async derived
([#15561](#15561))


- fix: avoid false-positive overridden Vite `base` setting warning when
setting a `paths.base` in `svelte.config.js`
([#15623](#15623))


- fix: manage queries in their own `$effect.root`
([#15533](#15533))


- fix: avoid `inlineDynamicImports` deprecation warning when building
the service worker with Vite 8
([#15550](#15550))


- fix: correctly escape backticks when precomputing CSS
([#15593](#15593))


- fix: discard obsolete forks before finishing navigation
([#15634](#15634))


- chore: tighten up override implementation
([#15562](#15562))


- fix: ensure the default Svelte 5 `error.svelte` file uses runes mode
([#15609](#15609))


- fix: deduplicate same-cache-key `batch` calls during SSR
([#15533](#15533))


- fix: decrement pending_count when form callback doesn't call submit()
([#15520](#15520))

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
ampelectrecuted pushed a commit to amp-mod/aw3 that referenced this pull request Apr 4, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@sveltejs/kit](https://svelte.dev) ([source](https://github.com/sveltejs/kit/tree/HEAD/packages/kit)) | [`2.55.0` → `2.56.1`](https://renovatebot.com/diffs/npm/@sveltejs%2fkit/2.55.0/2.56.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@sveltejs%2fkit/2.56.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sveltejs%2fkit/2.55.0/2.56.1?slim=true) |

---

### Release Notes

<details>
<summary>sveltejs/kit (@&#8203;sveltejs/kit)</summary>

### [`v2.56.1`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2561)

[Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.56.0...@sveltejs/kit@2.56.1)

##### Patch Changes

- chore: update JSDoc ([#&#8203;15640](sveltejs/kit#15640))

### [`v2.56.0`](https://github.com/sveltejs/kit/blob/HEAD/packages/kit/CHANGELOG.md#2560)

[Compare Source](https://github.com/sveltejs/kit/compare/@sveltejs/kit@2.55.0...@sveltejs/kit@2.56.0)

##### Minor Changes

- breaking: rework client-driven refreshes ([#&#8203;15562](sveltejs/kit#15562))

- breaking: stabilize remote function caching by sorting object keys ([#&#8203;15570](sveltejs/kit#15570))

- breaking: add `run()` method to queries, disallow awaiting queries outside render ([#&#8203;15533](sveltejs/kit#15533))

- feat: support TypeScript 6.0 ([#&#8203;15595](sveltejs/kit#15595))

- breaking: isolate command-triggered query refresh failures per-query ([#&#8203;15562](sveltejs/kit#15562))

- feat: use `hydratable` for remote function transport ([#&#8203;15533](sveltejs/kit#15533))

- feat: allow `form` fields to specify a default value (`field.as(type, value)`) ([#&#8203;15577](sveltejs/kit#15577))

##### Patch Changes

- fix: don't request new data when `.refresh` is called on a query with no cache entry ([#&#8203;15533](sveltejs/kit#15533))

- fix: allow using multiple remote functions within one async derived ([#&#8203;15561](sveltejs/kit#15561))

- fix: avoid false-positive overridden Vite `base` setting warning when setting a `paths.base` in `svelte.config.js` ([#&#8203;15623](sveltejs/kit#15623))

- fix: manage queries in their own `$effect.root` ([#&#8203;15533](sveltejs/kit#15533))

- fix: avoid `inlineDynamicImports` deprecation warning when building the service worker with Vite 8 ([#&#8203;15550](sveltejs/kit#15550))

- fix: correctly escape backticks when precomputing CSS ([#&#8203;15593](sveltejs/kit#15593))

- fix: discard obsolete forks before finishing navigation ([#&#8203;15634](sveltejs/kit#15634))

- chore: tighten up override implementation ([#&#8203;15562](sveltejs/kit#15562))

- fix: ensure the default Svelte 5 `error.svelte` file uses runes mode ([#&#8203;15609](sveltejs/kit#15609))

- fix: deduplicate same-cache-key `batch` calls during SSR ([#&#8203;15533](sveltejs/kit#15533))

- fix: decrement pending\_count when form callback doesn't call submit() ([#&#8203;15520](sveltejs/kit#15520))

</details>

---

### Configuration

📅 **Schedule**: (in timezone UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDQuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwNC4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJLaW5kL0RlcGVuZGVuY2llcyJdfQ==-->

Reviewed-on: https://codeberg.org/ampmod/aw3/pulls/57
Co-authored-by: AmpMod Bot <ampmod-bot@noreply.codeberg.org>
Co-committed-by: AmpMod Bot <ampmod-bot@noreply.codeberg.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants