v6.9.0
Sanity Studio v6.9.0
This release includes various improvements and bug fixes.
For the complete changelog with all details, please visit: www.sanity.io/changelog/studio-Ni44LjA
Install or upgrade Sanity Studio
To upgrade to this version, run:
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 |
|---|---|---|
| @stipsan | refactor(ui): migrate Stack and Button space prop to gap (#13867) | 8343de27072ac81a5db413eebe451a8abfee4e31 |
| @pedrobonamin | feat(core): query documents in the selected variant alongside the perspective stack (#13791) | 8989fe72ebe5c0b4173fa7f356235fa403639711 |
| @shapirodaniel | feat(core): unclaimed project claim intake and nudge (#13705) | 41dd4bfaf1049146e38938e39f008f7fa5f1c95b |
| @pedrobonamin | chore(structure): render doc badges even if the doc is missing (#13743) | f03b8afff06bc614a2908c077fb3412c33201220 |
| @pedrobonamin | test(e2e): add tasks e2e tests for create, release scoping and resolve (#13754) | de8fb79553b107fb3fffb2a79acdc27627fefa2e |
| @stipsan | fix(core): avoid native useEffectEvent in forwardRef and memo (#13821) | 8f84cf4b0628e3b9bc8c4752f67ec793153aaaf6 |
| @jordanl17 | fix(core): stop permission loading-flag churn on every document change (#13771) | 96f5819eba54f1723adf6e29f9491ada56543643 |
| @jordanl17 | refactor(core): consolidate array list object telemetry events (#13772) | 1a9dffcefdec8db5e73b902dbdc2b0db6e73e3b2 |
| @stipsan | chore(lint): prefer function components via oxlint rule (#13826) | a6b0627a7c3d4caa992e37eb1d658b6844ba72ce |
| @stipsan | chore(structure): drop redundant incoming references comments (#13852) | 1542aa03a0fdd76af071b34a248cb444a77943e7 |
| @stipsan | fix(dev): migrate profiling minify options from esbuild to vite (#13859) | d25a51cbebe8fd6f309938305c202218c9db27af |
| @stipsan | chore(test-dts-exports): remove ui-poc styles.css TS2882 workaround (#13863) | 623e18f19a6d43f3dcf8964a788e3334f1d5a6c3 |
| squiggler-app[bot] | fix(deps): update dependency get-it to ^8.8.2 (#13865) | 7ea95c3ff2b75203e9d83ec2a80fa2af39a19cdd |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13864) | 5d36c67b4def9768a7c1a018a4cd542606f50537 |
| @jordanl17 | perf(sanity): batch connector geometry updates with rAF and bail on unchanged connectors (#13763) | 24a033eacb13ce373f844ec77cfc6e0209741118 |
| squiggler-app[bot] | fix(deps): update playwright monorepo to v1.62.1 (#13855) | 40c0ab538d70e95153794d1b23298f24be5538f4 |
| squiggler-app[bot] | chore(deps): update dependency oxlint to ^1.76.0 (#13844) | 9eb219e749339cf8846ba8bb2103880a33caab14 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/cli to ^7.16.0 (#13858) | 1c690fd165eadff4b187d4247059bf450cb4fec9 |
| @stipsan | chore(test-studio): add vitejs devtools integration packages (#13850) | 027245f04b370b81b956ecc20711d300c8c6dd47 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/client to ^7.26.0 (#13848) | 8458e48d62fb079d4340ce29325b44312f128b41 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13853) | be95af4917c498fefe0fdffde1f9c814da32567b |
| squiggler-app[bot] | chore(deps): update dependency @sanity/tsdown-config to ^0.21.3 (#13862) | f7d1c45f9bcc74e643516a49c96185f772952c46 |
| squiggler-app[bot] | chore(lint): fix linter issues 🤖 ✨ (#13860) | 32c9c66394721fa228318acfe5a151f7d2978b3b |
| squiggler-app[bot] | fix(deps): update portabletext (#13842) | 9320439714fefd700256787b4529798411eb19e6 |
| squiggler-app[bot] | fix(deps): update dev-non-major (#13834) | cfd0b3ba26c60d82aee9a7907374c2322f28f330 |
| squiggler-app[bot] | fix(deps): update dependency motion to ^12.43.0 (#13849) | 64f1aa177218ad125c33567630c2d30dcde0910f |
| squiggler-app[bot] | chore(deps): update dependency knip to ^6.31.0 (#13843) | 853e4a13ca6b67081c138b0b2ee39d0b41434724 |
| squiggler-app[bot] | fix(deps): update dependency get-it to ^8.8.1 (#13841) | a4d82442b3f74beb5004d557bf8b9f17ca14ccf9 |
| squiggler-app[bot] | fix(deps): update react monorepo (#13856) | cdd01d305e70a66a563d95d3f30ef01398be0ec0 |
| squiggler-app[bot] | chore(deps): update dependency oxfmt to ^0.62.0 (#13857) | e3860036325d5090eb99df4a5924bddf0fc4cd77 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/ui to ^3.5.1 (#13818) | ed699edfc11578625ce214ae805a77e212315690 |
| squiggler-app[bot] | chore(deps): update dependency @vanilla-extract/css to ^1.21.2 (#13854) | 41d79dd45355c278ba3ad469a4dd725d84c505ef |
| squiggler-app[bot] | chore(deps): update dependency vite to ^8.2.0 (#13846) | f88be20f8358c0d9c3ff33edca60b5ec9f200331 |
| squiggler-app[bot] | chore(deps): update dependency @vitejs/plugin-react to ^6.0.5 (#13840) | 204dc7dfa4b04ea160e45b53b9aa1a8eba019629 |
| @pedrobonamin | fix(structure): incoming references shouldn't self refer (#13851) | 367be3f9a4fc0bb999278f77944209b3aa2bc48f |
| @stipsan | fix(structure): keep inspector crashes inside the inspector panel (#13845) | cba51818c90f87311031fdc9ae03bb071ca30f77 |
| @stipsan | perf(sanity): defer non-controlled useObservable subscriptions (#13799) | 2958d75de93601e987f640b0ff02f3827db3d4ec |
| @stipsan | chore(deps): bump react-rx to v5 and adopt useSyncObservable (#13814) | d66f50562917e1d8ebf4d0ed01104332814d84bc |
| @stipsan | refactor(sanity): adopt useObservablePromise for data loading states (#13828) | 2d7be6accd75ebf874894de43253efbaf0b1f2f5 |
| squiggler-app[bot] | chore(tests): generate dts tests 🤖 ✨ (#13839) | 01339c43f7703e3929b5ffe18741401c0211dd90 |
| @codythatsme | fix(types): preserve supplied schema helper properties (#13237) | 38002e4432aff0f917eee7461897c23bba35886e |
| @stipsan | chore(lint): migrate eslint-plugin-boundaries config to v7 (#13710) | f8fa3907e6a649027d32423761b12ae2185c1e31 |
| @pedrobonamin | fix(core): allow creating draft variants from published variant sibling (#13741) | cf5a7da78f0f4d42a7c21106749b439a007efdf3 |
| @pedrobonamin | fix(core): update copying variants to different releases from context menu. (#13800) | 3086936c9a450730e9ea2cd59ce86c007ccd4578 |
| @stipsan | docs(agents): adopt useful patterns from plugins AGENTS.md (#13764) | 4794716394e5d210f23b1c8ab556630b24341f4e |
| @pedrobonamin | chore(structure): useDocumentTitle, use document pane provider value (#13742) | 6f46b8d6421c54d87e60d90eab1423e79d849992 |
| @joshuaellis | feat(workbench): export AssetSource types from sanity/workbench (#13827) | 458ca4a6cb0863db236a695d15b295974c2162a2 |
| @stipsan | chore(oxlint): add typescript/no-deprecated rule (#13829) | bd7b4b1b610d561ff51c996594bfdf72c9e91366 |
| claude[bot] | fix(ci): wait for published packages to be installable before post-publish steps (#13823) | 53072772f79e41e488d2ea4f21d714362c65ffc3 |
| @stipsan | refactor(sanity): replace useState useEffect observable subscriptions with useObservable (#13788) | ae2fb782c12834c907e4af1477f642fc323ea9fb |
| @laurenashpole | chore(core): updates @sanity-labs/ui-poc to 0.0.1-alpha.25 (#13832) | 30ec805b59156e53c729b231ab6c77dad3122145 |
| @pedrobonamin | chore(core): versions context menu use documentGroupId and versionId (#13820) | 950c5a5e502dcb8e66eb36ec7535cd8badb87c03 |
Fetched August 4, 2026
