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:
npm install sanity@latestTo 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) | 126f2bd |
| @jonahsnider | perf(validation): use promises for validation traversal (#15629) | 82ad285 |
| @jonahsnider | test(validation): make benchmark independent of Studio build (#15631) | d04c200 |
| @juice49 | fix(sanity): tag cors probe requests (#15637) | 8736bf8 |
| @bjoerge | fix(core): limit /check/cors probes to one per 10 seconds (#15638) | 23b9a5e |
| @gu-stav | fix(core): restore favoriting in workbench (#15494) | 1cc28af |
| @skogsmaskin | feat(form): use the federated Media Library asset source view by default (#15624) | fb31eee |
| @pedrobonamin | fix(structure): allow publishing leftover drafts of live-edit document types (#15634) | aec6c26 |
| @jonahsnider | perf(schema): allow skipping manifest validation and cloning (#15625) | 64ad107 |
| @jonahsnider | perf(schema): use structuredClone for manifests (#15627) | 89696ee |
| @laurenashpole | chore: migrate text in core components (#15618) | 4a1847e |
| @laurenashpole | chore: migrate text in structure (#15607) | 51fa60e |
| squiggler-app[bot] | chore(tests): generate dts tests 🤖 ✨ (#15605) | 23f6fb8 |
| @stipsan | fix(test-studio): disable css code splitting with sanity cli-build 7.0.1 (#15572) | a19012b |
| @jordanl17 | feat(releases): add configurable metadata fields to release forms (#15424) | ffc1e56 |
| squiggler-app[bot] | fix(deps): update typescript-tooling to ^0.23.2 (#15593) | 2ec60a4 |
| squiggler-app[bot] | fix(deps): update dependency motion to ^14.6.0 (#15595) | 3d2966f |
| squiggler-app[bot] | fix(deps): update panda-css monorepo to ^2.4.0 (#15597) | 37c8422 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/client to ^8.11.0 (#15584) | 49f70f2 |
| squiggler-app[bot] | chore(deps): update dependency @tanstack/react-virtual to ^3.14.22 (#15588) | b6c9107 |
| squiggler-app[bot] | chore(deps): update dependency oxlint-tsgolint to ^7.0.2005 (#15589) | d6878f4 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/pandacss-tsdown-plugin to ^0.3.1 (#15587) | 1714b98 |
| squiggler-app[bot] | chore(deps): update dependency @pierre/diffs to ^1.6.1 (#15585) | f431656 |
| squiggler-app[bot] | fix(deps): update codemirror (#15590) | 69f0921 |
| @stipsan | fix(lint): keep empty export in css typing stubs from being autofixed away (#15601) | 829ca0a |
| cursor[bot] | fix(structure): clear review changes after discarding a draft (#14128) | 3a7b188 |
| @stipsan | refactor(structure): avoid duplicate params stabilization (#13920) | c5842aa |
| @stipsan | feat(vision): prefill query params from the referenced $names in the JSON editor (#15578) | 60f7c5b |
| cursor[bot] | test(store): cover media library access policy fetch (#15160) | e93a735 |
| @stipsan | fix(vision): run pasted and linked query URLs right away and show AI credits in the redesign (#15446) | b647163 |
| @stipsan | test(core): drain comlink teardown before vitest restores postMessage (#15573) | 8d881ee |
| @laurenashpole | chore: migrate text in misc dev directories (#15530) | 6d1720e |
| @laurenashpole | chore: migrate text structure/panes (#15564) | e379955 |
| @laurenashpole | chore: migrate text in misc directories in core (#15566) | ace7a51 |
| @stipsan | test(canvas): add visual coverage for canvas and feedback dialogs (#15103) | 8548303 |
| @stipsan | fix(core): drop --made-with-panda marker from shipped css (#15576) | 2e0ded7 |
| @stipsan | fix(core): make dialog breadcrumbs focus fields and scroll dialogs to top (#15481) | 271ebf1 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/cli to ^8.22.1 (#15569) | 3ddb17b |
| @stipsan | fix(structure): migrate document group css modules to panda css (#15570) | 209fafb |
| @laurenashpole | chore: migrate text in misc directories in core/form/inputs (#15466) | 4722dfe |
| @stipsan | refactor(css): replace vanilla-extract with CSS modules outside the sanity package (#15406) | 6fba85e |
| @pedrobonamin | fix(form): make the whole header row toggle collapsible fieldsets and object fields (#15556) | a92664c |
| @stipsan | fix(vision): hide the variant option where the workspace has variants switched off (#15459) | 3b3cd7b |
| @pedrobonamin | fix(form): stop grid arrays leaking grid item renderer into nested arrays (#15490) | e40bd97 |
| squiggler-app[bot] | chore(deps): update dependency oxc-transform-react to ^0.155.0 (#15511) | f080c31 |
| @pedrobonamin | test(storybook): snapshot release document status icons (#14861) | 36193da |
| @juice49 | feat(sanity): add document group inventory inspector (#15519) | 69b0020 |
| @juice49 | feat(sanity): refine document group inventory layout for document inspector (#15519) | 28d85f2 |
| @juice49 | feat(sanity): add imperative API for DocumentGroupInventory (#15519)
| 09a4ac4 |
| @juice49 | feat(sanity): move feedback action to document inspector header (#15519) | 523b162 |
| @juice49 | feat(sanity): add version management action to document panel header (#15519) | 27f505c |
| @hermanwikner | feat(comments-v2): send anchor instead of range for inline comments (#15088)
| 0a8e2f2 |
| @stipsan | fix(deps): update @tanstack/react-virtual to ^3.14.21 (#15559) | 4538849 |
| squiggler-app[bot] | chore(deps): update dependency oxfmt to ^0.74.0 (#15512) | 31a7e14 |
| @pedrobonamin | test(e2e): reproduce text typed into a new block being lost when leaving the document (#15342) | d0cce08 |
| squiggler-app[bot] | chore(deps): update dependency vite to ^8.3.5 (#15506) | b0c6a86 |
| @stipsan | refactor(core): migrate from vanilla-extract to Panda CSS (#15396) | 14749af |
| @jordanl17 | feat(bench): observe soft navigations and add a navigate step (#15533) | 1c6e955 |
| @stipsan | test(form): make the FormBuilder suspense warning test independent of test order (#15561) | e20a6af |
| @pedrobonamin | chore(form): point form suspense skill at agent-toolkit (#15551) | 6424929 |
| @stipsan | test: consolidate visual coverage from open test-only PRs (#15528) | 6050264 |
| @stipsan | chore(deps): drop stale sentry release-age excludes (#15548) | 7b3cba8 |
| squiggler-app[bot] | chore(deps): update dependency oxc-parser to ^0.155.0 (#15510) | edf2db7 |
| squiggler-app[bot] | chore(deps): update dependency @pierre/diffs to ^1.6.0 (#15509) | 7fcf7aa |
| squiggler-app[bot] | chore(deps): update dependency oxlint to ^1.89.0 (#15513) | 3baf6f9 |
| squiggler-app[bot] | fix(deps): update dev-non-major (#15517) | 7e7a1b3 |
| @pedrobonamin | fix(form): give every field and array item a suspense boundary and warn when a form component suspends (#15474) | dac77d0 |
| squiggler-app[bot] | chore(deps): update dependency @sanity-labs/groq-wasm to ^1.0.1 (#15500) | eeae199 |
| squiggler-app[bot] | chore(deps): update pnpm to v12.14.0 (#15514) | 7e73462 |
| @pedrobonamin | test(test-studio): add custom inputs that suspend to reproduce stuck document creation (#15472) | efa8b9e |
| squiggler-app[bot] | chore(deps): update dependency @sanity/tsdown-config to ^0.31.2 (#15503) | 0520c77 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/client to ^8.10.1 (#15516) | 0d23353 |
| squiggler-app[bot] | chore(deps): update dependency ui5 to v5.0.0-alpha.16 (#15505) | c059a2f |
| squiggler-app[bot] | fix(deps): update portabletext (#15508) | e6e7336 |
| squiggler-app[bot] | fix(deps): update dependency get-it to ^9.6.2 (#15507) | 272da18 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/cli to ^8.22.0 (#15515) | f54afd0 |
| squiggler-app[bot] | fix(deps): update dependency motion to ^14.3.0 (#15440) | e5066fc |
| squiggler-app[bot] | chore(deps): update dependency @sanity/functions to ^1.9.0 (#15441) | b9e870a |
| squiggler-app[bot] | chore(deps): update dependency @sentry/react to ^11.8.0 (#15442) | 300afda |
| @jonahsnider | feat(validation): expose document validation completeness (#15495) | 1fc5a24 |
| squiggler-app[bot] | chore(tests): generate dts tests 🤖 ✨ (#15529) | 453c2ac |
| @laurenashpole | chore: migrate text in dev/test-studio (#15487) | fe53638 |
| @laurenashpole | chore: migrate text in miscellaneous core/studio/components directories (#15464) | 3ce653a |
| @laurenashpole | chore: migrate text in structure/panes/document/documentPanel (#15479) | 342942e |
| @laurenashpole | chore: migrate text in misc directories in core/form/inputs (#15383) | c7607a9 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#15493) | 86ec229 |
| @jordanl17 | feat(radar): record a weekly engine confidence score (#15445) | 0e7eb57 |
| @pedrobonamin | fix(core): respect partial index excluded fields in studio search (#15502) | 7166aac |
| @juice49 | feat(sanity): expose resolved beta config to document inspector resolvers (#15522) | b7bd517 |
| @jordanl17 | fix(releases): align release detail row menu gating with the document footer (#14354) | 7044eb4 |
| @gu-stav | fix(core): prevent cors failure for agent proposed changes (#15498) | 3d46a10 |
| @juice49 | test: update dts export fixtures (#15497) | 5930b99 |
| @jonahsnider | fix(schema): preserve built-in validators in serialized schemas (#15492) | 7015662 |
| @jonahsnider | perf(validation): improve performance of document validation (#15158) | 8f95050 |
| @jonahsnider | test(validation): add document validation benchmarks (#15157) | b9fb472 |
| @jordanl17 | refactor(form): extract shared form state from document form (#15425) | fdb1d90 |
| @stipsan | feat(structure): focus the title field from the document title (#15454) | 72c9187 |
| @pedrobonamin | fix(util): keep keyed paths with periods or brackets from crashing the structure tool (#15463) | 9b447f8 |
| @oleg1357 | feat(core): download the schema from the diagnostics dialog (#15430) | 3583116 |
| cursor[bot] | test(form): cover formState member error classification (#14941) | aa97365 |
| @jordanl17 | feat(bench): add a long-session soak on the article document (#15426) | 0a29ddd |
| @jordanl17 | feat(radar): add the sqrl studio quality score and trends banner (#15427) | d39cfac |
| @stipsan | fix(search): exclude content agent versions from raw perspective search (#14250) | 81d3d9c |
| @gu-stav | fix(structure): reload only the structure tool on errors (#15431) | 9144735 |
| @pedrobonamin | fix(form): show the correct day for date fields in review changes (#15462) | aabb8b4 |
| @jonahsnider | feat(validation): add validateDocuments for batch validation (#15144) | b54a6d8 |