Sanity Versions Save

Sanity Studio – Rapidly configure content workspaces powered by structured content

v3.40.0

2 weeks ago

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

Presence cursors in the Portable Text Editor

Sanity Studio has always supported real-time collaboration, but you have yet to be able to see where others are working within the Portable Text Editor. By upgrading, you'll get a similar experience to Google Docs when editing block content.

Presence cursors in the Portable Text Editor

This release also includes bug fixes for the Portable Text Editor:

  • The Portable Text Editor will now remove the invisible Stega-encoded characters if you copy-paste from a preview using Visual Editing
  • The cursor will not move out of viewpoint when deleting a character in PTE.
  • Creating an annotation at the bottom of a PTE will no longer scroll you to the top.
  • Fixes an issue where changing positions of items of an array within PTE would launch a cryptic error

Comments and Tasks are now out of beta

Comments and Tasks are now officially out of beta; hence, we have updated the configuration APIs. Both comments and tasks are enabled by default and for all document types.

Comments configuration migration

Configuration during beta:

// ./sanity.config.ts|js

export default defineConfig({
  // ... rest of config
  document: {
    unstable_comments: {
      enabled: false,
    },
  },
});

New configuration (remove unstable_):

// ./sanity.config.ts|js

export default defineConfig({
  // ... rest of config
  document: {
-   unstable_comments: {
+   comments: {
      enabled: false,
    },
  },
});

Tasks configuration migration

Configuration during beta:

// ./sanity.config.ts|js

export default defineConfig({
  // ... rest of config
  unstable_tasks: { enabled: false },
})

New configuration (remove unstable_):

// ./sanity.config.ts|js

export default defineConfig({
  // ... rest of config
- unstable_tasks: { enabled: false },
+ tasks: { enabled: false },
})

Sanity TypeGen improvements

Thanks for all the feedback about Sanity TypeGen so far! This release ships several improvements and bug fixes:

  • Sanity Typegen now supports count in GROQ projections
  • TypeGen code (sanity.types.ts) is now formatted when a project has a Prettier configuration
  • The TypeGen search path now includes src, app, and sanity folders by default
  • Various bug fixes for type generation
  • Fixes an issue where typegen command would fail on relative imports
  • Fixes a bug where we could not extract or validate schema when the sanity-plugin-mux-input plugin was installed.

Do continue to give us feedback in #typescript in the community!

🐛 Notable bugfixes

  • Fixes ambiguous aria-labels on some Status buttons
  • Fixes issue with inline text comments that would include an inline object.
  • Fixes toast message for document duplicate action

📓 Full changelog

Author Message Commit
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6463) a2faad2759
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460) 34a1ae618b
Sindre Gulseth fix(cli): mock matchMedia window function (#6472) ea715e8fd8
Bjørge Næss chore: add perf runner to workspace (#6427) 9af065aa98
Sindre Gulseth fix(typegen): fixes a bug where we imported the wrong relative path (#6457) e1bd1f0de2
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464) f6af6369d5
Sindre Gulseth feat(typegen): also search for queries in app and sanity folders (#6475) 03cbb12cf8
Sindre Gulseth chore: upgrade groq-js (#6474) 68bb282a0d
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6476) 076b2fc6de
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.15 (#6465) 2f7674c052
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466) 9887e7c599
renovate[bot] chore(lockfile): update dependency date-fns-tz to v2.0.1 (#6467) 14b4365894
renovate[bot] chore(lockfile): update dependency i18next to v23.11.2 (#6468) 3fcfa42a71
renovate[bot] chore(lockfile): update dependency zod to v3.23.4 (#6470) bef170b3bf
renovate[bot] chore(lockfile): update dependency next to v14.2.2 (#6469) cb957a608f
renovate[bot] chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471) 05a019a648
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482) c903cde72f
renovate[bot] chore(deps): update react monorepo (#6484) 3c8a3292b1
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483) 0163210c94
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485) 05aad5c0b7
renovate[bot] chore(deps): update react monorepo to ^18.3.0 (#6490) 144bb21a75
renovate[bot] chore(lockfile): update dependency @types/react-is to v18.3.0 (#6491) 2225589451
Cody Olsen chore: setup next test that embeds the test studio (#6487) edefb66bda
Bjørge Næss fix(test): remove hydrateroot warning test (#6494) d50a0f19db
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6493) c1f9071d68
Rostislav Melkumyan feat: set print width to 40 (#6068) 2e24fcdfa7
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496) 2b840babd9
renovate[bot] chore(deps): update dependency turbo to ^1.13.3 (#6497) fc80d2b9eb
renovate[bot] chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498) 69b3c642fa
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499) c8b1d5e323
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.16 (#6500) 2dff2bdc78
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.10 (#6501) 06ef31d64f
Herman Wikner feat(core): implement presence cursors (#6081) 1522806aa3
renovate[bot] fix(deps): Update react monorepo (#6502) fa9d145dd4
Espen Hovlandsdal chore(lint): add certain unicorn eslint rules (#6352) ba8397104f
Espen Hovlandsdal test: increase timeout for cross-dataset reference test afea9cfb3f
Espen Hovlandsdal chore: fix incorrect path used in workshop story 61daf0cbf9
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6506) 6486e342f1
RitaDias fix(structure): uncaught error while swapping images in array in PTE (#6399) c9bfc3127f
renovate[bot] chore(deps): update dependency @types/react to v18.3.1 (#6507) 311d722aea
Nina Andal Aarvik fix(core): change scrollintoview block to be nearest (#6328) 509757c654
Nina Andal Aarvik fix(core): set scroll boundary to nearest (#6310) 0dae0da8d1
RitaDias fix(@sanity): issue where hidden unicode characters were bloating document in PTE (#6440) ffa68ec009
Per-Kristian Nordnes chore: add codeowners to block-tools 479e71fe31
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6508) ff26edd30b
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.8 (#6509) 4bb667de3a
cngonzalez feat: use prefersLatestPublished parameter in DocumentPaneProvider (#6486) 3da55ae532
cngonzalez fix: prevent looping requests to keyvalue in recent searches (#6480) 232385ecf5
Binoy Patel feat(singletons): add a singleton package exports 884fca1bd6
Binoy Patel feat(singletons): add eslint rule for boundaries bfd9a30ecf
Binoy Patel refactor(core): move ConnectorContext to singletons 3008a1c518
Binoy Patel refactor(core): move PreviewCardContext to singletons 30cc592ff1
Binoy Patel refactor(core): move scrollContext to singletons 5ca1b0076f
Binoy Patel refactor(core): move ZIndexContext to singletons d1a1d40367
Binoy Patel refactor(core): move DiffContext to singletons ef08d0a1ed
Binoy Patel refactor(core): move DocumentChangeContext to singletons 0509e58a27
Binoy Patel refactor(core): move FormBuilderContext to singletons 0f9cf43d17
Binoy Patel refactor(core): move DocumentIdContext to singletons 79343e4822
Binoy Patel refactor(core): move FormValueContext to singletons 2b46b43043
Binoy Patel refactor(core): move GetFormValueContext to singletons 3dc7e62f66
Binoy Patel refactor(core): move HoveredFieldContext to singletons dbedca6092
Binoy Patel refactor(core): move FieldActionsContext to singletons c7374f729b
Binoy Patel refactor(core): move VirtualizerScrollInstanceContext to singletons 372774e7f4
Binoy Patel refactor(core): move SortableItemIdContext to singletons ffea136ff0
Binoy Patel refactor(core): move PortableTextMarkersContext to singletons ed8f3187ba
Binoy Patel refactor(core): move PortableTextMemberItemsContext to singletons 63256293e8
Binoy Patel refactor(core): move ReferenceItemRefContext to singletons a25a30bf91
Binoy Patel refactor(core): move DocumentFieldActionsContext to singletons 6f08a7deb5
Binoy Patel refactor(core): move FormCallbacksContext to singletons 2518910a33
Binoy Patel refactor(core): move PresenceContext to singletons 6a02f80819
Binoy Patel refactor(core): move ReferenceInputOptionsContext to singletons 19311e4670
Binoy Patel refactor(core): move ValidationContext to singletons cab8131c4a
Binoy Patel refactor(core): move ReviewChangesContext to singletons 79e4bfa9cc
Binoy Patel refactor(core): move LocaleContext to singletons d614474814
Binoy Patel refactor(core): move FormFieldPresenceContext to singletons 16d87a1cba
Binoy Patel refactor(core): move ResourceCacheContext to singletons b64d78919d
Binoy Patel refactor(core): move ColorSchemeValueContext to singletons 23e50fbe26
Binoy Patel refactor(core): move ColorSchemeSetValueContext to singletons 5db6f24275
Binoy Patel refactor(core): move SourceContext to singletons 896ed1e9cb
Binoy Patel refactor(core): move WorkspaceContext to singletons 96e1bb745c
Binoy Patel refactor(core): move NavbarContext to singletons 2601315c7d
Binoy Patel refactor(core): move ActiveWorkspaceMatcherContext to singletons 2ac5f1b144
Binoy Patel refactor(core): move AddonDatasetContext to singletons b1e2f605ba
Binoy Patel refactor(core): move FreeTrialContext to singletons fd7dca32ca
Binoy Patel refactor(core): move CalendarContext to singletons 0f0d13fdbd
Binoy Patel refactor(core): move SearchContext to singletons b4a8f3b3ee
Binoy Patel refactor(core): move RouterHistoryContext to singletons dbf67a8f92
Binoy Patel refactor(singletons): revert exporting free trial types on sanity 198df7072f
Binoy Patel refactor(core): move WorkspacesContext to singletons 7e3775dc4f
Binoy Patel refactor(core): move UserColorManagerContext to singletons 548952e1ab
Binoy Patel fix(singletons): fix build issues and move CalendarContext interface back b3de008a42
Binoy Patel refactor(router): move RouterContext to singletons 56dd5be1b5
Binoy Patel refactor(structure): move StructureToolContext to singletons d385839488
Binoy Patel refactor(structure): move PaneContext to singletons bef2ba2fb4
Binoy Patel refactor(structure): move DocumentPaneContext to singletons 73cbcd1dfb
Binoy Patel fix(singletons): use relative path for StructureToolContextValue type 30204c7c31
Binoy Patel refactor(structure): move CommentInputContext to singletons 624709335d
Binoy Patel refactor(structure): move CommentsAuthoringPathContext to singletons 6555ffcde3
Binoy Patel refactor(structure): move CommentsContext to singletons 94950b7ee3
Binoy Patel refactor(structure): move CommentsEnabledContext to singeltons 8780274af3
Binoy Patel refactor(structure): move comments contexts to singletons fd327eebcb
Binoy Patel refactor(structure): move PaneLayoutContext to singletons 569c0f90e3
Binoy Patel refactor(structure): move PaneRouterContext to singletons e765a472f8
Binoy Patel fix(structure): expose PaneRouterContext from structure ab835d9fd2
Binoy Patel refactor(tasks): move TasksEnabledContext to singletons 453d260a42
Binoy Patel refactor(tasks): move MentionUserContext to singletons 924f5b0a4c
Binoy Patel refactor(tasks): move TasksNavigationContext to singletons 2bb6668ae8
Binoy Patel refactor(tasks): move TasksContext to singletons 9a8ed79b20
Binoy Patel fix: build after pkg-utils@5 upgrade c3b756b527
Binoy Patel refactor(tasks): move TasksUpsellContext to singletons b422fabcf0
Binoy Patel chore(lint): only allow relative type imports in singeltons 8e3dc30180
Binoy Patel chore(lint): update eslint to be specific about imports 932f4595ea
Binoy Patel refactor(singletons): use relative type imports a57e70c9fc
Binoy Patel refactor(singletons): move core context to core folder f62078c972
Binoy Patel fix(core): export AddonDataSetContext from singletons 970cf7d794
Binoy Patel chore(core): remove AddonDatasetContext exports f29d0ddc83
Binoy Patel fix(build): add missing legacy exports and types information 2053b1fd00
Binoy Patel fix: fix linting and type errors after rebase c0932461b0
Binoy Patel refactor(singletons): move tasks to core bfcdc44e05
Binoy Patel fix(router): expose RouterContext from sanity/router 7eeda3bf01
Binoy Patel refactor(tasks): move isLastPane context to singletons 968ae8558a
Binoy Patel chore: add _singletons to tsconfig paths 684bb8af0c
Binoy Patel refactor(schedule-publishing): move DocumentActionPropsContext to singletons dab96b5ca2
Binoy Patel refactor(scheduled-publishing): move ScheduledPublishingEnabledContext to singletons 00fc838c5b
Binoy Patel refactor(scheduled-publishing): move SchedulePublishUpsellContext to singletons 21646661c1
Binoy Patel refactor(scheduled-publishing): move SchedulesContext to singletons d946d30e74
Binoy Patel fix: next studio build 52bcbda69a
Binoy Patel chore: add eslint rule for disabling createContext outside _singletons (#6349) d79f363aa4
Herman Wikner fix(comments): inline comment creation issue in Safari (#6510) 3b4a7e6523
Herman Wikner fix(core): skip reset presence selection on PTE blur (#6511) f0c94f1e6e
Pedro Bonamin fix(scheduled-publishing): deprecated error toast shows multiple times (#6513) 21d5b32261
Sindre Gulseth chore(typegen): track empty union type nodes generated (#6495) 124be88b10
Espen Hovlandsdal chore(deps): upgrade to react 18.3.1 (#6505) 9e2cf1557a
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6515) cc106e4dff
jordanl17 fix: statusButton requires provided aria-label (#6430) 06c67fc6cd
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.41 (#6518) 7876a0a806
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.16 (#6519) e618da3bb1
RitaDias chore(sanity): remove beta and unstable from comments and tasks (#6478) f92ba3e0fd
renovate[bot] chore(deps): update pnpm to v8.15.8 (#6526) 098267389a
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.9 (#6525) bc85a3d9e3
Nina Andal Aarvik fix(structure): add string for duplicate event (#6523) f51b1577c7
renovate[bot] chore(lockfile): update dependency @babel/preset-env to v7.24.5 (#6528) dbb26b7558
Per-Kristian Nordnes fix(portable-text-editor): fix issue where decoration on inline object would cause freeze (#6531) f03f6ebd62
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.42 (#6529) c893c77e52
Per-Kristian Nordnes fix(portable-text-editor): fix issue where decoration would not target correctly (#6532) 251d592265

v3.39.1

3 weeks ago

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

To upgrade a v3 Studio, run this command in its folder:

npm install sanity@latest

🐛 Notable bugfixes

  • Disables the new search API introduced in v3.38.0 due to a few discovered issues. We'll re-enable it in a future release.
  • Fixes an issue when using the "movie database" template when running npm create sanity

📓 Full changelog

Author Message Commit
Espen Hovlandsdal fix(cli): remove comments from moviedb template, hide location field (#6488) 80f8daf5ad
Espen Hovlandsdal fix(search): revert to old search API for now (#6503) 8a08212686

v3.39.0

3 weeks ago

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

Scheduled Publishing is now part of the core Sanity Studio package

The Scheduled Publishing feature, which up until this release has been available as a plugin for Sanity Studio, has been moved into the core sanity package and enabled by default. Scheduled Publishing is available on all paid plans and trials.

If you wish to opt out of Scheduled Publishing, you can do so in your Studio configuration:

// sanity.config.ts 
export default defineConfig({ 
   // ....
   scheduledPublishing: {
       enabled: false, 
     }
  )

Go to docs and feature announcement blog post to learn more.

Migrating from the Scheduled Publishing plugin to the new built-in configuration:

If you are already using Scheduled Publishing plugin, the first step is to get rid of it and update your studio to the latest release. If you already updated your studio you might have gotten an alert about this.

Run the following command in your project root to uninstall the plugin:

npm uninstall @sanity/scheduled-publishing

Next, remove the plugin from your studio configuration. Typically you'll find this in ./sanity.config.ts|js. Find the scheduledPublishing plugin and do the following changes in your configuration file:

Before:

// sanity.config.ts
import {scheduledPublishing} from '@sanity/scheduled-publishing'

export default defineConfig({
    //....
    plugins: [
      scheduledPublishing({
        // e.g. 12/25/2024 6:30 AM
        inputDateTimeFormat: 'MM/dd/yyyy h:mm a',
      })
    ]
})

After:

-  import {scheduledPublishing} from '@sanity/scheduled-publishing'


export default defineConfig({ 
    // ...
    plugins: [
-     scheduledPublishing({
-       inputDateTimeFormat: 'MM/dd/yyyy h:mm a',
-     })
    ],
+   scheduledPublishing: {
+       enabled: true,
+       inputDateTimeFormat: 'MM/dd/yyyy h:mm a',
+   }
})

🐛 Notable bugfixes

  • Fixes a bug that caused negations to be transformed to wildcard search prefixes if they appeared at the end of a search query.
  • Improves error handling when attempting to run a migration against invalid project configurations.
  • Fixes an issue where a document's validation panel would show a system error message when a field with a validation error was deleted.
  • Fixes a bug that caused _type to be incorrectly parsed from statements in the filter parameter of document lists.
  • Fixes an issue that sometimes caused the Studio to load indefinitely when visited from a task notification email.
Author Message Commit
cngonzalez fix: refactor checkoutPair to allow mutations for liveEdit documents (#6393) f6ae4028b4
Ash fix(core): prevent transformation of negation tokens into wildcard prefix tokens (#6396) f28ef7e094
Bjørge Næss fix(migrate): forward possible API error response to error thrown for non 2xx (#6387) 9316475346
Rico Kahler refactor(tasks, comments): core plugins (#6333) 3c917d22e0
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.34 (#6402) 5fc277588d
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.12 (#6405) d3e924e26d
renovate[bot] chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.9 (#6404) 4c6f1e2fef
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.12 (#6403) 6802d29bb2
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.17 (#6406) 82e505fc8c
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.5 (#6407) 98bb2338b0
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.1.4 (#6408) 59cad0b923
renovate[bot] fix(deps): update dependency get-it to ^8.4.26 (#6409) 159f5428e5
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.7.1 (#6410) e5252e17d6
Pedro Bonamin fix(codeowners): update codeowners for tasks and comments (#6414) d286050dda
Rico Kahler test: add sanity-plugin-hotspot-array (#6401) d591b18fda
Binoy Patel fix: TS import paths importing index.ts twice incorrectly (#6415) 6066e9287e
Pedro Bonamin fix(tasks): update tasks upsell provider client version (#6413) 61a887c018
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.0 (#6421) 72e34f8a80
renovate[bot] chore(lockfile): update dependency zod to v3.22.5 (#6420) 5c7352cf76
Cody Olsen refactor: use @sanity/prettier-config (#6423) e75e390e61
renovate[bot] chore(deps): update dependency recast to ^0.23.6 (#6422) 2b30eb6edd
Bjørge Næss chore: turn server actions on by default in test-studio (#6425) dd61ead1bd
RitaDias fix(@sanity): issue where hidden unicode characters were bloating document in PTE (#6424) ce460775e7
Per-Kristian Nordnes Revert "fix(@sanity): issue where hidden unicode characters were bloating document in PTE (#6424)" cac48bb7f2
Per-Kristian Nordnes fix(portable-text-editor): support collapsed range decorations (#6428) 2d02d62599
renovate[bot] fix(deps): update dependency get-it to ^8.4.27 (#6434) 5fb7ddf1b5
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.13 (#6432) f4e482d338
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.19 (#6433) 4e32715c39
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.8.1 (#6431) 26b8c76c3b
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.13 (#6436) 846cf688fb
renovate[bot] chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.10 (#6435) 7b20162ca8
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.6 (#6437) 3eb44db1a4
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.14 (#6438) 177b4b5d46
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.36 (#6444) 8f05301699
renovate[bot] chore(deps): update peter-evans/create-pull-request digest to 9153d83 (#6443) 035c59d562
Tommy Petty fix(structure): update to not crash validation panel if unable to get path title (#6417) d5f8fb6799
renovate[bot] chore(lockfile): update dependency @sanity/eventsource to v5.0.2 (#6445) b8f366601d
Herman Wikner fix(comments): conditional rendering of CommentsProvider (#6412) 379396e63e
Per-Kristian Nordnes perf(portable-text-editor): improve range deocration render perf (#6441) c9b1ebb461
Rico Kahler fix(structure): resolve static types in document list filters (#6439) 048ce0b98b
Rico Kahler fix(core): fix autocomplete for defineType in VSCode (#6447) 3ff78f6d73
Ash test(e2e): fix unawaited assertion (#6442) 37b6291f69
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.7 (#6448) f9634f42c1
Pedro Bonamin fix(tasks): update taskURL for notification target (#6395) 7c8cebf37d
Sindre Gulseth fix(typegen): fixes a case where we track ratio as NaN (#6309) b0f405e292
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.20 (#6461) d7f1067718
Cody Olsen chore: remove _internalBrowser from typesVersions (#6451) c1f1fdf946
Rico Kahler chore(deps): bump @sanity/export (#6462) 348a3a996d
Pedro Bonamin feat(scheduled-publishing): move scheduled publishing into core. (#6416) a6fc5af0d2

v3.38.0

1 month ago

Installation and upgrading

Install

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

Upgrade

In most cases upgrading your studio is as straight-forward as installing the latest version:

npm install sanity@latest

For more information, visit the article on upgrading Sanity Studio in the docs.

If you are upgrading from a version earlier than 3.37.0, you also need to upgrade styled-components and @sanity/ui. To learn more, visit this help article on keeping dependencies up to date.

✨ Highlights

  • Improved global search with better performance and new features.
  • Custom styles are now displayed in the Portable Text Editor (PTE) style selector.

We've optimized the search functionality in the Studio for increased performance, especially in workspaces with large schemas. This improvement includes support for wildcard (*) and negation (-) tokens in search queries, allowing for more flexible and powerful search options. This enhanced search feature uses an internal API that is not yet documented for public use.

If you need to revert to the previous search behavior for any reason, you can disable the new search functionality by setting search.enableLegacySearch to true in your configuration.

🐛 Notable bugfixes

  • Fixes a crash in the image hotspot and cropping tool within Next.js embedded Studios.
  • Improves focus handling in PTE and the document pane.
  • Fixes an edge case where PTE threw exceptions after resizing the validation panel.
  • Fixes issue where annotations in PTE would incorrectly retain markup if all fields were null.
  • Resolves an issue where custom sort orders, or sort orders in lists that are not documentTypeLists, would send invalid requests to the persistent user settings backend.
  • Fixes regression that hid tool buttons when Sanity Studio was embedded in Next.js applications.
  • Fixes a bug where the caret was not visible on code-formatted text within the PTE when using the dark scheme.
  • Fixes an issue where the component for custom PTE styles was not being rendered in the style selector.
  • Fixes an issue where copying strikethrough text from a google doc would remove the strikethrough once pasted in the PTE.
  • Fixes tooltip text for the publish button to correctly display "yesterday" without the "ago" suffix when appropriate.

📓 Full changelog

Author Message Commit
Nina Andal Aarvik fix(structure): remove 'ago' suffix when published time was yesterday (#6137) 66495e5a4f
Cody Olsen chore: fix pnpm dev by bumping @sanity/assist (#6306) a87ea4e906
cngonzalez fix: resolve PTE inconsistency by passing serverActionsEnabled to documentEvents (#6299) 4123260b10
Espen Hovlandsdal chore: move @sanity/export out of monorepo (#6314) 331e46cdf4
renovate[bot] chore(lockfile): update dependency @sanity/assist to v3.0.3 (#6316) 8941037150
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.22 (#6315) 87c627d0ac
renovate[bot] chore(deps): update dependency typescript to v5.4.5 (#6318) 166a7c6ea0
Cody Olsen chore: support IDE's using older TypeScript versions on the monorepo (#6308) a4e097fed7
Herman Wikner fix(core): hidden caret on code formatted text (#6307) 1c8cff0281
shur fix: update TelemetryUserProperties to use machinePlatform instead of platform (#6312) bc6be952b7
Cody Olsen chore(deps): bump @sanity/pkg-utils & simplify build scripts (#6319) 2dd907ab97
Nina Andal Aarvik fix(structure): remove padding prop in contextMenuButton (#6097) b3860edbb9
renovate[bot] fix(deps): update dependency get-it to ^8.4.19 (#6325) a7755ac805
Cody Olsen chore: improve test output of test:exports (#6304) 090c45dc89
renovate[bot] chore(lockfile): update dependency mendoza to v3.0.7 (#6324) 4d1f1ba7d1
renovate[bot] chore(deps): update dependency @portabletext/toolkit to ^2.0.15 (#6322) 093ab19958
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.23 (#6329) b1773b9324
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.13 (#6331) 2c4671a37f
Binoy Patel chore: fix start-studio build (#6336) e6c2d11831
cngonzalez fix: use pane key in settings for document lists that do not have types available (#6335) 57749e5e3c
Espen Hovlandsdal chore: move @sanity/import out of monorepo (#6313) 9ea56b9c3d
Espen Hovlandsdal chore: use node: prefix for node module imports (#6321) 433a7aa74a
Cody Olsen fix: regression hiding tool buttons when embedded on Next.js (#6338) d30cfd9509
renovate[bot] fix(deps): update dependency get-it to ^8.4.21 (#6332) 98626ec214
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.8 (#6330) 89409bde2b
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.6.1 (#6342) f772f88e20
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.1.3 (#6344) e5c763aa5a
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.26 (#6341) d986c31362
Tommy Petty fix(pte): fix an issue where when PTE throws exception after resize (#6152) cf75a0b7fc
Tommy Petty fix(cli): add note about webhooks in migration run command (#6112) 9baf4069b6
Binoy Patel chore: remove * as React imports (#6350) 04a68cf642
Espen Hovlandsdal refactor(cli): use fs methods for reading package.json files (#6351) 0339647f1d
renovate[bot] chore(deps): update react monorepo (#6353) 3e03e1bfe4
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.6.3 (#6354) a27604da27
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.29 (#6356) 6f7d186340
renovate[bot] chore(deps): update dependency prettier-plugin-packagejson to ^2.5.0 (#6357) a380e49e48
renovate[bot] fix(deps): update dependency get-it to ^8.4.23 (#6362) f08cf40721
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.30 (#6361) a211e2d8e4
renovate[bot] chore(deps): update peter-evans/create-pull-request digest to c55203c (#6363) 6736e29cb4
renovate[bot] chore(deps): update pnpm to v8.15.7 (#6364) 406a78afb9
Cody Olsen chore: fix tsc build (#6360) 748e6b0f22
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.14 (#6367) aaaf5851df
Tommy Petty fix(bug): update to not add annotation in PTE if all fields are null (#6346) e10fd872c6
Per-Kristian Nordnes fix(core/inputs): fix issues with focus handling (#6370) eca960e37b
Herman Wikner feat(core): display custom styles in PTE style selector (#6275) ee31fb1d05
Bjørge Næss chore: disallow and remove react default imports (#6369) 447067f88f
Binoy Patel chore(lint): continue linting on error (#6374) 4d96a892c3
Binoy Patel chore(lint): fixes issue where boundaries lint rule was not working (#6376) d1066a8904
Espen Hovlandsdal fix(cli): add migration to list of core commands, remove migrate (#6377) 100048ab5a
Cody Olsen fix: crash in hotspot and cropping on Next.js (#6380) 0dade6273f
Espen Hovlandsdal fix(cli): upgrade and unpin import & export modules (#6347) 905d469667
Espen Hovlandsdal chore(deps): fix broken lockfile c023b05b7a
Ash fix(core): reset global search results when SEARCH_REQUEST_COMPLETE occurs after any action causing search parameters to change (#6224) 00a5d91ffc
Ash feat(core): add prefix search support (#6010) 3849b5370c
Herman Wikner fix(tasks): padding when comment input is focused (#6372) f6c46cc608
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to v6.6.6 (#6358) 658568b684
RitaDias fix(block-tools): removal of strikethrough in links when copying from gdocs to PTE (#6382) 52cf1c7d4a
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.10 (#6383) 1f26e1bc9d
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.4 (#6386) fb78d57c98
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.10 (#6385) 330117ee19
renovate[bot] chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.8 (#6384) 008ae4286e
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.31 (#6388) c8b411ac59
Per-Kristian Nordnes fix(form/inputs): Remove obsolete code for restoring selection after editing Annotation (#6389) b7961fdb59
cngonzalez test(core): unit tests for document actions (#6371) 89a9696e5b
Ash fix(core): ignore locally applied createIfNotExists mutations when using server actions (#6334) c204a7ae0a
Herman Wikner feat(core): make PTE resizable (#6255) d92eea390f
cngonzalez fix: update unit tests to account for new create behavior (#6391) 55cacc6e5f
Ash feat(core): enable Text Search API search strategy by default (#6373) 679a788850

v3.37.2

1 month ago

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

We recommend that you check out the instructions for the Sanity Studio v3.37.0 release before upgrading. If you have already updated your dependencies as described in that document (i.e., you are updating from v3.37.0), you can proceed with updating your studio as normal:

To upgrade a v3 Studio, run this command in its folder:

npm install sanity@latest

🐛 Notable bugfixes

  • Fixes an issue where sanity typegen generate would crash due to an incorrect babel configuration path
  • Fixes an issue where sanity typegen generate would crash if the output directory did not exist

📓 Full changelog

Author Message Commit
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.17 (#6289) 2e99f2af9a
renovate[bot] chore(deps): update react monorepo (#6290) f51142c0f6
renovate[bot] chore(deps): update dependency @sanity/assist to v3 (#6291) c119f3861f
Cody Olsen refactor(test-exports): mark tests that are expected to fail as todo (#6292) 911a3e20be
renovate[bot] chore(lockfile): update dependency @sanity/logos to v2.1.10 (#6293) 6f66d80dd0
renovate[bot] chore(deps): update dependency @sanity/icons to ^2.11.8 (#6294) 387c2bd9dc
renovate[bot] chore(lockfile): update dependency @sanity/color to v3.0.6 (#6295) a3061ee69b
Espen Hovlandsdal fix(codegen): prevent crash due to incorrect babel config path (#6298) fc784d1d57
Espen Hovlandsdal fix(cli): ensure output path for types exist before writing (#6300) e75bffe56f
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.1.2 (#6301) 9ebe73d3eb

v3.37.1

1 month ago

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

We recommend that you check out the instructions for the Sanity Studio v3.37.0 release before upgrading. If you have already updated your dependencies as described in that document (I.e., you are updating from v3.37.0), you can proceed with updating your studio as normal:

npm install sanity@latest

🐛 Notable bugfixes

  • Fixes a regression in v3.37.0 that affected embedded studios in certain environments and test runners
  • Fixes an issue where newly created studios used an outdated version of styled-components

📓 Full changelog

Author Message Commit
cngonzalez fix: disable server actions in test studio (#6270) f1451a9959
renovate[bot] chore(deps): update dependency @sanity/tsdoc to v1.0.16 (#6272) 7df486d6d0
renovate[bot] chore(lockfile): update dependency @sanity/google-maps-input to v4.0.1 (#6273) d64152f57b
renovate[bot] chore(lockfile): update dependency @sanity/logos to v2.1.9 (#6274) 7a894794c8
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.9 (#6276) 072996807d
renovate[bot] chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.4 (#6277) 49a553880d
renovate[bot] chore(deps): update dependency @sanity/eslint-config-studio to v4 (#6197) 0b792e37a1
Cody Olsen chore(deps): update dependency @sanity/pkg-utils to v6 (#6280) d9992ccad8
renovate[bot] chore(lockfile): update dependency @sanity/assist to v2.0.5 (#6279) a1efe067e7
Cody Olsen fix: bump styled-components used by npm create sanity (#6281) 61dbbe28b6
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.1.1 (#6283) 90c7c57219
Cody Olsen chore: add @repo/test-exports suite (#6284) 9d2a437eff
Cody Olsen fix: restore node ESM strict mode support (#6287) 46563c8910

v3.37.0

1 month ago

:warning: This upgrade requires [email protected] and @sanity/ui@2

This release comes with version requirements for the following packages:

If you're maintaining a plugin for Sanity Studio, we recommend upgrading its dependencies too.

styled-components (required)

We have seen incompatibility issues when styled-components@5 is used outside of the Vite configuration that ships with sanity, for example, when the Studio is embedded in a Next.js or Remix project.

Styled Components is a required dependency for Sanity Studio projects. By upgrading it, you can also delete the @types/styled-components and react-is dependencies that were required with styled-components@5:

# npm
npm install sanity@latest styled-components@^6.1
npm rm @types/styled-components react-is

# pnpm

pnpm install sanity@latest styled-components@^6.1
pnpm rm @types/styled-components react-is

# yarn

yarn add sanity@latest styled-components@^6.1
yarn rm @types/styled-components react-is

Note: if you have local customizations in your Sanity Studio that are using styled-components you may need to make some minor adjustments to the customization code. For more details, please consult the styled-components migration guide.

@sanity/ui

Studio projects that use @sanity/ui for customizations and have it as a dependency in package.json needs to upgrade to @sanity/ui@2:

# npm
npm install "@sanity/ui@^2"

# pnpm
pnpm install "@sanity/ui@^2"

# yarn
yarn add "@sanity/ui@^2"

✨ Highlights

Tasks (Beta)

Sanity Studio now ships with Tasks. You can now:

  • Target tasks for specific documents
  • Assigned tasks to Studio members
  • Comment on tasks, and use @-mentions
  • Resolve tasks

Tasks for Sanity Studio

Tasks ships enabled by default. If you want to disable tasks in your Studio, you can do so with this configuration:

// ./sanity.config.ts|js

export default defineConfig({
  // ... rest of config
	unstable_tasks: { enabled: false },
})

Learn more about Tasks in the documentation:

Other features

  • Resolves "Masquerading as CJS and ESM" type errors
  • Adds ESM with .mjs exports for full support of Node.js' native ESM mode while still offering support for .esm.js exports for legacy bundlers
  • Adds missing sideEffects: false conditions to package.json files, improving tree-shaking and reducing bundle sizes for embedded Sanity Studio projects
  • Simplifies the Shopify schema starter template

🐛 Notable bugfixes

  • Fixes a bug where wrongly formatted configuration would be inserted into tsconfig.json when sanity init was run inside of a Next.js project
  • Fixes an issue where importing .scss or .sass files from the studio configuration or a descendant file would cause certain CLI commands to crash
  • Improves error message when extracted schema (from sanity schema extract) could not be found when running sanity typegen generate
  • Fixes an issue where the CLI might suggest deprecated Sanity v2 commands if you mistype a command name
  • Makes the current field on slugs required when used with the --enforce-required-fields flag in sanity typegen contexts
  • Fixes a bug where running npx sanity init in a Next.js project would break the tsconfig.json configuration

📓 Full changelog

Author Message Commit
Cody Olsen chore(renovate): pin framer-motion to known stable (#6166) b54852a6e5
ecospark[bot] chore(prettier): fix unformatted files 🤖 ✨ (#6168) 19891dce77
renovate[bot] chore(deps): update dependency @sanity/icons to ^2.11.6 (#6169) 9f50f6df47
renovate[bot] chore(deps): update dependency turbo to ^1.13.2 (#6170) 073b5b8463
renovate[bot] chore(deps): update dependency vite to ^4.5.3 (#6171) b14d32409e
renovate[bot] chore(lockfile): update dependency @portabletext/react to v3.0.15 (#6172) fbc7183778
renovate[bot] chore(lockfile): update dependency @sanity/color to v3.0.4 (#6173) cdf561e5c0
renovate[bot] chore(lockfile): update dependency @sanity/logos to v2.1.8 (#6175) ffb6ddde91
renovate[bot] fix(deps): Update react monorepo (#6176) c4f24d2a66
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.9 (#6177) fbeb6fbabd
renovate[bot] chore(deps): update dependency use-hot-module-reload to v2 (#6180) 39bf293263
Cody Olsen Revert "chore(deps): update dependency use-hot-module-reload to v2 (#6180)" (#6182) 3b8c28ce11
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.0.13 (#6178) 4f1b36d245
renovate[bot] fix(deps): update dependency get-it to ^8.4.17 (#6179) ee162803e9
Cody Olsen fix(deps): pin framer-motion to the same version used by @sanity/ui (#6183) 7120aa8ce6
Cody Olsen chore: fix typings error b369d92a27
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6184) b4f9ba59e0
renovate[bot] chore(deps): lock file maintenance (#6186) a32e5d57da
Cody Olsen chore: pin @sanity/eslint-config-i18n 89fac9f731
Cody Olsen chore: pin @playwright/test 1f4700c048
Cody Olsen chore: pin @playwright/experimental-ct-react e09a5ef44d
renovate[bot] chore(deps): lock file maintenance (#6187) dcbb7a4c1a
Cody Olsen fix: use named styled import for better ESM runtime compat (#6185) b544abb372
Herman Wikner fix(comments): weaken references in content snapshot (#6131) d1f1a4cd40
renovate[bot] chore(deps): update dependency @sanity/pkg-utils to ^4.4.4 (#6191) 199f3104c5
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.5 (#6194) 3113498614
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.6 (#6195) f41b784f8e
renovate[bot] chore(deps): update linters to v7 (#6192) 4247e4fc7c
Cody Olsen refactor: support strict: true in @sanity/schema codebase (#6207) 605bd62b37
Cody Olsen chore: reduce test flakiness by increasing timeout to 60s (#6208) 1cecb456f3
Simeon Griggs simplify 'shopify' template schema (#6161) 69ff15fd3a
Pedro Bonamin fix(tasks): disable autocomplete on 'assign to' input (#6193) da49af0835
Espen Hovlandsdal fix(schema): make current field for slugs required (#6205) e420b6f11a
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.0.14 (#6209) f4d2e7ebc4
Espen Hovlandsdal fix(cli): do not suggest v2 cli commands on "no such command" error (#6211) 69ff7ff2c1
Espen Hovlandsdal fix(cli): improve error handling on missing extracted schema (#6204) 4fb0e66a64
renovate[bot] chore(deps): update dependency use-hot-module-reload to v2 (#6217) 4385ca879d
renovate[bot] chore(deps): replace dependency is-hotkey with is-hotkey-esm ^1.0.0 (#6218) 12f25d53f8
renovate[bot] chore(deps): update dependency @portabletext/toolkit to ^2.0.14 (#6219) a72b65214d
renovate[bot] chore(deps): update dependency @types/arrify to ^1.0.4 (#6220) 25a95a0a87
renovate[bot] fix(deps): update dependency get-it to ^8.4.18 (#6222) 70f0963337
renovate[bot] chore(lockfile): update dependency @portabletext/react to v3.0.17 (#6221) a4de075223
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.10 (#6228) ba323ae876
renovate[bot] chore(deps): update dependency @babel/preset-env to ^7.24.4 (#6226) 7c60f3ed7b
renovate[bot] chore(lockfile): update dependency @sanity/icons to v2.11.7 (#6174) 1af2e4f8b0
renovate[bot] chore(deps): update dependency @sanity/icons to ^2.11.7 (#6231) 830f403368
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.0.15 (#6229) a6eb947793
renovate[bot] chore(lockfile): update dependency @sanity/color to v3.0.5 (#6232) 7887f0d84a
renovate[bot] chore(lockfile): update dependency @sanity/logos to v2.1.9 (#6233) c1b72fc6b6
Espen Hovlandsdal fix(cli): use stub file loader for scss, sass extensions (#6215) 80f4f220f1
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.2 (#6235) acbb08a9d3
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.6 (#6237) f0f653760e
Cody Olsen refactor(renovate): ignore slate and slate-react as they're bumped manually (#6242) 6fc2bbbde6
ecospark[bot] chore(prettier): fix unformatted files 🤖 ✨ (#6243) ef3385745f
Bjørge Næss fix(cli): formalize requirement of styled-components@6 and @sanity/ui@2 (#6234) 5fe2d47f49
renovate[bot] chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.6 (#6238) a4be162b23
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.7 (#6239) debb2cc37f
Cody Olsen refactor(CI): use the official github app token generator action (#6230) 40dff99a6f
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.0.16 (#6241) 58c319a82d
Binoy Patel chore(core): remove unusued ChangeIndicatorContext (#6214) e9788135b9
Pedro Bonamin fix(core): add readOnly prop to dragHandle (#6190) 234d009826
renovate[bot] chore(deps): update dependency @sanity/visual-editing to v1.8.7 (#6248) 4a31e88f17
renovate[bot] chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.7 (#6249) e89a8b3e5c
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.9 (#6250) 736a96ed92
renovate[bot] fix(deps): update dependency @sanity/presentation to v1.12.3 (#6251) 0959294ef6
renovate[bot] chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.0 (#6252) 56660996d9
renovate[bot] fix(deps): update dependency @sanity/client to ^6.15.11 (#6253) a3b7458352
renovate[bot] fix(deps): update dependency @sanity/ui to ^2.1.0 (#6254) 6b2abb996d
Pedro Bonamin fix(tasks): change tasks button in nav to be toggle (#6236) 8e40ecb086
cngonzalez feat(core): add serverActions flag to config (#6212) 1b94d404f4
Knut Melvær fix: replace the JSON5 parser with JSON (#6149) fe11588c74
Pedro Bonamin fix(tasks): tasks UI updates. (#6136) d45b210dcb
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6258) 7b44425e75
renovate[bot] chore(lockfile): update dependency @sanity/logos to v2.1.9 (#6259) 1d998a02dd
renovate[bot] chore(lockfile): update dependency @sanity/react-loader to v1.9.9 (#6260) a32df3a6fc
renovate[bot] chore(deps): update dependency @sanity/google-maps-input to v4 (#6262) e63ce42504
renovate[bot] chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.0 (#6261) 79c5bb10d3
renovate[bot] chore(deps): lock file maintenance (#6264) 787aa33b09
renovate[bot] chore(lockfile): update dependency i18next to v23.11.0 (#6263) 64c6a13bae
renovate[bot] chore(lockfile): update dependency @portabletext/react to v3.0.17 (#6265) 3a7d2fd9ef
renovate[bot] chore(lockfile): update dependency sanity-plugin-mux-input to v2.3.1 (#6266) 4e3afaca17
Ash fix(structure): prevent duplication of search filters when listenSearchQuery is used (e.g. in document lists) (#6247) fce97c7898
Cody Olsen fix: upgrade to @sanity/pkg-utils v5 and use updated ESM best practices (#5983) 62a6810bf8
Pedro Bonamin feat(tasks): add tasks upsell ui (#6216) 658262e720
Pedro Bonamin feat(tasks): add telemetry events to tasks (#6246) 346600cc7a
Ash feat(core): adopt Actions API (#6257) 4d4522400d
Bjørge Næss fix(deps): narrow accepted peer dependency range of style-components (#6271) 1ac127b33c

v3.36.4

1 month ago

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

To upgrade a v3 Studio, run this command in its folder:

npm install sanity@latest

🐛 Notable bugfixes

  • Fixes an issue in the Portable Text editor in which annotations were not opening (bug introduced in v3.36.3)
  • Fixes a potential cross-origin error from being shown in the developer console

📓 Full changelog

Author Message Commit
Pedro Bonamin fix(core): remove custom options in comments upsell request (#6201) 46c7ce8ed9
Pedro Bonamin fix(structure): annotations not opening in portable text editor (#6198) 907c904336

v3.36.3

1 month ago

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

To upgrade a Sanity Studio, run this command in its folder:

npm install sanity@latest

Notable changes

  • Increases the default height of the Portable Text editor

Notable bugfixes

  • Fixes the --enforce-required-fields flag for the sanity typegen generate command not correctly respecting validation rules
  • Fixes a few focus issues where the Portable Text editor would sometimes jump to the start of a block or scroll to a previously opened block on focus inside of the Presentation tool
  • Fixes an issue in which when the tasks panel is open, searching for content in the Cmd + K search changes target document rather than searches the studio

📓 Full changelog

Author Message Commit
Tommy Petty fix(pte): update default height of PTE in Form (#6119) 5756753c49
Sindre Gulseth fix(schema-extraction): check for _required field in validation rules (#6151) 5ba26a5746
Cody Olsen chore: add prettier-plugin-packagejson (#6155) 8f7fe70de2
renovate[bot] chore(deps): update pnpm to v8.15.6 (#6154) 07b0745a2e
renovate[bot] chore(lockfile): update dependency framer-motion to v11.0.24 (#6144) 954c8921d4
Rupert Dunk fix(structure): improve document pane path handling (#6129) 9b4d1059dd
renovate[bot] chore(deps): update babel monorepo (#6159) eb97fe2364
renovate[bot] chore(deps): update dependency @types/babel__traverse to ^7.20.5 (#6160) 16f32c9614
Sindre Gulseth feat(schema): handle assetRequired when extracting schema with enforceRequiredFields (#6157) cd529795a3
Sindre Gulseth chore(deps): upgrade groq-js to latest (#6162) 8db748575b
Pedro Bonamin fix(tasks): don't open tasks search on hotkey + enter (#6165) d3873165eb
ecospark[bot] chore(deps): dedupe pnpm-lock.yaml (#6164) 74a7a75470
Sindre Gulseth chore(codegen): add enforceRequriedFields to spinner output (#6163) b68e6501af

v3.36.2

1 month ago

Installation and upgrading

To initiate a new Studio without installing the CLI globally:

npm create sanity@latest

To upgrade a v3 Studio, run this command in its folder:

npm install sanity@latest

🐛 Notable bugfixes

  • Fixes an issue where clicking "Publish" and possible other actions would throw the error Sanity LocaleContext value missing.
  • Fixes an issue in which users' names were sometimes displayed in lowercase in the tasks assignee list.

📓 Full changelog

Author Message Commit
Pedro Bonamin fix(tasks): don't lowercase users when searching in the assignee menu (#6138) 27643c8a37
cngonzalez fix: add default listFormat locale where LocaleProvider may not be available (#6147) 3c4d4cf1d4