| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-10-29 | 10.7 kB | |
| v6.21.0 source code.tar.gz | 2026-10-29 | 8.7 MB | |
| v6.21.0 source code.zip | 2026-10-29 | 12.4 MB | |
| Totals: 3 Items | 21.1 MB | 0 | |
Sanity Studio v6.21.0
This release includes various improvements and bug fixes.
For the complete changelog with all details, please visit: www.sanity.io/changelog/studio-Ni4yMC4w
Install or upgrade Sanity Studio
To upgrade to this version, run:
:::bash
npm install sanity@latest
To initiate a new Sanity Studio project or learn more about upgrading, please refer to our comprehensive guide on Installing and Upgrading Sanity Studio.
π Full changelog
| Author | Message | Commit |
|---|---|---|
| @jonahsnider | perf(validation): remove RxJS from reference batching (#15628) | [126f2b] |
| @jonahsnider | perf(validation): use promises for validation traversal (#15629) | [82ad28] |
| @jonahsnider | test(validation): make benchmark independent of Studio build (#15631) | [d04c20] |
| @juice49 | fix(sanity): tag cors probe requests (#15637) | [8736bf] |
| @bjoerge | fix(core): limit /check/cors probes to one per 10 seconds (#15638) | [23b9a5] |
| @gu-stav | fix(core): restore favoriting in workbench (#15494) | [1cc28a] |
| @skogsmaskin | feat(form): use the federated Media Library asset source view by default (#15624) | [fb31ee] |
| @pedrobonamin | fix(structure): allow publishing leftover drafts of live-edit document types (#15634) | [aec6c2] |
| @jonahsnider | perf(schema): allow skipping manifest validation and cloning (#15625) | [64ad10] |
| @jonahsnider | perf(schema): use structuredClone for manifests (#15627) | [89696e] |
| @laurenashpole | chore: migrate text in core components (#15618) | [4a1847] |
| @laurenashpole | chore: migrate text in structure (#15607) | [51fa60] |
| squiggler-app[bot] | chore(tests): generate dts tests π€ β¨ (#15605) | [23f6fb] |
| @stipsan | fix(test-studio): disable css code splitting with sanity cli-build 7.0.1 (#15572) | [a19012] |
| @jordanl17 | feat(releases): add configurable metadata fields to release forms (#15424) | [ffc1e5] |
| squiggler-app[bot] | fix(deps): update typescript-tooling to ^0.23.2 (#15593) | [2ec60a] |
| squiggler-app[bot] | fix(deps): update dependency motion to ^14.6.0 (#15595) | [3d2966] |
| squiggler-app[bot] | fix(deps): update panda-css monorepo to ^2.4.0 (#15597) | [37c842] |
| squiggler-app[bot] | fix(deps): update dependency @sanity/client to ^8.11.0 (#15584) | [49f70f] |
| squiggler-app[bot] | chore(deps): update dependency @tanstack/react-virtual to ^3.14.22 (#15588) | [b6c910] |
| squiggler-app[bot] | chore(deps): update dependency oxlint-tsgolint to ^7.0.2005 (#15589) | [d6878f] |
| squiggler-app[bot] | chore(deps): update dependency @sanity/pandacss-tsdown-plugin to ^0.3.1 (#15587) | [1714b9] |
| squiggler-app[bot] | chore(deps): update dependency @pierre/diffs to ^1.6.1 (#15585) | [f43165] |
| squiggler-app[bot] | fix(deps): update codemirror (#15590) | [69f092] |
| @stipsan | fix(lint): keep empty export in css typing stubs from being autofixed away (#15601) | [829ca0] |
| cursor[bot] | fix(structure): clear review changes after discarding a draft (#14128) | [3a7b18] |
| @stipsan | refactor(structure): avoid duplicate params stabilization (#13920) | [c5842a] |
| @stipsan | feat(vision): prefill query params from the referenced $names in the JSON editor (#15578) | [60f7c5] |
| cursor[bot] | test(store): cover media library access policy fetch (#15160) | [e93a73] |
| @stipsan | fix(vision): run pasted and linked query URLs right away and show AI credits in the redesign (#15446) | [b64716] |
| @stipsan | test(core): drain comlink teardown before vitest restores postMessage (#15573) | [8d881e] |
| @laurenashpole | chore: migrate text in misc dev directories (#15530) | [6d1720] |
| @laurenashpole | chore: migrate text structure/panes (#15564) | [e37995] |
| @laurenashpole | chore: migrate text in misc directories in core (#15566) | [ace7a5] |
| @stipsan | test(canvas): add visual coverage for canvas and feedback dialogs (#15103) | [854830] |
| @stipsan | fix(core): drop --made-with-panda marker from shipped css (#15576) | [2e0ded] |
| @stipsan | fix(core): make dialog breadcrumbs focus fields and scroll dialogs to top (#15481) | [271ebf] |
| squiggler-app[bot] | fix(deps): update dependency @sanity/cli to ^8.22.1 (#15569) | [3ddb17] |
| @stipsan | fix(structure): migrate document group css modules to panda css (#15570) | [209faf] |
| @laurenashpole | chore: migrate text in misc directories in core/form/inputs (#15466) | [4722df] |
| @stipsan | refactor(css): replace vanilla-extract with CSS modules outside the sanity package (#15406) | [6fba85] |
| @pedrobonamin | fix(form): make the whole header row toggle collapsible fieldsets and object fields (#15556) | [a92664] |
| @stipsan | fix(vision): hide the variant option where the workspace has variants switched off (#15459) | [3b3cd7] |
| @pedrobonamin | fix(form): stop grid arrays leaking grid item renderer into nested arrays (#15490) | [e40bd9] |
| squiggler-app[bot] | chore(deps): update dependency oxc-transform-react to ^0.155.0 (#15511) | [f080c3] |
| @pedrobonamin | test(storybook): snapshot release document status icons (#14861) | [36193d] |
| @juice49 | feat(sanity): add document group inventory inspector (#15519) | [69b002] |
| @juice49 | feat(sanity): refine document group inventory layout for document inspector (#15519) | [28d85f] |
| @juice49 | feat(sanity): add imperative API for DocumentGroupInventory (#15519) |
[09a4ac] |
| @juice49 | feat(sanity): move feedback action to document inspector header (#15519) | [523b16] |
| @juice49 | feat(sanity): add version management action to document panel header (#15519) | [27f505] |
| @hermanwikner | feat(comments-v2): send anchor instead of range for inline comments (#15088) |
[0a8e2f] |
| @stipsan | fix(deps): update @tanstack/react-virtual to ^3.14.21 (#15559) | [453884] |
| squiggler-app[bot] | chore(deps): update dependency oxfmt to ^0.74.0 (#15512) | [31a7e1] |
| @pedrobonamin | test(e2e): reproduce text typed into a new block being lost when leaving the document (#15342) | [d0cce0] |
| squiggler-app[bot] | chore(deps): update dependency vite to ^8.3.5 (#15506) | [b0c6a8] |
| @stipsan | refactor(core): migrate from vanilla-extract to Panda CSS (#15396) | [14749a] |
| @jordanl17 | feat(bench): observe soft navigations and add a navigate step (#15533) | [1c6e95] |
| @stipsan | test(form): make the FormBuilder suspense warning test independent of test order (#15561) | [e20a6a] |
| @pedrobonamin | chore(form): point form suspense skill at agent-toolkit (#15551) | [642492] |
| @stipsan | test: consolidate visual coverage from open test-only PRs (#15528) | [605026] |
| @stipsan | chore(deps): drop stale sentry release-age excludes (#15548) | [7b3cba] |
| squiggler-app[bot] | chore(deps): update dependency oxc-parser to ^0.155.0 (#15510) | [edf2db] |
| squiggler-app[bot] | chore(deps): update dependency @pierre/diffs to ^1.6.0 (#15509) | [7fcf7a] |
| squiggler-app[bot] | chore(deps): update dependency oxlint to ^1.89.0 (#15513) | [3baf6f] |
| squiggler-app[bot] | fix(deps): update dev-non-major (#15517) | [7e7a1b] |
| @pedrobonamin | fix(form): give every field and array item a suspense boundary and warn when a form component suspends (#15474) | [dac77d] |
| squiggler-app[bot] | chore(deps): update dependency @sanity-labs/groq-wasm to ^1.0.1 (#15500) | [eeae19] |
| squiggler-app[bot] | chore(deps): update pnpm to v12.14.0 (#15514) | [7e7346] |
| @pedrobonamin | test(test-studio): add custom inputs that suspend to reproduce stuck document creation (#15472) | [efa8b9] |
| squiggler-app[bot] | chore(deps): update dependency @sanity/tsdown-config to ^0.31.2 (#15503) | [0520c7] |
| squiggler-app[bot] | fix(deps): update dependency @sanity/client to ^8.10.1 (#15516) | [0d2335] |
| squiggler-app[bot] | chore(deps): update dependency ui5 to v5.0.0-alpha.16 (#15505) | [c059a2] |
| squiggler-app[bot] | fix(deps): update portabletext (#15508) | [e6e733] |
| squiggler-app[bot] | fix(deps): update dependency get-it to ^9.6.2 (#15507) | [272da1] |
| squiggler-app[bot] | fix(deps): update dependency @sanity/cli to ^8.22.0 (#15515) | [f54afd] |
| squiggler-app[bot] | fix(deps): update dependency motion to ^14.3.0 (#15440) | [e5066f] |
| squiggler-app[bot] | chore(deps): update dependency @sanity/functions to ^1.9.0 (#15441) | [b9e870] |
| squiggler-app[bot] | chore(deps): update dependency @sentry/react to ^11.8.0 (#15442) | [300afd] |
| @jonahsnider | feat(validation): expose document validation completeness (#15495) | [1fc5a2] |
| squiggler-app[bot] | chore(tests): generate dts tests π€ β¨ (#15529) | [453c2a] |
| @laurenashpole | chore: migrate text in dev/test-studio (#15487) | [fe5363] |
| @laurenashpole | chore: migrate text in miscellaneous core/studio/components directories (#15464) | [3ce653] |
| @laurenashpole | chore: migrate text in structure/panes/document/documentPanel (#15479) | [342942] |
| @laurenashpole | chore: migrate text in misc directories in core/form/inputs (#15383) | [c7607a] |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#15493) | [86ec22] |
| @jordanl17 | feat(radar): record a weekly engine confidence score (#15445) | [0e7eb5] |
| @pedrobonamin | fix(core): respect partial index excluded fields in studio search (#15502) | [7166aa] |
| @juice49 | feat(sanity): expose resolved beta config to document inspector resolvers (#15522) | [b7bd51] |
| @jordanl17 | fix(releases): align release detail row menu gating with the document footer (#14354) | [7044eb] |
| @gu-stav | fix(core): prevent cors failure for agent proposed changes (#15498) | [3d46a1] |
| @juice49 | test: update dts export fixtures (#15497) | [5930b9] |
| @jonahsnider | fix(schema): preserve built-in validators in serialized schemas (#15492) | [701566] |
| @jonahsnider | perf(validation): improve performance of document validation (#15158) | [8f9505] |
| @jonahsnider | test(validation): add document validation benchmarks (#15157) | [b9fb47] |
| @jordanl17 | refactor(form): extract shared form state from document form (#15425) | [fdb1d9] |
| @stipsan | feat(structure): focus the title field from the document title (#15454) | [72c918] |
| @pedrobonamin | fix(util): keep keyed paths with periods or brackets from crashing the structure tool (#15463) | [9b447f] |
| @oleg1357 | feat(core): download the schema from the diagnostics dialog (#15430) | [358311] |
| cursor[bot] | test(form): cover formState member error classification (#14941) | [aa9736] |
| @jordanl17 | feat(bench): add a long-session soak on the article document (#15426) | [0a29dd] |
| @jordanl17 | feat(radar): add the sqrl studio quality score and trends banner (#15427) | [d39cfa] |
| @stipsan | fix(search): exclude content agent versions from raw perspective search (#14250) | [81d3d9] |
| @gu-stav | fix(structure): reload only the structure tool on errors (#15431) | [914473] |
| @pedrobonamin | fix(form): show the correct day for date fields in review changes (#15462) | [aabb8b] |
| @jonahsnider | feat(validation): add validateDocuments for batch validation (#15144) | [b54a6d] |