Video thumbnails, version previews on hover, and search by URL

Published: November 10, 2026

v6.23.0

This release adds video thumbnail previews in document lists, improves the access-request card with better guidance, enables Vision to handle longer queries, allows users to find documents by website path, and adds a document versions popover when hovering over documents in lists and search results.

Clearer guidance when requesting access

When someone without access opens a project, the request-access card now tells them what to do next. For example, it says when they're already a member, when a request is pending or was recently declined, when access requests are turned off, when roles are managed through SSO (with a sign-in link when one is available), or when they should try again later.

Video thumbnails in previews

Video fields now show thumbnail previews in document lists and array items, matching image fields.

Long queries and cURL import in Vision

Vision (redesign) now handles queries too long for a URL the way @sanity/client does. Once the encoded query and params reach 11,264 characters, the exported cURL snippet sends them as a JSON body, the query plan is fetched the same way, and the Network tab shows which method the request used and why. You can also paste a cURL command into the query editor, as copied from your browser's network panel or from Vision's export dialog: Vision loads the query and params from it, and sets the tab to the dataset, API version, perspective, variant and content source map option of the request, going to the API CDN if the request did. Options Vision has no setting for, such as tag and returnQuery, are ignored, and headers, including the authorization token, are discarded.

The redesigned tool's translation keys are also renamed from vista.* to vision.*. If you override Vision strings in a locale bundle with vista.* keys, rename them to vision.*. Saved tabs, functions and settings carry over automatically.

Change indicators for custom Portable Text components

Custom Portable Text preview components and annotation components now receive a changed prop indicating whether the value differs from the published version, enabling change indicators for custom blocks, inline blocks, and annotations.

See which variant version is served

For Content Variants beta testers: the document group inventory now includes badges to indicate which document group version will be served to users matching the perspective set in Studio.

Workspace translations in validation

@sanity/validation now supports passing i18n: workspace.i18n to validateDocument/validateDocuments to preserve the workspace's locale and translation resources, including those used by custom validators through context.i18n.

Search by URL or path

Studio search now finds documents by id when the search query is a URL or path with a segment matching the id exactly. This allows users to find a document with id xyz by searching for a path from their website like /products/jewellery/xyz.

Preview a document's versions on hover

Hovering a document in the document list, a reference input or search results now opens a compact, read-only popover of the document's versions. It shows one line per audience with the base first, each line's version status icons, and when it was last published or edited ("Published 2 days ago", "Edited 3 hr ago"). Without variants it shows a single line for the document.

🐛 Notable bugfixes and improvements

  • Releases: A release description stored as Portable Text now shows its text instead of an empty field.
  • Releases: Fixes a crash on the release detail page and in the edit release dialog when the description is not a string.
  • Content Variants: When the beta is on, the Studio navbar no longer changes color when you select Published or a release. It stays the same color as when Drafts is selected. Studios without the beta are unchanged.
  • Validation: @sanity/validation now reports a reference whose target document exists but isn't one of the field's to types. The check is on by default in @sanity/validation (set validateReferenceTypes: false to turn it off) and off in Studio, which has its own warnings for mismatched references.
  • Vision: beta.redesign.enabled works again. When it is on, Vision shows the invitation to try the redesigned tool, and an opt-in is remembered per project in the browser. Switching back to the classic tool still works.
  • Context: Most sanity context commands are now generated from the Context API's OpenAPI spec: one command per operation, with path parameters as arguments and query and body fields as flags, their types, enums and help text taken from the spec. Output is JSON with --json, otherwise a table or key-value lines.
  • Context: context sources (list, get, create, edit, delete, upload, sync), context sources syncs (list, get, confirm, discard), context documents (list, get, content, edit, delete) and context sync replace context imports and context refresh, which the Context API no longer serves. Running a removed command names the one that replaced it.
  • Context: New context instructions (create, edit, delete) and context mcp initial-context commands.
  • Context: Flags follow the spec's field names. sources create takes --sanity-project-id and --sanity-dataset-id for a dataset source, and --include-paths, --exclude-paths, --max-depth, --page-limit, --sitemap-only and --ignore-query-parameters for a crawl. context update drops --refresh-enabled and --refresh-frequency: syncs are scheduled per source with context sources edit --sync-frequency.
  • Context: --watch waits for the job or sync a command starts, and every delete asks for confirmation unless --yes is passed.
  • Context: Lists fetch 200 items a page, and --limit caps the total a list returns.
  • Context: sanity context mcp commands now print Context MCP endpoint URLs with API version v2026-11-03.
Sanity logosanity.ioAll Systems Operational© Sanity 2026
Change site theme