{"id":"src_PlhPkWd8Geh6zsdukVGcX","slug":"sanity-changelog","name":"Sanity Changelog","type":"feed","url":"https://www.sanity.io/changelog","orgId":"org_c2QLShGghMZ4YMc-cYwPa","org":{"slug":"sanity","name":"Sanity"},"isPrimary":false,"metadata":"{\"evaluatedMethod\":\"feed\",\"evaluatedAt\":\"2026-04-11T13:59:06.104Z\",\"feedUrl\":\"https://www.sanity.io/docs/changelog/feed/json\",\"feedType\":\"jsonfeed\",\"feedDiscoveredAt\":\"2026-04-11T13:59:06.104Z\",\"noFeedFound\":false}","releaseCount":55,"releasesLast30Days":14,"avgReleasesPerWeek":4.4,"latestVersion":"2.17.1","latestDate":"2026-04-17T22:03:06.000Z","changelogUrl":null,"hasChangelogFile":false,"lastFetchedAt":"2026-04-19T03:02:59.005Z","trackingSince":"2026-01-22T12:00:00.000Z","releases":[{"id":"rel_QsFXqJvVq4RHBZVZrNJx2","version":"2.17.1","title":"MCP server v2.17.1: create_version improvements and patch fixes","summary":"## Improvements\n\n- `create_version`** **tool: Simplified the response and added follow-up guidance for editing version documents with `patch_document_...","content":"## Improvements\n\n- `create_version`** **tool: Simplified the response and added follow-up guidance for editing version documents with `patch_document_from_json` or `patch_document_from_markdown`.\n\n## Fixes\n\n- `patch_document_from_json`** **tool: Numeric array indices are now rejected, and patch execution has been simplified for more predictable behavior.\n- Authentication: `/token` responses now include `Cache-Control: no-store` to prevent caching of OAuth tokens.","publishedAt":"2026-04-17T22:03:06.000Z","url":"https://www.sanity.io/docs/changelog/680eec2d-5b8f-4337-8ada-a96263cd9306","media":[]},{"id":"rel_DWent30wPZb1nraYBHv8I","version":"5.21.0","title":"Sanity Studio v5.21.0: GROQ improvements to Vision plugin and assorted bugfixes","summary":"This release improves syntax highlighting for GROQ queries and fixes multiple stability issues including autocompletion rendering, crashes from locali...","content":"This release improves syntax highlighting for GROQ queries and fixes multiple stability issues including autocompletion rendering, crashes from localized bundles, document ID copying, search focus loss, and reference editing problems.\n\n## Vision tool improvements\n\nImproved syntax highlighting of GROQ-queries in the Vision plugin.\n\n## 🐛 Notable bugfixes and improvements\n\n- Fixed a issue where autocompletion for reference picker wouldn’t render correctly in some situations.\n- Fixes an issue where some localized bundles would cause the studio to crash.\n- Fixed an issue where “Copy document ID” on live edit document types copied the draft ID instead of the published ID.\n- Fixes an issue where typing in the release document search would cause the input to lose focus when no results matched.\n- `extractSchema` now returns a proper object type for object types without fields, instead of returning an unknown type. This affects consumers of the `@sanity/schema` extract API.\n- In multi-workspace studios, changing the document list sort order in one workspace no longer crashes another workspace whose schema lacks the sorted field. The studio falls back to sorting by last edited. Invalid sort orderings appear disabled in the menu and log a console warning.\n- Fixes an issue preventing referenced document from being edited when opened from an object in popover mode.\n- Custom sort orderings now support array index access in field paths (e.g., `items[0].value`). Previously, defining an ordering like `by: [{field: &#x27;items[0].value&#x27;, direction: &#x27;asc&#x27;}]` would crash the document list. Array index and `_key`-based access are both supported for single-member-type arrays.\n- The incoming references inspector now shows a loading indicator while fetching data instead of briefly displaying “No incoming references found.”","publishedAt":"2026-04-15T14:35:44.567Z","url":"https://www.sanity.io/docs/changelog/studio-NS4yMC4w","media":[]},{"id":"rel_Jb38SGTYRT9Sm1CkNgRWV","version":null,"title":"Media Library: Visibility toggle bugfix","summary":"This release improves permission handling for the asset privacy toggle in the Media Library sidebar.\n\n## Notable bugfixes\n\nFixed an issue where the pu...","content":"This release improves permission handling for the asset privacy toggle in the Media Library sidebar.\n\n## Notable bugfixes\n\nFixed an issue where the public/private visibility toggle remained visually enabled for users with read-only access. The toggle now correctly renders in a disabled state and displays an “Insufficient permissions” tooltip when you don’t have write access to the asset.","publishedAt":"2026-04-15T14:34:00.000Z","url":"https://www.sanity.io/docs/changelog/apiChange-ml-happy-birds-ask","media":[]},{"id":"rel_vbU3V0WSsspXngMTRAkf0","version":null,"title":"Media Library: New sidebar pattern in collections interface","summary":"This release updates the Collections UI to use a sidebar pattern for editing titles and descriptions, inline with Asset editing. \n\n![An editing panel ...","content":"This release updates the Collections UI to use a sidebar pattern for editing titles and descriptions, inline with Asset editing. \n\n![An editing panel showing an image preview of a modern building, with fields for “Title” (set to “Architecture”) and “Description,” along with creation and update dates and a save button at the bottom.](https://cdn.sanity.io/images/3do82whm/next/8f1b3289e38ba105d9f1b8163d8c0a51fb19923d-772x1652.png)","publishedAt":"2026-04-13T18:20:38.493Z","url":"https://www.sanity.io/docs/changelog/apiChange-ml-wacky-foxes-say","media":[{"type":"image","url":"https://cdn.sanity.io/images/3do82whm/next/8f1b3289e38ba105d9f1b8163d8c0a51fb19923d-772x1652.png","alt":"An editing panel showing an image preview of a modern building, with fields for “Title” (set to “Architecture”) and “Description,” along with creation and update dates and a save button at the bottom."}]},{"id":"rel_ze46pnoS0eQ81W2Q5WXNf","version":null,"title":"Functions: New Function Type: Sync Tag Invalidate Functions","summary":"We&#x27;ve added a new Sanity Function type that lets you respond to changes in Live Content by means of sync tags.\n\n## ✨ Highlights\n\n### React to cha...","content":"We&#x27;ve added a new Sanity Function type that lets you respond to changes in Live Content by means of sync tags.\n\n## ✨ Highlights\n\n### React to changing Live Content\n\nYou can now run functions whenever Live Content changes. This new function type extends the event-driven architecture already available for documents, giving you more control over your content workflow automation.\n\nThe primary use of this new function type is to invalidate third party caches fronting your Sanity Live Content.\n\nHere&#x27;s an example of defining a [sync tag invalidate function](https://www.sanity.io/docs/functions/sync-tag-function-quickstart):\n\n```\nimport { defineBlueprint, defineSyncTagInvalidateFunction } from '@sanity/blueprints'\n\nexport default defineBlueprint({\n  resources: [\n    defineSyncTagInvalidateFunction({\n      name: 'bust-cache',\n      event: {\n        resource: {\n          type: 'dataset',\n          id: 'myProjectId.myDatasetName',\n        }\n      },\n    })\n  ],\n})\n```\n\nTo get started, **update to the latest** `@sanity/blueprints` and `@sanity/functions` libraries using npm or pnpm, and ensure you&#x27;re using the latest `sanity` CLI. The `defineSyncTagInvalidateFunction` helper requires `@sanity/blueprints` v0.15.2 or later and the `syncTagInvalidateEventHandler` runtime function helper requires `@sanity/functions` v1.3.0 or later. \n\nFor more information about Functions, see the [Sanity Functions documentation](https://www.sanity.io/docs/functions/functions-introduction).","publishedAt":"2026-04-13T16:30:11.631Z","url":"https://www.sanity.io/docs/changelog/7a491dd1-67e8-41e0-9a89-eb9704055dc6","media":[]},{"id":"rel_zVmFUfHb2J6ZS1z6Gx6AH","version":null,"title":"Content Agent: Inline confirmation dialogs, Slack improvements, and bug fixes","summary":"This update introduces inline confirmation dialogs that let you review actions before the agent executes them. The Slack integration gains more concis...","content":"This update introduces inline confirmation dialogs that let you review actions before the agent executes them. The Slack integration gains more concise responses and usability improvements, along with several bug fixes.\n\n## Inline confirmation dialogs\n\nFor larger bulk operations on search results, the agent pauses and asks for your confirmation before proceeding. An inline confirm/cancel dialog appears in the chat when the estimated cost exceeds 100 AI credits, giving you a chance to review what&#x27;s about to happen.\n\n## Additional features\n\n- **Slack - more concise responses**: The Slack agent now gives shorter, more focused answers.\n- **Slack - display names in suggestions**: Suggestion dropdowns in the Slack integration now show real names instead of IDs.\n\n## Notable bug fixes and improvements\n\n- Fixed a crash that could occur when switching between the proposed changes tab and Studio navigation.\n- Resolved an issue where agent responses could show duplicate or stacked content in the chat.\n- Single questions without follow-up no longer retain context from previous conversations.\n- The Slack integration now correctly displays error messages instead of failing silently.\n- Canceling an agent response while it&#x27;s still generating no longer produces error messages.","publishedAt":"2026-04-07T22:25:22.592Z","url":"https://www.sanity.io/docs/changelog/5c5ebe6c-2b09-46cf-b7df-10ca1aaa351f","media":[]},{"id":"rel_quqAc-j_PoxYpwSTZcfie","version":"5.20.0","title":"Sanity Studio v5.20.0: Fixes array field visibility, comment input flashing, and fallback media for unpublished documents","summary":"This release fixes several issues including array fields disappearing when expanding panes, IDE autocomplete for field definitions, nested array rende...","content":"This release fixes several issues including array fields disappearing when expanding panes, IDE autocomplete for field definitions, nested array rendering problems, and comment input flashing in Portable Text fields.\n\n## 🐛 Notable bugfixes and improvements\n\n- Fixes IDE autocomplete for the `type` property in `defineField` when used inside `defineType`’s `fields` array. Previously, autocomplete suggestions were only available when `defineField` was used standalone (thanks [@codythatsme](https://github.com/codythatsme)).\n- Fixes issue where array item previews would render incorrectly when the array was deeply nested inside another array using grid layout.\n- Fixes issue causing the comment input to flash when authoring a comment inside a Portable Text field.\n- Fixes issue causing fallback media to be displayed when a field references a document with no published version.\n- Fixes an issue where array fields could disappear after expanding their containing pane, if the array field had its **Add item** button disabled (e.g. via `disableActions`).","publishedAt":"2026-04-07T11:53:53.270Z","url":"https://www.sanity.io/docs/changelog/studio-NS4xOS4w","media":[]},{"id":"rel_4RECBMUDKjnqKbY6sTAil","version":"2.17.0","title":"MCP server v2.17.0: New whoami tool, read_docs improvements, and bug fixes","summary":"## New Features\n\n- `whoami`** **tool: Check which user is currently authenticated and their authentication method.\n\n## Improvements\n\n- `read_docs`** *...","content":"## New Features\n\n- `whoami`** **tool: Check which user is currently authenticated and their authentication method.\n\n## Improvements\n\n- `read_docs`** **tool: Simplified the parameters so it now accepts `url` or `path` separately instead of a combined field. Also rejects non-Sanity URLs.\n- `list_sanity_rules`** **tool: Fixed incorrect rule name prefixes shown in the quick reference.\n- System prompt: Improved instructions for the `discard_drafts` tool and reduced overall prompt size.","publishedAt":"2026-04-03T22:54:41.672Z","url":"https://www.sanity.io/docs/changelog/8c095b96-d8ec-464d-8dc8-1248127ff97e","media":[]},{"id":"rel_wv8p62_F0o7Eo2yIsplC3","version":"5.19.0","title":"Sanity Studio v5.19.0: New Sanity feedback option inside the studio and assorted bug fixes","summary":"This update includes a new feedback mechanism, assorted fixes, and improvements to the CLI.\n\n## You can now send feedback to Sanity directly from Stud...","content":"This update includes a new feedback mechanism, assorted fixes, and improvements to the CLI.\n\n## You can now send feedback to Sanity directly from Studio\n\n![The new ](https://media.releases.sh/cdn-cgi/image/width=1200,quality=80,format=auto/sources/sanity-changelog/a0b6d5bdf44b0877.png)\nYou can now provide Sanity feedback directly from your studio by opening the “Help and Resources” menu and picking send feedback!\n\n## 🐛 Notable bugfixes and improvements\n\n- CLI: Use `app.title` from config in SDK app HTML title.\n- CLI: Add `--url` flag and unattended mode support for `sanity deploy`.\n- CLI: Fix dataset alias passing `apiName` over `displayName` to input validation.\n- CLI: Fix `--help` flag resolving singular topic aliases.\n- CLI: Prompt for dataset when not provided during import.\n- CLI: Non-interactive login now shows actionable error messages.\n- CLI: Remove `--legacy-peer-deps` from npm install during init.\n- Fixes an issue where document list items in `CommandList` were not clickable on initial render if the mouse was already positioned over the list.\n- Fixes an issue where tasks could be created in the original dataset instead of the add-on dataset when both the document and the task were open at the same time.\n- Fixes an issue where zero width whitespace characters at the end of strings would cause Visual Editing overlays to fail to show in Presentation Tool.\n- Fixes an issue where publishing anonymous versions (like those created by Content Agent) when a draft also exists would cause the draft to publish instead.\n- Fixes an issue where icons that were provided with initial value templates were not being shown in template pickers in the Studio.\n- When pasting into a document, read-only fields are now preserved instead of being overwritten.\n- Fixes an issue where `allowRelative: true` was ignored when the schema list excludes `http.`\n- Fixes issue that could cause duplicating large content releases to time out.","publishedAt":"2026-04-01T10:15:27.272Z","url":"https://www.sanity.io/docs/changelog/studio-NS4xOC4w","media":[{"type":"image","url":"https://cdn.sanity.io/images/3do82whm/next/c605de38040a5285d4773b51dee1036c9b2beac8-1298x973.png","alt":"The new ","r2Key":"sources/sanity-changelog/a0b6d5bdf44b0877.png","r2Url":"https://media.releases.sh/sources/sanity-changelog/a0b6d5bdf44b0877.png"}]},{"id":"rel_h8-jvUtx63rYyf_deaqcA","version":"2.16.0","title":"MCP server v2.16.0: Content Releases tools and Figma Make CORS support","summary":"## New features\n\n- `create_release`** tool**: Create content releases to stage and publish groups of document changes together.\n- `list_releases`** to...","content":"## New features\n\n- `create_release`** tool**: Create content releases to stage and publish groups of document changes together.\n- `list_releases`** tool**: List content releases with filtering by state and pagination support.\n\n## Improvements\n\n- `create_project`** tool**: New projects now include the Figma Make CORS origin by default.\n- `add_cors_origin`** tool**: The Figma Make CORS origin is now available as a recognized origin value.","publishedAt":"2026-03-31T12:00:00.000Z","url":"https://www.sanity.io/docs/changelog/18768932-2676-4550-b70d-b6f5de0a0221","media":[]},{"id":"rel_6w0qlUpZHF1CBh77ckFHf","version":null,"title":"Sanity Docs: New docs for GROQ support, Sanity client, Next.js, system requirements, and content agents","summary":"Here&#x27;s a roundup of new and revamped documentation, plus a small improvement to the docs site itself.\n\n## New and updated docs\n\n### GROQ feature ...","content":"Here&#x27;s a roundup of new and revamped documentation, plus a small improvement to the docs site itself.\n\n## New and updated docs\n\n### GROQ feature support reference\n\nGROQ behaves differently depending on where you run it. [A new reference page](https://www.sanity.io/docs/content-lake/groq-feature-support-by-context) documents which GROQ features are supported in each context. Use it to quickly check whether a specific operator, function, or pipeline feature is available in the context you&#x27;re working in.\n\n### Getting started with `@sanity/client`\n\nThe [@sanity/client documentation](https://www.sanity.io/docs/apis-and-sdks/js-client-getting-started) has been rewritten and moved from the package README into structured, searchable articles on the docs site. The new guides cover installation, configuration, and common operations like fetching, creating, and patching documents.\n\n### New Next.js section and updated guides\n\nNext.js now has its own [dedicated section in the docs](https://www.sanity.io/docs/nextjs/introduction), making it easier to find framework-specific guidance in one place. The [App Router visual editing guide](https://www.sanity.io/docs/visual-editing/visual-editing-with-next-js-app-router) has also been refreshed to make it easier for you, and your AI coding agents, to set up Visual Editing.\n\n### Studio system requirements\n\nA [new system requirements page](https://www.sanity.io/docs/studio/system-requirements) documents the minimum and recommended Node.js versions, supported browsers, and other environment requirements for running Sanity Studio.\n\n### The Content Agent ecosystem grows\n\nNew docs are available for [Content Agent for Slack](https://www.sanity.io/docs/content-agent/content-agent-for-slack), the [Content Agent API](https://www.sanity.io/docs/apis-and-sdks/content-agent-api), and [Dataset Embeddings](https://www.sanity.io/docs/content-lake/dataset-embeddings). Check out the [announcements](https://www.sanity.io/blog/content-agent-meet-slack) for more details on these features.\n\n## Docs platform improvements\n\n### Cross-section link affordances\n\n![Screenshot of docs sidebar showing sub-section names](https://media.releases.sh/cdn-cgi/image/width=1200,quality=80,format=auto/sources/sanity-changelog/c99389021bae7e24.png)\nWhen navigating the docs sidebar, links that take you to a page in a different part of the docs now include a visual indicator so you know you&#x27;re about to leave the current section.","publishedAt":"2026-03-30T16:08:41.210Z","url":"https://www.sanity.io/docs/changelog/21ab5259-a705-443f-b3ba-c63284819de8","media":[{"type":"image","url":"https://cdn.sanity.io/images/3do82whm/next/e28e84af2489acc0f8ada8fb70e91bfdbe5303d0-1081x810.png","alt":"Screenshot of docs sidebar showing sub-section names","r2Key":"sources/sanity-changelog/c99389021bae7e24.png","r2Url":"https://media.releases.sh/sources/sanity-changelog/c99389021bae7e24.png"}]},{"id":"rel_LKfNfNHA1AMmXWS-I29xc","version":null,"title":"Content Agent: File uploads, custom instructions, and additional improvements","summary":"This update adds file uploads to the agent chat, persistent custom instructions, and the option to merge proposed changes into an existing release. Pl...","content":"This update adds file uploads to the agent chat, persistent custom instructions, and the option to merge proposed changes into an existing release. Plus better context handling in long conversations and several bug fixes.\n\n## File uploads\n\n![A white UI card titled ](https://media.releases.sh/cdn-cgi/image/width=1200,quality=80,format=auto/sources/sanity-changelog/d5147716b11b8ad4.png)\nYou can now upload images and files directly in the agent chat. Attach a file to the conversation and the agent can reference it when creating or updating content. Uploaded images display as thumbnails in the chat thread. Supported file types: PDF, TXT, JPEG, PNG, GIF, and WebP. The maximum file size is 32 MB.\n\n## Custom instructions\n\n![Content Agent ](https://media.releases.sh/cdn-cgi/image/width=1200,quality=80,format=auto/sources/sanity-changelog/8e6dd0981810d710.png)\nSet persistent guidelines for how the agent writes and responds. Configure tone, language, style preferences, or any other instructions you want applied to every conversation.\n\nCustom instructions are available at two levels:\n\n- Organization: Manage &gt; Organization &gt; Settings &gt; Content Agent\n- User: Dashboard &gt; Account settings &gt; Content Agent\n\nOrganization-level instructions apply to all users in the organization. User-level instructions apply to your conversations only.\n\n## Merge proposed changes into an existing release\n\nWhen the agent proposes content changes, you can now merge them into an existing release instead of creating a new one. This makes it easier to group related changes together before publishing.\n\n## Content Agent API and Slack integration\n\nIn case you missed it, we now offer a ways to interact with Content Agent through and [HTTP API](https://www.sanity.io/docs/apis-and-sdks/content-agent-api) and a [Slack integration](https://www.sanity.io/docs/content-agent/content-agent-for-slack). Check out the [blog post for details on the Slack integration.](https://www.sanity.io/blog/content-agent-meet-slack)\n\n## Additional features\n\n- **Better context in long conversations: **The agent no longer loses track of earlier messages during extended sessions. Context from earlier in the thread is preserved automatically, even in long conversations.\n- **Smoother response streaming: **Agent responses now stream smoothly as they arrive.\n\n## Notable bug fixes\n\n- Fixed an issue where the agent could get stuck in a loop, repeating itself or producing inaccurate results during multi-step tasks.\n- Chat input now clears correctly after sending a message from the widget or welcome screen.\n- Fixed a connection error that could prevent proposed changes from loading in self-hosted Studios.","publishedAt":"2026-03-24T16:32:28.761Z","url":"https://www.sanity.io/docs/changelog/c903be1c-eeb0-4f49-a4b9-782994bf4f4c","media":[{"type":"image","url":"https://cdn.sanity.io/images/3do82whm/next/07c9ebc899fbcb80815f199b9f082db819c4a1cc-1134x850.png","alt":"A white UI card titled ","r2Key":"sources/sanity-changelog/d5147716b11b8ad4.png","r2Url":"https://media.releases.sh/sources/sanity-changelog/d5147716b11b8ad4.png"},{"type":"image","url":"https://cdn.sanity.io/images/3do82whm/next/54728d46e386b5af348124872cd5759c20620fab-2030x648.png","alt":"Content Agent ","r2Key":"sources/sanity-changelog/8e6dd0981810d710.png","r2Url":"https://media.releases.sh/sources/sanity-changelog/8e6dd0981810d710.png"}]},{"id":"rel_arr4O7YdewB5s4ODKWKO_","version":"5.18.0","title":"Sanity Studio v5.18.0: Fixes Next.js session management and multiple bugfixes and improvements","summary":"This release fixes critical issues with authentication persistence in Next.js, session management errors, and the `@mention` dropdown functionality, w...","content":"This release fixes critical issues with authentication persistence in Next.js, session management errors, and the `@mention` dropdown functionality, while also improving performance by reducing unnecessary API requests.\n\n## 🐛 Notable bugfixes and improvements\n\n- Adds a workaround for a bug where session was not persisted across reloads in studios embedded in Next.js, and would result in an error message  `Session with sid (…) not found`.\n- Reduces number of requests with tag `sanity.studio.history-revision`  after editing documents.\n- Restores the behavior where asset sources receive the current asset in `selectedAssets` when opened via the browse flow, even when the field already has a value.\n- Fixes an issue causing authentication to not persist between page reloads in Next.js.\n- Fixes an issue where the `@mention` dropdown in comments might show “*No users found”* when any `system.group` document had `members: null`.\n- Fixes virtualization issues using the dialog and `renderDefault`.\n\n## CLI bugfixes and improvements\n\n- The `debug`** **command has an improved output format and can now be run outside a project.\n- `init` has improve flags.\n- Many commands now has plural names, with aliases for the singular versions.\n- Deprecated `start` command. Use `preview` instead.\n- Adds support for non-interactive mode for app templates.\n- Load all env vars for schema extract.\n- Prevent duplicate deprecation warnings during `sanity deploy`.\n- Schema extract path always appends `schema.json`.\n- Fixes an issue where import command required `--token` flag.","publishedAt":"2026-03-24T16:19:15.512Z","url":"https://www.sanity.io/docs/changelog/studio-NS4xNy4x","media":[]},{"id":"rel_bsMxUUGSfXZ3h4KsHTJ8p","version":"2.15.1","title":"MCP server v2.15.1: General stability improvements","summary":"## Fixes\n\n- **Reliability.** General stability improvements.","content":"## Fixes\n\n- **Reliability.** General stability improvements.","publishedAt":"2026-03-22T12:00:00.000Z","url":"https://www.sanity.io/docs/changelog/8a22eb23-e860-4be1-8a80-33214971c815","media":[]},{"id":"rel_1a1K8wGJZOPhcI4QpotmD","version":"5.17.1","title":"Sanity Studio v5.17.1: Fixes crash when importing from Sanity in CLI and Node tools","summary":"This release fixes a crash issue that could occur when importing from Sanity in the CLI and other Node-based tools.","content":"This release fixes a crash issue that could occur when importing from Sanity in the CLI and other Node-based tools.","publishedAt":"2026-03-17T19:10:49.725Z","url":"https://www.sanity.io/docs/changelog/studio-NS4xNy4w","media":[]},{"id":"rel_qvIi5zQnCD-HPr1EWAqub","version":"5.17.0","title":"Sanity Studio v5.17.0: New null/undefined sorting control, additional fixes, and improvements","summary":"This release adds control over where null values appear in sorted results and fixes issues with tag input display, file asset drag-and-drop menus, and...","content":"This release adds control over where null values appear in sorted results and fixes issues with tag input display, file asset drag-and-drop menus, and datetime input number entry.\n\n## Add ability to control undefined/null sorting\n\n[Sort orderings](https://www.sanity.io/docs/studio/sort-orders) now supports a `nulls` option to control where null/undefined values appear in results.\n\nDefaults are unchanged and still:\n\n- `desc` -&gt; nulls first\n- `asc` -&gt; nulls last\n\n```\ndefineType({\n  name: 'book',\n  type: 'document',\n  orderings: [\n    {\n      title: 'Publication year',\n      name: 'publicationYear',\n      by: [\n        {\n          field: 'publicationYear',\n          direction: 'desc',\n          nulls: 'last'\n        }\n      ],\n    },\n  ],\n  // ...\n})\n```\n\nNote that overriding the default may have performance implications and negatively impact loading times for document types with lots of documents.\n\n## 🐛 Notable bugfixes and improvements\n\n- Makes tags inputs wider and fixes a Firefox crop issue.\n- Fixes a bug where file asset sources that didn’t have upload capabilities were listed in the drag-to-drop asset source target menu.\n- Fixes an issue where writing in the hour input in the date time input would require double pressing of numbers to get double digit numbers (1 - 1 - 2 to get 12, for example).\n- Divergence management (beta): this release includes the beta version of divergence management, which shows editors where changes have occurred outside a document version or draft since it was created. The purpose of this tool is to help prevent editors accidentally publishing outdated versions. Divergence management (beta) can be switched on by setting the workspace `advancedVersionControl.enabled` configuration to `true`. More details and documentation will be published as this tool matures.","publishedAt":"2026-03-17T16:05:38.673Z","url":"https://www.sanity.io/docs/changelog/studio-NS4xNi4w","media":[]},{"id":"rel_Cl0DlZdakrwWKcd9Fm807","version":null,"title":"Sanity Connect for Shopify: Shopify \"unlisted\" products stay published","summary":"[Sanity Connect](https://www.sanity.io/docs/sanity-connect-for-shopify-reference) syncs product information between Shopify and Sanity. We keep the `S...","content":"[Sanity Connect](https://www.sanity.io/docs/sanity-connect-for-shopify-reference) syncs product information between Shopify and Sanity. We keep the `Status` in Shopify linked to the publishing state in Sanity.\n\nSanity Connect now handles Shopify&#x27;s [**unlisted**](https://changelog.shopify.com/posts/new-unlisted-product-status-1) product status. Previously,  unlisted products were unpublished and moved to a **draft** state in Sanity. This is how **archived** or **draft** products behave. Now, unlisted products\nare treated the same as **active** products and remain **published** in your Sanity dataset.\n\nThis applies to both real-time webhook syncs and bulk syncs.","publishedAt":"2026-03-16T13:53:26.635Z","url":"https://www.sanity.io/docs/changelog/2452de5d-25c1-408d-9fa9-dd2e45b818de","media":[]},{"id":"rel_WVLtJoBTM6IuuRIV6xZkz","version":"5.16.0","title":"Sanity Studio v5.16.0: Important CLI bugfixes","summary":"This release fixes critical issues in the CLI related to deployed schema shapes, configuration path resolution, and MCP editor setup.\n\n## 🐛 Notable b...","content":"This release fixes critical issues in the CLI related to deployed schema shapes, configuration path resolution, and MCP editor setup.\n\n## 🐛 Notable bugfixes and improvements\n\n- Fixes an issue where deployed schemas used incorrect shapes\n- Fixes an issue where running `sanity debug` outside of a project context would fail\n- Fixes tsconfig paths not respected in the sanity config\n- Fixes some issues in MCP token creation\n- Silences some warnings when importing datasets during project creation\n- Bumps `react`+`react-dom` to latest versions on new installs\n- Fixes an issue where studio redirecting you to a workspace would not preserve search and hash params","publishedAt":"2026-03-14T04:09:17.634Z","url":"https://www.sanity.io/docs/changelog/studio-NS4xNS4w","media":[]},{"id":"rel_IJ-2w0MZ-yPIqW6LFp5L5","version":"2.15.0","title":"MCP server v2.15.0: Better authentication error handling and schema validation improvements","summary":"## Fixes\n\n- **Authentication.** Better handling of invalid or revoked tokens, helping MCP clients manage re-authentication.\n- **Schema validation.** I...","content":"## Fixes\n\n- **Authentication.** Better handling of invalid or revoked tokens, helping MCP clients manage re-authentication.\n- **Schema validation.** Improved handling of invalid schemas.\n- **Error messages.** API errors now surface more actionable messages to agents, including re-authentication instructions and upgrade links.","publishedAt":"2026-03-13T12:00:00.000Z","url":"https://www.sanity.io/docs/changelog/8408a1da-31b3-43f9-865c-8ef2c3d94d5d","media":[]},{"id":"rel_BCHESantAVZXrg1wWEVGz","version":"5.15.0","title":"Sanity Studio v5.15.0: Upgrade CLI tool, annotation, form field, and releases improvements","summary":"## New CLI (@sanity/cli upgrade)\n\nThe Sanity CLI has undergone a big behind-the-scenes overhaul. If you were previously running the CLI package direct...","content":"## New CLI (@sanity/cli upgrade)\n\nThe Sanity CLI has undergone a big behind-the-scenes overhaul. If you were previously running the CLI package directly, you&#x27;ll want to switch to using `sanity` for all commands. In addition, there are some new fixes and improvements.\n\n- **Dataset embeddings commands**: New commands to [configure embeddings for datasets](https://www.sanity.io/docs/content-lake/dataset-embeddings).\n- **Global --project-id and --dataset flags**: Run commands outside a project directory without needing a sanity.cli.ts config.\n- **Non-interactive environment detection**: Prompts detect CI/pipeline environments automatically, preventing hangs in automated workflows.\n- **SDK templates are ESM by default**: New projects created via sanity init use ESM.\n- Improved MCP setup process.\n- **Bugfix**: Boolean flags no longer get confused with commands that have positional arguments.\n- **Bugfix**: GraphQL and certain other commands now support Vite aliases.\n- **Bugfix**: Strict flag parsing means unknown flags now produce an error instead of being silently ignored (for example, a --datset foo typo now errors instead of doing nothing).\n\n## Studio fixes\n\n- **Annotation popover fix**: The Portable Text annotation toolbar popover now appears on the first click instead of requiring two clicks (regression fix).\n- **Form field column alignment**: Using options.columns now aligns fields to the top instead of the bottom, fixing an issue where opening a long field would push adjacent columns out of view.\n- **Releases overview on mobile**: Improved layout and navigation for viewing releases on mobile screens.\n- **Releases nav menu fix**: Links in the release nav menu now work consistently when navigating from the releases overview or drafts.","publishedAt":"2026-03-12T21:08:26.780Z","url":"https://www.sanity.io/docs/changelog/studio-NS4xNC4x","media":[]}],"pagination":{"page":1,"pageSize":20,"totalPages":3,"totalItems":55},"summaries":{"rolling":null,"monthly":[]}}