v6.6.0
Sanity Studio v6.6.0
This release includes various improvements and bug fixes.
For the complete changelog with all details, please visit: www.sanity.io/changelog/studio-Ni41LjA
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 |
|---|---|---|
| @jordanl17 | fix(releases): use replace when syncing router state to URL (#13669) | e68c1a68851086fed99063e28b9531a7fbd065f2 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13651) | 9b1a60ae2d744241c329c397a7987e2eeb19dfae |
| @christianhg | chore(deps): bump @portabletext/sanity-bridge to ^3.2.3 (#13627) | cf7ea4caa09f9643d01ec4894b13d51a171eca46 |
| squiggler-app[bot] | fix(deps): update portabletext (#13658) | 4403096b3706fd5311464cddfff38ef67e194b57 |
| @jordanl17 | fix(release-notes): unwrap invalid callout blocks written to apiChange docs (#13667) | cd5f06857c3635a7dc96e4610981fd063e739832 |
| @gu-stav | fix(deps): update @sanity/cli to 7.12.1 and @sanity/workbench to 0.1.0-alpha.29 (#13668) | 17d60668b69a8d9581fef5da5f41f76b34610643 |
| @stipsan | fix(sanity): expand collapsed ancestors when opening a document with an initial focus path (#13575) | a0265b1e132518daca4ab296477d30c1e8d9c384 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/icons to ^5.2.0 (#13652) | 0f0d33ea6ca7e1d157def3d7457f4b3fd08eb84c |
| squiggler-app[bot] | chore(deps): update dependency @uiw/react-codemirror to ^4.25.11 (#13653) | b90f7685aa12fbb2e6271706b335dc55ee08cca9 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/cli to ^7.12.0 (#13663) | c5c49860d6a778693902418dbac60d46a45b9273 |
| @bjoerge | fix: fix auth flash (#13497) | 191814e3709fed7b6988f38d9496dc3bd3228524 |
| @pedrobonamin | feat(presentation): share variant to presentation using comlink (#13616) | 88167ddf7753c56f482a2a8f58b19044c9d38885 |
| squiggler-app[bot] | fix(deps): update dev-non-major (#13649) | 4b794b15d9b1f9c15c9168f7f8a5472acb605193 |
| squiggler-app[bot] | chore(deps): lock file maintenance (#13646) | a542b01cf889f1cbb258fea2a044a29ac9a12c82 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13650) | 90357936260da1e459d7d616f7e6560d40b03b4c |
| squiggler-app[bot] | chore(deps): update dependency @sanity/ui to ^3.4.0 (#13648) | 51ee805d3826336a606794fcb02604db77c4b142 |
| @christianhg | fix(core): disable toolbar actions the caret position can't honor (#13645) | fb540f3919ebe849bfd38fa28b68b97eb4ed1fac |
| @christianhg | chore(test-studio): narrow the container table's cell blocks for toolbar contrast (#13645) | 6510468aff673048b7c86e3d90c53e9de0b5a6ae |
| @stipsan | chore(deps): update dependency @isaacs/ttlcache to v2 (#13587) | c5f9a43199b765d7050d6a37797a356555056d39 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13635) | b7dfd49feb1754b45f069ae2da4b9c3cab1e96d9 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/migrate to v8 (#13644) | 1a16b6c598dff6a90388813c3f1d6065163bfc26 |
| squiggler-app[bot] | chore(deps): update actions/checkout action to v7 (#13643) | 2ed51c10a01e70b8af786b7e7d35da3f94d5c95d |
| squiggler-app[bot] | chore(deps): update dependency turbo to ^2.10.5 (#13641) | 7d46655306fee197d3b100b3f717f729d3830544 |
| squiggler-app[bot] | chore(deps): update dependency @sentry/react to ^10.66.0 (#13642) | 6665fdb56475c4acc3e62f3cf354afc0aa9f8930 |
| squiggler-app[bot] | chore(deps): update dependency tsx to ^4.23.1 (#13640) | 94b315ed1db3200662fe964d414556ad26a2a3a6 |
| squiggler-app[bot] | chore(deps): update dependency @tanstack/react-virtual to ^3.14.6 (#13636) | 2e87cc94ea3c2c1c137e83a94d397891bbf1adf8 |
| squiggler-app[bot] | chore(deps): update dependency is-network-error to ^1.3.2 (#13637) | 4873a849114cfb04fd1008b9092ff8a6666b6ab1 |
| squiggler-app[bot] | chore(deps): update dependency prettier to ^3.9.5 (#13638) | d0c260265b2dc0823cfe8da122f422dc90db2074 |
| squiggler-app[bot] | chore(deps): update dependency sanity-plugin-internationalized-array to ^5.1.22 (#13639) | 231305aa7b4860ae5bdf30c9b20bb2bdb65e0fa7 |
| squiggler-app[bot] | chore(deps): update dependency vercel to v56 (#13634) | ee134dec342f5054a24dc1c0a293ce82fd200306 |
| squiggler-app[bot] | chore(deps): update dependency nanoid to v6 (#13633) | e9aaa36f80d19d52fc25ab5150741496c4c226a3 |
| squiggler-app[bot] | chore(deps): update dependency eslint-plugin-boundaries to v7 (#13632) | 2b3a9ae33998a9f00b7fef69de4704858950530c |
| squiggler-app[bot] | fix(deps): update portabletext (#13630) | 625064a8a18508f258f1ee82026ef029a6cd86a1 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/code-input to ^7.3.0 (#13631) | b9d136a834083684ff36ac7ce741c11a4a90a372 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/pkg-utils to v11 (#13480) | 1109fe33625926ee6311af37dc8c46bf9a351509 |
| squiggler-app[bot] | chore(deps): update davelosert/vitest-coverage-report-action action to v2.12.2 (#13629) | 3b807a8d55d80ee276ecd9c8e6349ff34e4ac8fe |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13626) | ad8bc366455b0f7e723bb81bbcd4f134c13860b1 |
| @christianhg | fix(core): report the .text focus-path suffix for spans at any depth (#13608) | 30952d18d13ad0743d15dbe22c63fb54e26e5871 |
| @christianhg | chore(test-studio): exercise Presentation overlays over table cells (#13608) | cbe7b051abe7ba3e35f6182600f556e93fcca390 |
| @christianhg | refactor(core): keep the legacy editor ref current (#13608) | 44f24877e34c2a9bb42cfdcd3c07c00c4a2bfc95 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/migrate to v8 (#13625) | 0fdd3d8a88b08d3e87c86bdc514b415632b0f621 |
| squiggler-app[bot] | chore(deps): update dependency @anthropic-ai/sdk to ^0.112.3 (#13622) | f3acb2ac5768610b16804285f71ab9b95cb84cd0 |
| squiggler-app[bot] | fix(deps): update dependency xstate to ^5.32.5 (#13621) | a879d112708e94414845b7f7d629cd7020de1dd2 |
| squiggler-app[bot] | fix(deps): update dependency motion to ^12.42.2 (#13620) | c469bee7cb402cfcaee3154fd8fd6f7cbe28dba5 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/sdk to ^2.18.0 (#13617) | 23cea1c2581543a97e06e12ab88884c56b8b0b27 |
| squiggler-app[bot] | chore(deps): update dependency sanity-plugin-internationalized-array to ^5.1.21 (#13618) | 4149fdb896aa23674e6b6c3a6233074a4887510b |
| squiggler-app[bot] | chore(deps): update dependency typedoc to ^0.28.20 (#13619) | fa8762be7234b5752023cfb7809bb4b845b062a4 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/media-library-types to ^1.6.0 (#13615) | e28a65dcc1f850a9a0d94f6049147ad9cf3800ff |
| squiggler-app[bot] | chore(deps): update dependency oxfmt to ^0.59.0 (#13624) | 4da66c161df31f840c2430cb4e79de0319ff8b7f |
| squiggler-app[bot] | chore(deps): update dependency @sanity/blueprints to ^0.23.0 (#13623) | d8b7de89127686d2817fe72fd5d0b3e9db5548ec |
| squiggler-app[bot] | chore(deps): update dependency @sanity/ailf to ^7.31.1 (#13614) | 1fb4a01ea6dcf315e72d8f11ae4cdc5ca26a8fdd |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13612) | 1bbd70898f5e1b8c54d89b8ab95437e15d287493 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/preview-url-secret to ^4.1.0 (#13613) | 41a35efdb7306786412456834137f8a1a297da73 |
| squiggler-app[bot] | fix(deps): update dev-non-major (#13604) | 62c47b8971676a4f4851bfa88a5e00fba80956b5 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/presentation-comlink to ^2.2.0 (#13605) | 2eda4a4143e5c1b2057331b240e08cb639244efb |
| @gu-stav | fix(deps): update @sanity/workbench to 0.1.0-alpha.28 (#13606) | 67464c38cc517cb7f156e12bc33dd1e8bc0c6fb2 |
| squiggler-app[bot] | chore(deps): update dependency sanity-plugin-media to v6 (#13582) | 042a8203d68bd073a2ae78b38b830ae8856ff37c |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13611) | bbd0abbc1b9842c97f50005347af9294842c8037 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/cli to ^7.11.0 (#13610) | 1064414dc8c6fa9be19a98d69442e27e11fe31e7 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/google-maps-input to ^6.1.7 (#13603) | 62170395f2cd2411b777e0c0e1e476bae1ba6400 |
| squiggler-app[bot] | chore(tests): generate dts tests 🤖 ✨ (#13601) | 6e5b98d27c4302b7a7dfb4e2204b671c41bf7228 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13602) | 26ea465b45a64e79405291f3e73b8cf4ed282998 |
| squiggler-app[bot] | fix(deps): update dev-non-major (#13421) | d9bbd709c4fde7fe2d4fcac95bdd45a54c54bacc |
| squiggler-app[bot] | chore(deps): update oxlint (#13580) | 8fd2365301cdf4c458284feaf82d8c3150c6f9de |
| @pedrobonamin | chore(core): export VARIANTS_STUDIO_CLIENT_OPTIONS from core (#13600) | 1ffa33d09f05e6443d2da565798f3774d283cc50 |
| @juice49 | fix(sanity): document group inventory font weights (#13599) | 48872b7488a33dfa5570c8b000d13f4db446cebe |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13594) | c2ed70bdc33730182d85d4f09beb26c73a7605f2 |
| squiggler-app[bot] | fix(deps): update portabletext (#13579) | 4c2662ac61366935d6c8079efbbb49c3d3cc0921 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13592) | def56d5cffd2f9151ffcf85388667373e5be7388 |
| @gu-stav | fix(deps): update @sanity/workbench to 0.1.0-alpha.26 (#13593) | ad2de0626445c20bec903e2738d62b9bca504e23 |
| @stipsan | fix(deps): bump @sanity/workbench to 0.1.0-alpha.26 (#13585) | 11ff1f9c28899064f6947dbb84c730931944cde8 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13583) | 78ac6ef7e605ef678b9726f135bc73b4ff392ce0 |
| squiggler-app[bot] | fix(deps): update codemirror (#13363) | 5db6df43857db362a127ceb6133d24fbb8f05954 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/client to ^7.24.0 (#13581) | 2a86130857338e1cafc147800bfc12d6e52e7ec9 |
| @juice49 | chore: setup ailf (#13448) | 411a7022e3757ee08a90f1f396e87fdf0359f0ce |
| @juice49 | chore: add boost-search-weight ailf task (#13448) | 75303b945f63b8c73f81623b4c47f10ec4127edd |
| squiggler-app[bot] | chore(deps): update dependency knip to ^6.27.0 (#13424) | 1414bf26f214b6a7556c3ba4079bf80372c876fe |
| squiggler-app[bot] | chore(deps): update dependency @sanity/ui to ^3.3.5 (#13381) | 73953f13ed449d1c61c52cb60d785741be12d073 |
| squiggler-app[bot] | chore(deps): update dependency @vanilla-extract/vite-plugin to ^5.2.5 (#13564) | 1b09544e75ad0c13c62cbfde6f157998b82a7ba3 |
| squiggler-app[bot] | chore(deps): update dependency lefthook to ^2.1.10 (#13565) | a7cb97b95f2733083eb6d6315e93857fe13bcdae |
| squiggler-app[bot] | chore(deps): update dependency pkg-pr-new to ^0.0.78 (#13566) | 0340dabf3cb8f207373b88f8de35e8b4ad437221 |
| @christianhg | feat(core): accept native table container definitions in the table plugin config (#13578) | fdb96359d1cc7bcbfc22efb7ab23c9980503731b |
| @christianhg | chore(test-studio): bind the table plugin to a rich-table schema shape (#13578) | 5ac4edfca39937b03a60c72db102c07d275a6434 |
| @christianhg | feat(core): add built-in table editing for Portable Text inputs (#13445) | 395437a05856cded4b0bb6ce1d5b04f42695a3e2 |
| @christianhg | chore(test-studio): enable the table plugin in the customPlugins story (#13445) | bc4ddcef426ff972937c721f0ae8d434d8f307a0 |
| @stipsan | fix(form): prevent pte caret from jumping to block start while typing on new documents (#13574) | a54b0bafbbe5abee945e81ca0e13dea31455c169 |
| squiggler-app[bot] | chore(deps): update dependency react-i18next to ^17.0.10 (#13567) | 57ed5b02434ebd8d69e6a0ad62e5645a0a5bf9b8 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13577) | 15fcff15ff1106037ddfa255d3f1009b6edc75dc |
| squiggler-app[bot] | chore(deps): update dependency sanity-plugin-internationalized-array to ^5.1.19 (#13568) | e1dad223df6d3ecfdddba5f82f4ccbd59a15715a |
| squiggler-app[bot] | chore(deps): update dependency vite to ^8.1.5 (#13569) | 0cdb5e87595b11585bddc56313b8fccf1fd3ef80 |
| @stipsan | fix(test-dts-exports): ignore workbench duplicate identifier dts errors (#13572) | 2694948faf12431b915bece95f299f397e4af1a9 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/google-maps-input to ^6.1.5 (#13563) | 7395bd12a4f984690f18b038ff31526d4db31937 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13571) | 5cd9c460a1af424c33b3139a4b9dd261b5f37f2d |
| squiggler-app[bot] | fix(deps): update dependency @sanity/cli to ^7.10.0 (#13570) | 17d211ef5255321b6591313bc99c8c3c7da2a753 |
| @jordanl17 | perf(core): deduplicate document version and permission subscriptions (#13390) | 7eba9124752f02b991ffb480975de61614c8eaa3 |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13540) | 774941f2105c6e76b4e4f1ff68904b5ee139181d |
| @jordanl17 | fix(structure): clear preference on restore-default and honor menuItems([]) (#13533) | ee015e1162dfe6aa3d592e6e56bfb3bc66caad58 |
| @jordanl17 | fix(structure): hide share action when the targeted document does not exist (#13539) | 2b973c42d41a6e735460e74ad75fc228bb7597f7 |
| @pedrobonamin | chore(core): variants UI updates (#13553) | b78b0ba5090a586d3f81d15c16faec093b239d30 |
| @stipsan | fix(comments): isolate mention permission failures (#13556) | 0c99352987029eccc3eae7860327a8bc147d7775 |
| @gu-stav | feat: workbench entry (#12511) | eef97ef58a18d32e77cb6dd113a733f4be8a7ed7 |
| @stipsan | feat(releases): add option to update existing drafts when publishing a release (#13400) | c7dd73c2675e67f28e2c29ef7e7dad4e98684cff |
| squiggler-app[bot] | chore(tests): generate dts tests 🤖 ✨ (#13549) | c67a718d0c27c16b00a699d1c271e4161e5d8ade |
| @matt-koevort | fix(portable-text): prevent duplicate nested annotation dialogs (#13551) | 11e248dcb5654f60c790b7f088b26b87e710f1c5 |
| @pedrobonamin | fix(core): update variant to variant definition and related copy (#13547) | 2e77b9ffd3afd0a437a13a97a84009e7dbcdb535 |
| @pedrobonamin | feat(variants): support document actions, diffs, comments and history for variant documents (#13156) | 9c1d7a2c857ddda83fde3799024d0bbc23ddd3bf |
| @pedrobonamin | feat(variants): add confirmation dialog for delete variant action (#13546) | 36916e6d568eb2a3d48390f04ce08589a3a61ad3 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/cli to ^7.9.0 (#13541) | d51c6d7d78e4a20ae74938dae5c1f87c72917dbb |
| @juice49 | chore(sanity): combine useDocumentPane calls (#13543) | d91e618273c6626180968252a4b0641491de0b44 |
| @juice49 | chore(sanity): rename parameter for consistency (#13543) | ec65fffe5f58d387f37e13ee7222b983e68fc43f |
| @juice49 | fix(sanity): use displayed document id to drive active variant (#13543) | 70af7f2ee5d2b6a8d48456ee387a9d1c2c402cff |
| squiggler-app[bot] | fix(deps): update portabletext (#13527) | e2ba18d07243848fe201159c1e41487e654fabda |
| squiggler-app[bot] | chore(deps): update dependency turbo to ^2.10.4 (#13525) | d32bc232c92362549f2fe0f665dd0265ed0c641e |
| squiggler-app[bot] | chore(deps): update dependency @sanity/eventsource to ^5.0.4 (#13530) | 8416bb99022cf729e54aea29a274ad74931c3104 |
| squiggler-app[bot] | chore(tests): generate dts tests 🤖 ✨ (#13532) | 0b35b33361158d23e3a30f448a8a7ded15b0b4ae |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13535) | 03b46cbd151ed563255678beaf363695214f03b1 |
| squiggler-app[bot] | chore(deps): update dependency @sanity/visual-editing-csm to ^3.0.11 (#13523) | e92cc9df3e68004d0bcd2ad9f58cd66dc70e56bf |
| squiggler-app[bot] | chore(deps): dedupe pnpm-lock.yaml (#13531) | 4a9b96c7021172a2a40f5bcd7123329f0b2ee104 |
| @juice49 | chore(sanity): add dedicated VariantId type (#13476) | f2dad8b1bc95f3ebcffe8ad6b80cc798473f8a8a |
| @juice49 | chore(sanity): add isVariantId type guard (#13476) | 267f5a03b639ea2bf396f9b5cf42025d8ef1fbe9 |
| @juice49 | test(sanity): correct fixture data (#13476) | 80ffc9ef3cd9a0420a45f9a7041c636163e6a6c3 |
| @juice49 | fix(sanity): recognise variants in isPublishedVersion and isDraftVersion (#13476) | e9029161b741414e75efdab7a0596fd175e27dbb |
| @juice49 | refactor(sanity): simplify setVariant signature (#13476) | ac6522cb5cfe9db1ec123ff22505916e3f4d3148 |
| @juice49 | chore(sanity): list variants in document group inventory (#13476) | d2df470313f803e6a56cb29578f6f8e2d4d47089 |
| @pedrobonamin | feat(variants): enable editing variant documents through the document form (#13505) | 46d84dc1977e7e0740782044a053342241723735 |
| @pedrobonamin | fix(form): allow array insert menu to overflow edit dialogs (#13503) | 5f0a097d20c8179b8803085e112b7f479bc59517 |
| squiggler-app[bot] | chore(deps): update dependency @vanilla-extract/vite-plugin to ^5.2.4 (#13524) | a6cd8d0d3f9916880c66b8c3f97e08d148990921 |
| squiggler-app[bot] | fix(deps): update dependency @sanity/client to ^7.23.1 (#13526) | 69bc31da29fe5570ab2a759bbf5a23bad6defc41 |
| squiggler-app[bot] | fix(deps): update vitest monorepo to ^4.1.10 (#13528) | ec4b07126e2ea188e4aba8414910ffbb6013e43d |
| squiggler-app[bot] | fix(deps): update dependency @sanity/icons to ^5.1.0 (#13529) | 3f9749b346b36debeea84c07fda510e6c47d92f0 |
| sieve-sanity[bot] | fix(structure): render menuItemGroup title in pane action menus (#13238) (#13521) | ad4ffd7e5fe03e3d04c1f5f99e83aa35c75c5aa9 |
| sieve-sanity[bot] | fix(sanity): pad tag pill on both sides when remove button is hidden (#13429) (#13513) | baf40c073a044cd99f71a3d3b306f29a267b1e38 |
| @stipsan | fix(form): strip stega metadata when pasting into plain text fields (#13499) | b82ed3d1e535f75f2602217479f46d2ed28fa457 |
| @stipsan | refactor(core): vendor insert-menu into the studio (#13495) | 57813a71ce8b98f3e478b24d39a9e059267f688b |
| @bjoerge | ci(bench): match track-main session counts to the PR shards (#13519) | b2462356bfeee571cb7094a45da55171a2a60705 |
| @bjoerge | fix(bench): mock the document-at-revision history endpoint (#13517) | e9d5898c59564e05e9debddee5b03fce4da6a5a2 |
Fetched July 22, 2026
