releases.shpreview
Sanity/Sanity Changelog

Sanity Changelog

$npx -y @buildinternet/releases show sanity-changelog
Mon
Wed
Fri
AprMayJunJulAugSepOctNovDecJanFebMarApr
Less
More
Releases55Avg17/moVersionsv2.10.1 → v2.17.1
Mar 12, 2026

This release introduces video subtitles management, improved authentication handling, and several navigation and asset visibility bugfixes.

Video subtitles

You can now manage subtitles directly within the Media Library for your video assets. The new Subtitles view in the video sidebar lets you generate AI-powered subtitles in 22 languages, upload your own VTT or SRT files, and preview subtitle segments with timestamps. Generated subtitles are clearly marked so you can distinguish them from manually uploaded files.

Improved authentication handling

The Media Library now handles token refreshes more gracefully. Previously, if your authentication token expired (for example, after your laptop woke from sleep), you might see authorization errors with no recovery. Now tokens are refreshed automatically, and any failed requests retry with the fresh token.

Consistent asset visibility

Changing an asset's visibility between public and private now works correctly even when the asset has unpublished draft changes. The visibility setting is always read from and applied to the published document, preventing drafts from accidentally overwriting your visibility preferences.

🐛 Notable bugfixes

  • Fixed the navigation menu not closing automatically after navigating on mobile devices
  • Fixed the menu toggle icon being inconsistent across pages, it now shows a hamburger on narrow screens and a panel icon on wider screens
  • Fixed the navigation panel not being reopenable when viewing an asset in preview mode
  • Fixed an issue where dragging files over an empty collection caused the upload overlay to flash repeatedly instead of staying visible
  • Fixed error and loading screens appearing flush against the viewport edges with no padding
  • Fixed debug logging being enabled for all users in production, which was flooding browser consoles with internal messages
Mar 11, 2026
Internationalized Array Plugin v5.0.0: Major version: Pivot language from `_key` to `language` field

New major version

sanity-plugin-internationalized-array now stores the language identifier in a dedicated language field instead of using _key for this purpose.

When a field has outdated data a warning banner will render to alert users.

Why

Sanity uses _key internally for array item identity, diffing, and reordering. Storing the language ID there caused issues with:

  • Array reordering and diffing in the Studio.
  • Portable Text operations that rely on stable keys.
  • Copy/paste operations between documents where keys could collide.

Data format change

Before (v4):

{
  "_key": "en", 
  "_type": "internationalizedArrayStringValue", 
  "value": "hello"
}

After (v5):

{
  "_key": "randomKey",
  "language": "en",
  "_type": "internationalizedArrayStringValue", 
  "value": "hello"
}

How to upgrade

Read the full migration guide here.

Document Internationalization plugin v6.0.0: Major version: Pivot language from `_key` to `language` field

New major version

sanity-plugin-internationalized-array now stores the language identifier in a dedicated language field instead of using _key for this purpose, and @sanity/document-internationalization has a direct dependency on this plugin to manage the translations.metadata files.

When a field has outdated data a warning banner will render to alert users.

Why

Sanity uses _key internally for array item identity, diffing, and reordering. Storing the language ID there caused issues with:

  • Array reordering and diffing in the Studio.
  • Portable Text operations that rely on stable keys.
  • Copy/paste operations between documents where keys could collide.

Data format change

Before (v4):

{
  "_key": "en", 
  "_type": "internationalizedArrayStringValue", 
  "value": "hello"
}

After (v5):

{
  "_key": "randomKey",
  "language": "en",
  "_type": "internationalizedArrayStringValue", 
  "value": "hello"
}

How to upgrade

Read the full migration guide here for this plugin.

You can also read the migration guide for internationalized-array here.

import v5.0.0: The sanity-import CLI is no longer available

The standalone sanity-import CLI binary has been removed from @sanity/import. Users relying on sanity-import as a one-off binary should migrate to sanity dataset import instead, which provides the same functionality as part of the Sanity CLI.

Breaking Changes

The sanity-import CLI binary has been removed.

Migration

Use sanity dataset import <file.ndjson> going forward.

Mar 10, 2026
Sanity Studio v5.14.1: Dashboard icon bugfix

🐛 Notable bugfixes and improvements

Fixes an issue where studios would have no icon in the dashboard after deploying (regression in v5.14.0).

Sanity Studio v5.14.0: Shareable release links, improved validation context, and stability fixes across Studio

This release adds shareable release links, improves Studio reliability on unstable networks, fixes validation context inconsistencies, and resolves several crashes and display issues across the editor interface.

Show agent bundles as “Proposed changes”

Content agent bundle versions now show as "Proposed changes" instead of raw IDs like agent-aBcXyZ. Other users' bundles are hidden from the UI.

Easier sharing of content releases

You can now click the share icon on a release for quick access to a copy-able link to the release, the release ID, or release title.

Improved crop/hotspot details

The Hotspot and Crop tool now display the dimensions of the crop area in pixels.

Shoutout to @fvieira for the suggestion, and @wotan-allfather for the initial implementation ❤️

Adds currentUser to validation context

Adds currentUser to the validation context. Fixes an issue where context.currentUser and context.hidden on the validation property in a schema was inconsistent and could return the wrong values.

🐛 Notable bugfixes and improvements

  • Fixes an issue where adding a filter to the global search when a field in the schema used useRouter (or similar) would cause the studio to crash.
  • Improved Studio editing reliability when operating under unstable or intermittent network conditions.
  • Restores fallback to schema icon when media is omitted from preview.prepare(). To opt out of the schema icon, return media: null or media: false.
  • When closing the tasks sidebar, params are now correctly removed from the URL to accurately reflect the application state.
  • Fixes an issue where localStorage deprecation warnings would be printed when running certain CLI commands using Node.js v25.
  • Fixes an issue where on narrower screens the list of releases would have multiple scrollbars.
  • Removed a noisy console.warn about hotkeys stability that fired on every render in the Portable Text input.
  • Fixes regression from v4.22.0 where operations.delete.execute() called without arguments caused a crash in custom components or document actions.
  • Duplicating or copying an array item now regenerates _key values for all nested items, not just the top-level item.
  • Fixes an issue when rendering group validation for nested fields in the group tab.
  • Adds rich diff previews when inspecting changes in cross dataset reference fields.
  • Fixes issue where a cross dataset reference input in a dialog was not navigating and instead closed the dialog
  • Fixes issue where the inspector dialog could sometimes be behind the object editing dialog.
Mar 6, 2026
AI Assist v6.0.0: Monorepo migration and modern runtime requirements

@sanity/assist has been ported to the Sanity plugins monorepo. This major release brings several breaking changes as part of the migration, while keeping all existing plugin functionality intact.

Please review the list of breaking changes below before upgrading.

Breaking changes

  • React Compiler enabled: The plugin is now optimized with React Compiler for improved performance.
  • ESM-only: CommonJS is no longer supported. The dual module format has been removed.
  • Sanity Studio v5 required: The plugin now requires Sanity Studio v5 as the minimum baseline.
  • React 19 required: Updated to support React 19.2+. Learn more in our upgrade guide.
  • Stricter TypeScript: Updated type definitions with improved type safety.
  • Updated dependencies: All dependencies updated to latest compatible versions.

If you are not yet on Studio v5 or React 19, you should remain on @sanity/assist v4.x until you upgrade.

Mar 4, 2026

Collection sorting no longer shows unrelated assets

Sorting a collection by title and scrolling down could cause assets from outside the collection to appear. This has been resolved.

Faster loading for large libraries

Libraries with large collections now load faster when browsing assets.

Mar 3, 2026
Sanity Studio v5.13.0: Grid layout for primitive arrays, new blueprints plan preview, and improved Studio validation and media handling

This release adds grid layout support for primitive type arrays, introduces a new blueprints plan feature to preview deployments, improves array size limit handling, and fixes issues with Word paste formatting and video field loading.

Primitive types now show a grid layout when the grid option is set

Previously, primitive type arrays allowed you to set a grid layout, but didn’t display it. They now show a grid layout as expected if the option is chosen in the schema.

Updates to blueprints doctor and plan commands

New blueprints plan feature: this command outputs a summarized plan generated by the Blueprints API detailing what will happen during a deploy. It uses the same server-side logic as a real Stack update.

We’ve also updated the blueprints doctor output to be better organized and more specific to help diagnose issues locally and in the Stack deployment configuration.

New interface to copy the document ID

There’s a new icon in the document pane that lets you copy a link to the document (in studio), or copy the document’s ID.

Improved reference preview for unknown fields

When unknown fields include a reference, the warning will now provide additional details about the reference itself to help with debugging.

Disables adding further items when at validation max limit

When array fields reach their maximum valid size, the Studio UI now more clearly expresses this by disabling the ability to add new items to the array. Thanks to @wotan-allfather for this contribution! We ❤️ PRs from the community.

Improved Studio experience when a release is not found

Studio will now show an improved warning when trying to view a release that no longer exists.

DocumentLocation now supports icon and showHref

The DocumentLocation type now supports optional icon and showHref properties for customizing location entries in the Presentation tool.

resolve: {
  locations: {
    page: defineLocations({
      select: { title: 'title', slug: 'slug.current' },
      resolve: (doc) => ({
        locations: [
          {
            title: 'Email Preview',
            href: `/email/${doc?.slug}`,
            icon: EnvelopeIcon,  // Custom icon
            showHref: false,     // Hide URL
          },
          {
            title: 'Web View',
            href: `/pages/${doc?.slug}`,
            // Defaults: DesktopIcon, URL visible
          },
        ],
      }),
    }),
  },
}

Existing configurations will continue to work without changes.

🐛 Notable bugfixes and improvements

  • Fixes an issue where pasting from Microsoft Word could sometimes cause ordered and unordered lists to flip type.
  • Fixes ordering by multiple object fields.
  • Fixed an issue where the video input field would show an infinite loading skeleton when the Media Library ID didn’t match an expected format. The video input now properly validates the asset reference format, shows meaningful error messages when playback info fails to load, and uses a correctly-sized placeholder during loading to prevent layout shift.
  • Updates the fileAsset and imageAsset’s required fields to better align with the client library.
  • Improves visual distinction between release types in the Studio.
Feb 27, 2026

This month we’ve introduced a bunch of behind-the-scenes improvements to the documentation platform, surfaced more reference docs, and improved the Roles guide.

New and updated docs

Additional libraries added to reference docs

We’ve added more libraries to our typescript reference docs. You’ll now see @sanity/blueprints, next-sanity, and more libraries soon.

Roles and permissions guide changes

The roles and permissions API guide now uses the Access API instead of the older Roles APIs. You can still use the previous approach, but for new code we suggest the Access API.

Platform updates

Next.js 16

We’ve migrated the entire Sanity docs site to Next 16, which unlocked a wide range of improvements including dramatically faster loads, better performance, improved UX, and reduced client-side errors. This refactor also lays the groundwork for upcoming cacheComponent support via next-sanity, ensuring Sanity docs continues to use the latest features and capabilities of our platform.

Discord changelog bot

Are you a part of our Discord community? If so, you may have seen the #releases channel change from an RSS feed to our new releases bot. It’s built with Sanity Functions and should provide a better experience if you follow our updates through Discord. Perhaps you’re reading this there right now.

Automatic content negotiation

The Sanity docs now detect and respond to HTTP Accept headers with appropriate content and a matching Content-Type header. Most documentation pages support Accept: text/markdown, while our HTTP API Reference pages support Markdown, YAML, and JSON requests.

This feature ensures that Sanity docs properly handle incoming agentic AI / LLM requests and respond with the most performative content.

Changelog improvements

We’ve added broad categories to our changelog section and improved the sidebar filtering UI/UX. You can now explore changes by high-level category , or drill down into specific subsets of products.

Easily navigate between categories or related changelog entries with the new header breadcrumb, inline filtering, and “previous/next changelog” buttons.

Feb 26, 2026

Search and filtering improvements

The asset list search action has been renamed to “Find in view”, with a conditionally shown input and improved responsiveness on smaller screens. Empty results from search or filters now show clear feedback with a reset option instead of a blank space.

🐛 Notable bugfixes and improvements

Fixed an issue where adding many assets to a collection (for example during bulk uploads) could trigger rate limits, causing some assets not to appear. Assets now load in batches, with placeholders shown in the grid during upload.

MCP server v2.14.0: Tool titles, schema validation, and improved tool annotations

New Features

  • Tool titles. All tools now include human-readable titles for better display in MCP clients.
  • Schema validation. We're gradually rolling out schema validation for create_documents_from_json and patch_document_from_json, which ensure that requested changes conform to the deployed schema.

Fixes

  • read_docs tool. Improved input validation and path handling.
  • Tool annotations. Added missing annotations to tools that were lacking them, helping MCP clients correctly identify read-only vs. destructive operations.
  • Input validation. Standardized project ID and dataset name validation across tools.
Feb 24, 2026
Sanity Studio v5.12.0: Enhanced object dialog becomes default, AI CLI detection added, and breadcrumb issues fixed

This release makes the enhanced object dialog the default, adds AI CLI tool detection during setup, and fixes breadcrumb navigation issues.

enhancedObjectDialog is now the default

The beta.form.enhancedObjectDialog option has been removed. The enhanced object dialog is now always enabled and is now the default. If you previously used the beta config setting, you can safely remove it.

MCP configure command now detects Gemini, Codex and Copilot

When setting up AI tooling with Sanity, users with Gemini CLI, GitHub Copilot CLI, or Codex CLI installed will now see them offered during sanity mcp configure and sanity init.

🐛 Notable bugfixes and improvements

  • Restores a CLI warning issued when local installed versions of sanity packages are different from auto-updating studio version.
  • Enhanced Object Dialog: Fixes an issue where clicking the root item in the breadcrumb wasn’t taking you to the correct item. Enhanced Object Dialog: Fixes an issue where navigating on a breadcrumb and attempting to navigate to a different object item would cause a flicker.
Feb 19, 2026
Sanity Studio v5.11.0: Conditional multi-schema references and bug fixes

This release improves reference field creation filtering with dynamic options, fixes document publishing issues, and enhances the display of nested content and release titles.

Conditional multi-schema references

It is now possible to apply dynamic document based filtering to the acceptable schema types from which to create a new reference field. When a document contains a reference field with a to that includes multiple schema types, by defining an options.creationTypeFilter callback, the available schemas when selecting Create can be restricted.

If creationTypeFilter returns [] then the create button will be hidden from the reference field. This is identical behavior to using options.disableNew: true

defineField({
  name: 'participant',
  title: 'Individual or team participant,
  type: 'reference',
  to: [{type: 'individual'}, {type: 'team'}],
  options: {
    creationTypeFilter: ({document}, toTypes) => {
      if (document.participantType === 'individual') {
        return toTypes.filter((t) => t.type === 'individual')
      }
      if (document.participantType === 'team') {
        return toTypes.filter((t) => t.type === 'team')
      }
      return toTypes
    },
  },
})

🐛 Notable bugfixes and improvements

  • Fixes an issue causing document action to hang in **Validating document…**state when attempting to publish versions created by Content Agent
  • Fixes an issue preventing the correct field being shown when following a stega overlay that maps to a field, inside a non-default group, inside an object array member
  • Enhanced Object Dialog: instead of showing “Mark Definitions” (from markDefs) on some PTE nested objects, instead shows the content in the PTE’s preview
  • Improved visibility of releases with long release titles
  • Fixes an issue where published documents would show a publish action
MCP server v2.13.2: Internal improvements to error handling and observability

Internal improvements to error handling and observability. No user-facing changes.

Feb 18, 2026

This release includes improvements to the editing experience with fixes for comment popovers and keyboard navigation in code editors.

🐛 Notable bugfixes and improvements

  • Comment popovers no longer flash while typing.
  • Arrow-key navigation now moves into and out of embedded code editors (Up/Down), so you can navigate seamlessly between surrounding content and code blocks.

Fixes asset editing issues by improving mutation handling and state management, resolving character duplication, array key conflicts, and concurrent editing inconsistencies.

MCP server v2.13.1: Published to the official MCP Registry

Improvements

  • MCP Registry. The Sanity MCP Server is now published to the official MCP Registry, making it easier to discover and install through MCP clients and marketplaces.
Feb 17, 2026
Sanity Studio v5.10.0: TypeGen GA, and improvements to Portable Text Editor, Media Library plugin, comments, timezone UI, and file uploads

This release announces the general availability of Sanity TypeGen, improves the Portable Text Editor, fixes critical issues with Media Library asset insertion and comment sharing links, resolves UI problems with timezone selection and dialog flickering, and enhances file upload handling.

TypeGen is now generally available

Sanity TypeGen has reached general availability. TypeGen automatically generates TypeScript types from your Sanity schemas and GROQ queries, providing type safety throughout your content workflow.

Key features include automatic type generation during development, support for multiple file types (TypeScript, JavaScript, Astro, Svelte, Vue), utility types for working with complex schemas, and watch mode for separate repositories.

Learn more in the documentation, read the announcement blog post, or take the Sanity Learn course.

Add warning when a document type is used for a field

Using document types as reusable fields is considered an anti-pattern. The CLI now prints a warning if a document type is used as the type of a field.

New changed props on PTE block

Blocks and inline blocks in PTE now expose a changed props like all other PTE items.

🐛 Notable bugfixes and improvements

  • Fixed a minor regression related to type hoisting when using document types as field types (a documented anti pattern).
  • Fixes a regression in the Media Library Studio plugin that prevented you to insert images and files into the document when that asset already existed in the Media Library.
  • Fixes a bug where sharing a link to a comment that was placed on a scheduled draft document would not correctly link to the expected document.
  • Fixes an issue when selecting a timezone for the Studio where dropdown selections would sometimes not be available if an existing timezone was selected.
  • Enhanced Object Dialog: Fixes dialog flickering open and immediately closing when reopening an array item after closing via the close button or breadcrumb navigation.
  • Fixes an issue so that when sharing a link to a comment on a field, once shared the link will automatically scroll the document to that field.
  • Fixes an issue when dragging and dropping a file into a file upload field, where in some instances where an uploader handler was not defined, the file would fail to upload with an error claiming that no handler could be found.
  • Reduced SSE listener grace period from 10s to 5s to lower concurrent connection count during document navigation, reducing server-side fan-out on commits.
Feb 13, 2026
MCP server v2.13.0: Version discard tool, dataset descriptions, and transport compatibility fixes

New Features

  • version_discard tool. New tool for removing document versions from a release, split out from discard_drafts for a clearer API.
  • Dataset descriptions. create_dataset, update_dataset, and list_datasets now support a description field.

Improvements

  • System prompt. Added guidance directing agents to use search_docs and read_docs tools for accessing Sanity documentation instead of web searches.

Fixes

  • MCP transport compatibility. Fixed an issue where clients sending params: null in JSON-RPC notifications (e.g. Claude Code, Cursor) would receive errors.
  • get_schema tool. Fixed an error that occurred when a schema type has a preview field with a null select value.
  • get_schema tool. Improved error message when an unknown type name is provided to now list valid type names.

Removals

  • Release management tools. Removed tools for managing releases. Releases can still be managed through Sanity Studio or the HTTP API.
Latest
2.17.1
Tracking Since
Jan 22, 2026
Last fetched Apr 19, 2026