Skip to content

feat: add snapshot helper to $app/navigation - #16685

Merged
Rich-Harris merged 8 commits into
version-3from
snapshot-helper
Aug 8, 2026
Merged

feat: add snapshot helper to $app/navigation#16685
Rich-Harris merged 8 commits into
version-3from
snapshot-helper

Conversation

@Nic-Polumeyv

@Nic-Polumeyv Nic-Polumeyv commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Implements #16670. Default ids hash the callsite's stack frame; a build-time transform (like remote function ids) could replace that later without breaking anything, since ids are just cache keys.

Supersedes #16346: capture happens at beforeunload, where sessionStorage is synchronous and IndexedDB isn't. Structured clone also strips prototypes from transport-class values, so IndexedDB wouldn't remove the need for devalue. Costs File snapshots.

Deprecating export const snapshot is a separate PR.

@pkg-svelte-dev

pkg-svelte-dev Bot commented Aug 7, 2026

Copy link
Copy Markdown

Install the latest version of @sveltejs/kit from b92e799:

pnpm add https://pkg.svelte.dev/@sveltejs/kit/c/b92e799693b094a4cc384f37df49dacda8e63d92

Open in pkg.svelte.dev: https://pkg.svelte.dev/repos/kit/pr/16685

@changeset-bot

changeset-bot Bot commented Aug 7, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: b92e799

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 Minor

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

@Nic-Polumeyv
Nic-Polumeyv marked this pull request as ready for review August 8, 2026 01:45

@Rich-Harris Rich-Harris left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

this is great!

@Rich-Harris
Rich-Harris merged commit 9703b94 into version-3 Aug 8, 2026
25 of 26 checks passed
@Rich-Harris
Rich-Harris deleted the snapshot-helper branch August 8, 2026 16:24
@Rich-Harris

Copy link
Copy Markdown
Member

well, shit, github's shit-awful UI didn't tell me this was part of a stack until after i merged it, and now it's apparently impossible to merge the other PR?

image

i am baffled by the people who seem to think the stacked PRs implementation is good. it absolutely sucks balls

@Nic-Polumeyv

Copy link
Copy Markdown
Contributor Author

Yeah, I figured I'd dip my toes in to see what it's all about. First time using it. Taking a look

@teemingc teemingc linked an issue Aug 9, 2026 that may be closed by this pull request
Rich-Harris pushed a commit that referenced this pull request Aug 10, 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 version-3, this PR
will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

`version-3` is currently in **pre mode** so this branch has prereleases
rather than normal releases. If you want to exit prereleases, run
`changeset pre exit` on `version-3`.

⚠️⚠️⚠️⚠️⚠️⚠️

# Releases
## @sveltejs/kit@3.0.0-next.17

### Major Changes

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

### Minor Changes

- chore: deprecate `export const snapshot` in favour of the `snapshot`
helper ([#16687](#16687))

- feat: add `snapshot` helper to `$app/navigation`
([#16685](#16685))
## @sveltejs/adapter-netlify@7.0.0-next.7

### Patch Changes

- fix: import the generated manifest via `pathToFileURL`, which handles
special characters in the project path
([#16649](#16649))
- Updated dependencies
[[`c66e589`](c66e589),
[`0bee0e8`](0bee0e8),
[`9703b94`](9703b94)]:
  - @sveltejs/kit@3.0.0-next.17

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Rich-Harris pushed a commit that referenced this pull request Aug 18, 2026
…ng (#16838)

#16449 made shallow `goto` run navigation hooks by copying two blocks
out of `navigate` into `update_state`: the `onNavigate` callback run
with its `afterNavigate` registration, and the completion tail (abort
check, scroll and focus reset, `fulfil`, `to.scroll`, `afterNavigate`
callbacks). #16685 then had to change both copies. They are now
`run_on_navigate_callbacks` and `finish_navigation`, called from both
places. The second commit builds `navigate`'s not-found fallback once
instead of in two branches that differ only by the message suffix.
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.

Better snapshot API

2 participants