Releases: sanity-io/sanity
v3.62.3
✨ Highlights
Optimized Initial Value Resolution
This release includes a performance enhancement to optimize the resolution of Initial Value Templates:
- Initial values are now resolved sequentially rather than in parallel, improving reliability in projects with large numbers of templates.
- Enhanced caching reduces duplicate computations, leading to faster and more predictable performance when handling initial values.
These updates streamline initial value resolution, making it more efficient for projects with complex templates. This may improve the start up performance for your Studio.
Install or upgrade Sanity Studio
To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.
📓 Full changelog
Author | Message | Commit |
---|---|---|
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.17.6 (#7669) | bd83ebb |
renovate[bot] | fix(deps): update dependency @sanity/insert-menu to v1.0.10 (#7668) | 4ede77b |
renovate[bot] | fix(deps): Update dev-non-major (#7671) | 1ebedd2 |
Snorre Eskeland Brekke | feat: adds support for Create-Studio integration (#7635) | 12cb46b |
renovate[bot] | fix(deps): Update dev-non-major (#7679) | 070b33c |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.17.7 (#7683) | 6c1febc |
renovate[bot] | fix(deps): update dependency @portabletext/editor to ^1.1.10 (#7692) | 7a564a6 |
Rico Kahler | perf(core): memoize resolveInitialValueForType (#7674) | 3602d67 |
v3.62.2
Install or upgrade Sanity Studio
To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.
✨ Highlights
- Updates the Presentation tool to enable visual editing packages to dynamically check which features are supported by the current tool version.
📓 Full changelog
Author | Message | Commit |
---|---|---|
renovate[bot] | fix(deps): Update dev-non-major (#7661) | 21988da |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.17.4 (#7662) | 35fdd4d |
renovate[bot] | fix(deps): Update dev-non-major (#7663) | aa41c29 |
v3.62.1
Install or upgrade Sanity Studio
To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.
✨ Highlights
Other features
- Adds a CLI warning and documentation link for projects using Next.js 15 with React 19. Visit https://www.sanity.io/help/react-19 to learn more.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Pedro Bonamin | feat(cli): add warning and docs for react-19 and Next.Js (#7660) | 00acdbb |
v3.62.0
Install or upgrade Sanity Studio
To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.
✨ Highlights
Introducing Preview Sharing
Preview Sharing creates shareable preview links with secrets that are valid for as long as you want them to be. Toggling sharing off/on will create a new secret that makes previous URLs no longer valid.
It also shows a QR code of the preview link to enable quickly opening the preview on your phone to test your content in context before publishing it.
preview.sharing.mov
Contributors can now use Presentation
Lower minimum role from Editor to Contributor for creating Preview URL Secrets necessary to start Draft Mode
🐛 Notable bugfixes
- Boolean value in search shows actual value
- Fixes a bug causing default sorting for document lists to not be applied
- Fixes an issue that would cause read-only fields to accept pasted input under certain circumstances
📓 Full changelog
Author | Message | Commit |
---|---|---|
Binoy Patel | fix(core): boolean value in search shows actual value (#7623) | 4ffa079 |
Bjørge Næss | fix: restore support for defaultOrdering. (#7626) | 02da757 |
renovate[bot] | chore(deps): update typescript-tooling (#7605) | 7f2c1ce |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.22.2 (#7625) | 2e150f1 |
renovate[bot] | chore(deps): update dependency @sanity/tsdoc to v1.0.113 (#7627) | ede88ac |
Binoy Patel | feat: validate PR title against conventional commits (#7580) | a9525c8 |
renovate[bot] | chore(deps): update dependency sanity-diff-patch to v4 (#7630) | 01d0313 |
Espen Hovlandsdal | chore(test-studio): add asset types to structure navigation (#7631) | f1f21fd |
Mark Michon | chore(cli): update help copy for deploy command (#7624) | a4bd01d |
renovate[bot] | fix(deps): Update dev-non-major (#7639) | 97f1db0 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.17.0 (#7640) | 4973abc |
renovate[bot] | chore(deps): update dependency @sanity/preview-url-secret to v2 (#7641) | 816067e |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.17.1 (#7645) | 3698fd3 |
renovate[bot] | fix(deps): Update dev-non-major (#7646) | 5a8965e |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.17.2 (#7647) | 93a1114 |
renovate[bot] | fix(deps): update dependency @portabletext/editor to ^1.1.5 (#7638) | 07c48a0 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.17.3 (#7648) | 2bc49be |
renovate[bot] | fix(deps): Update dev-non-major (#7649) | 65d7e7e |
renovate[bot] | fix(deps): update dependency @sanity/mutate to ^0.10.1 (#7650) | c9b574d |
Pedro Bonamin | fix(core): inherit readOnly state from ancestors in copyPaste function (#7643) | 4298fe0 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v2.2.2 (#7651) | 6c1d4c8 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.8.10 (#7653) | b6df802 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.8.10 (#7652) | 5452e3d |
Cody Olsen | fix: warnings on React 19 (#7654) | 9c72c74 |
v3.61.0
Install or upgrade Sanity Studio
To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.
✨ Highlights
- Improves performance significantly when navigating between previously visited documents.
- Adds a new CLI command,
sanity learn
, to open www.sanity.io/learn.
🐛 Notable bugfixes
- Fixes an issue where editing a document would trigger unnecessary requests to the API.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Espen Hovlandsdal | ci(efps): allow recording video in efps suite (#7606) | 39e331a |
Pedro Bonamin | feat(core): document store loader - swr in edit state (#7552) | e3cc6d5 |
RitaDias | docs(sanity): update label onUncaughtError from internal to beta (#7612) | 5b3ddc6 |
Binoy Patel | test(sanity): migrate sanity package to vitest (#7578) | 6d23434 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#7614) | b693396 |
Simeon Griggs | feat: add CLI command to open Sanity Learn (#7409) | 1504511 |
Espen Hovlandsdal | fix: prevent excessive requests to access endpoint (#7597) | 45a74fc |
Binoy Patel | chore(perf): allow sharding efps tests (#7592) | de51413 |
Espen Hovlandsdal | fix: use absolute urls for published sourcemap urls (#7599) | 1f94234 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#7622) | b357fbf |
v3.60.0
✨ Highlights
Custom callback for error reporting
- Adds
onUncaughtError
-callback for Studio config that enables developers to implement custom error reporting. See #7553 for more details and usage examples.
🐛 Notable bugfixes
- Improves performance when navigating between previously visited document lists in the studio
- The global search "contains" filter now matches inside words
- Fixes an issue that in certain rare cases caused long delays while loading a document
- Improves loading state of reference previews
- Fixes an issue that could in rare cases lead to an outdated version of the document being displayed in the form
📓 Full changelog
Author | Message | Commit |
---|---|---|
Rico Kahler | test: add efps to CI (#7556) | 834403a |
Bjørge Næss | fix(structure): memoize search query results (#7555) | d4e4e44 |
Ash | fix(sanity): allow global search "contains" filter to match inside words (#7572) | 0cdfdce |
Snorre Eskeland Brekke | feat(sanity): studio manifests cont (#7403) | a098753 |
Binoy Patel | fix(cli): use studioHost from CLI config for intent link (#7570) | 818e151 |
Espen Hovlandsdal | fix(core): add missing listenerName property on welcome event (#7577) |
13f0563 |
renovate[bot] | chore(deps): update peter-evans/create-pull-request digest to 5e91468 (#7582) | c3540dd |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.22.1 (#7585) | cd07e93 |
renovate[bot] | fix(deps): update dependency @portabletext/editor to ^1.1.3 (#7575) | 99fcc1f |
Drew Lyton | refactor(structure): cleanup RequestPermissionDialog (#7571) | 11f2177 |
Binoy Patel | chore(deps): replace npm-run-all with npm-run-all2 (#7583) | 22dca32 |
Binoy Patel | chore(ci): shard e2e components tests (#7581) | a9f5178 |
renovate[bot] | chore(deps): update tiryoh/gha-jobid-action digest to be260d8 (#7589) | 6337ddf |
renovate[bot] | chore(deps): update dependency turbo to ^2.1.3 (#7591) | 9c9e350 |
Espen Hovlandsdal | chore(deps): upgrade @sanity/asset-utils to v2 (#7584) |
92de3d9 |
renovate[bot] | fix(deps): update dependency @portabletext/editor to ^1.1.4 (#7590) | b655562 |
Espen Hovlandsdal | chore(ci): use efps for job name, use node 20, clarify tag description (#7596) |
9cad54b |
Espen Hovlandsdal | chore(ci): use environment variables, not secrets, for non-sensitive vars (#7598) | af71d46 |
Ryan Bonial | fix(cli): do not throw during migrate if project ID is passed through flag (#7594) | caced3b |
Bjørge Næss | refactor(core): add reusable rxSwr operator (#7562) | 13518b2 |
Bjørge Næss | fix(structure): improve and clean up form ready state (#7600) | 21d848d |
RitaDias | feat(sanity): add config for onUncaughtError (#7553) | e3cf177 |
Bjørge Næss | chore(ci): change env vars from secrets to env (#7601) | 7868c0b |
Bjørge Næss | fix(core): add detection and recovery for missing mutation events (#7576) | 8195c96 |
Bjørge Næss | fix(core): fix reference preview flickering and improve loading (#7563) | 1e31c35 |
Rico Kahler | feat: propagate PairListenerOptions ; add telemetry for OutOfSyncError (#7595) |
d96f890 |
v3.59.1
🐛 Notable bugfixes
- Fixes a bug that caused the document editor to crash when the default field group is not found.
Install or upgrade Sanity Studio
To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Rico Kahler | fix: protect against falsy selectedGroup (#7593) |
98f4eb9 |
v3.59.0
✨ Highlights
Request edit access to Studio
Users with the read-only "Viewer" role can now request edit access to the project, straight from Sanity Studio. Project administrators will be alerted by email and can approve or deny the request from the project management section at sanity.io/manage.
Other improvements
- Eliminated layout shifts in image fields.
🐛 Notable bugfixes
- Fixes a few cases of unnecessary loading states appearing in the studio.
- Fixes an issue causing the command line tool to crash when using Turborepo on Windows (thanks @josemanosalvas!)
- Fixes an issue where using the Microsoft Word preprocessor from the
@sanity/block-tools
package outside of a browser would crash (thanks @silvertech-daniel!) - Fixes incorrect usage of light mode in image field overlays when dark mode is active.
- Improves error message when the studio development server is stopped — instead of a generic "dynamic import" error, it will now tell you the development server is stopped.
- Fixes an issue where pasting into a conditionally read-only field would not work, even if the field returned
false
for the read-only check.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Bjørge Næss | chore: cleanup import specifiers etc | 8b509f7 |
Bjørge Næss | chore: move dev-aliases into @repo/dev-aliases | 2180d0f |
Bjørge Næss | chore(sanity): load monorepo aliases from '@repo/dev-aliases' | 16dfd3d |
Bjørge Næss | chore(test): convert jest configs to mjs | 8938d6e |
Bjørge Næss | chore(test): move jest config to @repo/test-config/jest | 24618f9 |
Bjørge Næss | chore(test): add support for vitest | 512e16a |
Bjørge Næss | chore(ci): run jest tests in a separate workflow | 44dee81 |
Bjørge Næss | chore(test): move @sanity/migrate to vitest |
3c63eee |
Bjørge Næss | chore(test): move @sanity/block-tools to vitest |
09e86a2 |
Bjørge Næss | chore(test): move @sanity/mutator to vitest |
09be44d |
Bjørge Næss | chore(test): move @sanity/schema to vitest |
56b7ee5 |
Bjørge Næss | chore(test): move @sanity/types to vitest |
8bf4868 |
Bjørge Næss | chore(test): move @sanity/util to vitest |
38eca25 |
Espen Hovlandsdal | chore: enable source maps for package bundles (#7540) | 0396ec2 |
Bjørge Næss | chore(cli): remove reliance on node-machine-id (#7545) | de9c29b |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#7544) | 9848f20 |
RitaDias | chore(form): revert changes in schema that were meant to have been deleted (#7549) | 7aed0c0 |
Bjørge Næss | fix(preview): allow null as valid cache/memo value for preview fields (#7551) |
7b9b556 |
Bjørge Næss | refactor(store) simplify key value store, add SWR through local storage behavior (#7554) | d2ca86d |
Bjørge Næss | fix(core): emit setting from localStorage immediately upon subscription (#7560) | 1e79797 |
RitaDias | chore(sanity): update naming of draft created telemetry event (#7561) | ae1c9c2 |
Jordan Lawrence | feat(core): specific error when dev server is stopped (#7476) | 7fcf22a |
RitaDias | chore(form): remove imports from shouldArrayDialogOpen (#7550) | bdfd8df |
silvertech-daniel | fix(block-tools): remove references to implicit globals document and Text (#7532) |
306a671 |
Ash | fix(sanity): prevent layout shifts in image input | 6b8a76f |
Ash | feat(sanity): allow image input block size to extend to 30vh |
14ebf2c |
Ash | refactor(sanity): remove redundant drag-related props | 8a80ef2 |
Ash | fix(sanity): use correct color scheme in image input overlay | df0e18a |
Binoy Patel | fix(core): fixes an issue with pasting in conditional readonly field (#7564) | 2e47715 |
shur | fix: set cliInitializedAt even if project bootstrap fails (#7558) |
ea186d8 |
renovate[bot] | fix(deps): update dependency @portabletext/editor to ^1.1.2 (#7566) |
a762c62 |
Espen Hovlandsdal | chore(deps): upgrade moment, drop @types module (#7565) |
be73a2a |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.22.0 (#7522) | 7c01a95 |
Binoy Patel | refactor(cli): update projects list command to link to manage (#7568) | 85941d2 |
Drew Lyton | feat: add ability to request edit access from viewer role (#7546) | 59f4fda |
v3.58.0
✨ Highlights
Product announcements
Studio users will now receive notifications about new Sanity features via a floating clickable card in the bottom-left corner of the interface. Clicking the card will open a modal with more details about the feature.
Previously seen product announcements can also be accessed anytime from the new “What’s New” item in the help menu.
Other features
- The global error UI has been refined so that it is clearer to users.
- The global error UI now only displays the stack trace in development builds.
- A Copy error details action has been added to the global error UI and the document list error UI. This allows users to easily share the error stack trace with developers.
- Please note that these new strings cannot be internationalized, because the global error UI is rendered outside of the locale provider.
- The Reconnecting toast is no longer displayed if the connection is reestablished within two seconds.
🐛 Notable bugfixes
- Fixes issues occurring when a draft exist for a live-editable schema.
- Improves task assignee list performance.
- Improves Portable Text editor performance.
Install or upgrade Sanity Studio
To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Rico Kahler | feat(perf): add new eFPS benchmark suite (#7407) | 2de06de |
Ryan Bonial | Fix: prevent flash of "Untitled" when loading a document w/ preview (#7505) | b7f0135 |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#7521) | 4729e84 |
Pedro Bonamin | fix(core): hide versions.* documents from search, update getPublishedId to account for versions (#7470) |
7c814a8 |
RitaDias | fix(structure): live edit on draft documents (#7526) | 7bf9995 |
RitaDias | refactor(structure): add virtualization when rendering assigneeds list (#7536) | e102679 |
Bjørge Næss | fix(core): skip updating focusPath state if unchanged (#7524) | 7183b24 |
Pedro Bonamin | fix(core): document store cache memo not working (#7530) | 8c677c2 |
Bjørge Næss | fix(core): clean up portable text input's selection change handling (#7525) | 714b3e1 |
Ash | chore(sanity): add return type to StudioErrorBoundary component |
b7b677c |
Ash | chore: fix spelling mistake | a7ca8b6 |
Ash | chore(sanity): remove unused parameter from onRetry function signature |
61e981b |
Ash | feat(sanity): add ErrorActions component |
7809762 |
Ash | feat(sanity): refine StudioErrorBoundary component UI |
d11efce |
Ash | feat(sanity): add "Copy error details" button to document list error UI | a218c88 |
Pedro Bonamin | feat(core): Studio announcements (#7515) | 3593bf5 |
RitaDias | refactor(structure): add timeout to reconnecting message (#7531) | 9ab4086 |
v3.57.4
✨ Highlights
Performance improvements for large documents
This release introduces significant performance improvements for form state computation in Sanity Studio, especially for complex documents:
- Up to 10x performance improvement for documents with multiple large objects in arrays
- Noticeable improvements for documents with large Portable Text fields
- Memoization for form state computation
🐛 Notable bugfixes
- The
_createdAt
document property will now always be set to the time when the document in question was first created in its initial draft state rather than the time of publishing, as intended. - In the Portable Text Editor, annotations can now be added across existing annotations and decorators without accidentally expanding or removing those.
- In the Portable Text Editor, a collapsed selection can now toggle off an entire annotation.
- A performance regression introduced in
3.52.3
, affecting large Portable Text documents, has now been fixed. - Toggling decorators in selections spanning empty lines in the Portable Text Editor now works more predictably.
- Lists created in the Portable Text Editor should now reset sublist indices under different parent list items (thank you, @phattran2905!).
- When focused, the Portable Text Editor now automatically adds empty
markDefs
arrays to blocks if missing. - Array inputs now forward the received
onItemPrepend
andonItemAppend
hooks to the insert button/array functions component.
Install or upgrade Sanity Studio
To initiate a new Sanity Studio project or upgrade an existing one, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
If you are updating from a version earlier than 3.37.0, you should also check out this article to ensure your dependencies are up to date.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Cody Olsen | chore(deps): bump typescript to 5.6.2 (#7494) |
caec753 |
Ash | fix(sanity): prevent empty patches being created (#7499) | 99f1bb6 |
renovate[bot] | chore(deps): update typescript-tooling (#7504) | 9a646d8 |
Phat Tran | fix(core): correctly reset PTE list counts after non-numbered lists and in sublists (#7506) | 4918a9e |
renovate[bot] | chore(deps): update dependency turbo to ^2.1.2 (#7507) | 618d95c |
renovate[bot] | chore(deps): update pnpm to v9.10.0 (#7509) | cf55d9d |
renovate[bot] | chore(deps): update linters (#7508) | 453c4a4 |
renovate[bot] | fix(deps): Update dev-non-major (#7510) | fe75e37 |
renovate[bot] | fix(deps): update dependency @portabletext/editor to ^1.1.0 (#7501) | a6e0389 |
Jordan Lawrence | fix(core): drafts not using server actions always generate a created at (#7503) | 728311e |
renovate[bot] | fix(deps): update dependency @portabletext/editor to ^1.1.1 (#7514) | daf4ffa |
Simeon Griggs | fix: add padding above the "Push to reload" button instead of below (#7464) | 1a33125 |
Bjørge Næss | fix: forward received onItemPrepend/onItemAppend to ArrayFunctions (#7516) | 4a50023 |
Rico Kahler | perf(core): memoize prepareFormState (#7498) |
3bf7096 |