Releases: sanity-io/sanity
v3.34.0
Installation and upgrading
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade your Sanity Studio, run this command in its folder:
npm install sanity@latest
✨ Highlights
Persisted user settings
User settings (like desk list sort orders, view modes, and global search history) are now stored securely server-side by Sanity. This means that these settings do not need to be re-selected across devices or browsers, and will be persisted wherever a user logs into their Studio.
🐛 Notable bugfixes
- Fixes a bug in the Portable Text Editor where merging two text blocks could result in data loss in the topmost block when several editors are inside the document.
- Migration CLI tooling now always places its output in the project root, and provides better messaging about this.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Ash | feat(cli): improve migration runner output (#5904) | 11d15ce |
Ash | fix(cli): use inferred project root when creating migrations from subdirectory (#5905) | 1d2775c |
Herman Wikner | fix(core): handle no userId in getUser (#5992) | c9ceac0 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.11.6 (#5999) | 51d3bbd |
Per-Kristian Nordnes | fix(portable-text-editor): fix and test issue with merge block operation (#5996) | 96bc72b |
Pedro Bonamin | feat(tasks): add notification data for tasks document and tasks comments (#5998) | 8e63552 |
cngonzalez | feat(core): store and fetch user settings from backend (#5939) | ecb3495 |
v3.33.0
Installation and upgrading
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade a Sanity Studio, run this command in its folder:
npm install sanity@latest
🐛 Notable bugfixes
- Resolves an issue where users were not redirected to their original destination after re-authenticating, ensuring seamless access to linked content within the Studio.
_projectId
and_strengthenOnPublish
are now valid values for Initial Value Templates, allowing for Cross Dataset Reference values in templates.- Fixes a type bug where the type for
defineType
anddefineField
was not being captured correctly.
Other Features
__experimental_search
is deprecated in favor of field-level search options for strings and Portable Text arrays. You should now be able to define search weights in your schema, like:
defineField({
name: 'title',
type: 'string',
options: {
search: {
weight: 10,
},
},
})
- Document Actions can now specify a
group
, which will allow users to specify whether a specific document action should appear in the footer or in the document's context menu. - Adds ability to open the hotspot and crop dialog by double-clicking image preview.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Tommy Petty | Update PULL_REQUEST_TEMPLATE.md (#5921) | 3afe5a2 |
Herman Wikner | fix(comments): enable check (#5918) | c230bb5 |
Herman Wikner | fix(comments): lost comment message while document is reconnecting (#5928) | ec4da46 |
Bjørge Næss | test(sanity): use dev aliases in the validation test's worker threads (#5927) | 8bf1c92 |
Herman Wikner | feat(comments): support task comments (#5934) | 75273af |
Herman Wikner | fix(comments): use _weak instead of weak (#5936) |
642224f |
Tommy Petty | fix(pte): updates zoffset for PopoverEditDialog to not be on top of InspectDialog (#5882) | 69b3552 |
Nina Andal Aarvik | fix(core): add onDoubleClick to open image crop (#5815) | e3bfee0 |
Bjørge Næss | fix(ci): align pnpm install across all workflows (#5920) | f103967 |
Rico Kahler | feat(core): redirect to previous path after login (#5932) | 96cd0b6 |
Pedro Bonamin | feat(tasks): bootstrap tasks plugin (#5704) | dd0794a |
cngonzalez | refactor(core): use KeyValueStore for recent searches (#5872) | c531a6b |
Herman Wikner | fix(comments): handle lack of access to inline comments (#5925) | 2d4f60c |
Pedro Bonamin | chore(comments): add support for comments layout avatar config (#5944) | f42ea79 |
Tommy Petty | fix(core): remove prev and next month buttons in calendar input (#5931) | 01f7df2 |
Pedro Bonamin | feat(core): add groups to document actions, introduce paneActions group (#5933) | 4e95e09 |
Rico Kahler | fix(core): upgrade and fix types for typescript 5.4 (#5943) | 4e72b80 |
Rico Kahler | fix(core): allow _projectId and _strengthOnPublish in templates (#5942) |
5adca88 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.7.0 (#5955) | 0314111 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.3 (#5952) | 01bd4ab |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.11.4 (#5954) | a5a1a5d |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.3 (#5953) | fc22e9f |
renovate[bot] | chore(lockfile): update dependency @sanity/icons to v2.11.0 (#5957) | 502fda0 |
renovate[bot] | chore(deps): update dependency @sanity/assist to v2 (#5960) | f7019ff |
Pedro Bonamin | fix(deps): update @sanity/icons (#5956) | 15f53bd |
Bjørge Næss | chore(test): exclude the github reporter from playwright tests for now (#5959) | 334917f |
Cody Olsen | chore: add PTE in Presentation race condition reproduction (#5961) | 4adda38 |
Cody Olsen | chore: always bump @sanity/ui (#5963) |
1884546 |
renovate[bot] | chore(lockfile): update dependency @sanity/icons to v2.11.2 (#5962) | bf22266 |
Sindre Gulseth | feat: add cmd to generate a JSON representation of schema (#5919) | c1e4f2a |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.11 (#5967) | 25dce83 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.8 (#5966) | a1237d6 |
Herman Wikner | feat(core): add navbar actions (@internal ) (#5968) |
8336c9f |
renovate[bot] | chore(lockfile): update dependency framer-motion to v11.0.12 (#5969) | 01f260b |
renovate[bot] | chore(deps): update dependency @sanity/icons to ^2.11.2 (#5970) | 1b0eb08 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.7.1 (#5971) | 3101795 |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.9 (#5972) | 218d09c |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.11.5 (#5973) | 9254565 |
Nina Andal Aarvik | fix(tasks): show pending tasks in document footer (#5894) | 177bc79 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.4 (#5975) | a701e1c |
renovate[bot] | fix(deps): update dependency @sanity/ui to ^2.0.10 (#5976) | b7bcc2d |
renovate[bot] | chore(lockfile): update dependency @sanity/assist to v2.0.3 (#5977) | be49900 |
Pedro Bonamin | feat(tasks): use FormBuilder to create and edit tasks. (#5897) | 908577e |
Pedro Bonamin | feat(tasks): track activity changes with document history. (#5965) | 0a76390 |
Bjørge Næss | chore(deps): pin typescript to 5.3 (#5984) | 193b4b8 |
Ash | feat(core): add new search config API (#5948) | 3c458c8 |
v3.32.0
Installation and upgrading
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade your Sanity Studio, run this command in its project folder:
npm install sanity@latest
✨ Highlights
Inline commenting in Blocks
Enhance editorial collaboration with the ability to attach comments directly to specific text selections. This feature includes highlight capabilities and ensures a seamless experience with updates and scrolling interactions.
Comments is available on the Growth plan (30-day free trial on new projects). You can learn more about comments in the documentation.
🐛 Notable bugfixes
Fixes sluggish document list due to lingering listeners
We've implemented a cleanup mechanism for edit state listeners to resolve issues that caused the document lists to become sluggish. Prior to this fix, open connections weren't being closed properly, leading to slow performance and potential crashes. If you've been experiencing delays or stability problems in your document lists, this update addresses those concerns.
📓 Full changelog
Author | Message | Commit |
---|---|---|
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.1 (#5913) | 3b741a1 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.2 (#5912) | 124570d |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.11.3 (#5914) | 2bebf24 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.6.0 (#5915) | b625213 |
Rico Kahler | fix(core): clean up edit state listeners (#5911) | 4acc11e |
Per-Kristian Nordnes | chore(comments): enable inline comments (#5883) | 7d3f33d |
Tommy Petty | fix(core): update placeholder text to be more clear and accessible (#5910) | 9978095 |
v3.31.0
Installation and upgrading
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade a v3 Studio, run this command in its folder:
npm install sanity@latest
✨ Highlights
Portable Text Editor improvements
- Inline references and objects will now render with increased default sizes in the Portable Text Editor for easier interaction.
- Original content keys are now preserved during undo/redo operations in the Portable Text Editor. This change makes for more robust content integrity.
🐛 Notable bugfixes
- Fixes an issue that allowed files to be dropped behind the open modal, leading to potentially adding files to the wrong input.
- Fixes a problem where temporary network disruptions could cause the form editor to reload and lose unsaved edits. Now, the form becomes read-only during reconnection, preserving state and changes.
- Fixes an issue where initial value templates would not accept a target dataset for cross-dataset references.
- Fixes an issue where the "disabled" state was shown indefinitely for cross-dataset references.
- Resolves a UI problem where the "cannot upload" message was incorrectly shown for extension-restricted file types during hover.
- Fixes a bug where certain selections within the Portable Text Editor were being mishandled.
- Fixes an issue where Comments would show a loading state while the form was reconnecting, preserving user comments during network issues.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Robin Neatherway | docs: show backup command in help (#5865) | 5d060af |
Nina Andal Aarvik | fix(core): change modalWidth of inlineObjects to 1 by default (#5839) | 6e551b0 |
Per-Kristian Nordnes | feat(portable-text-editor): preserve keys on undo/redo (#5805) | f83e8e4 |
Herman Wikner | feat(portable-text-editor): implement isSelectionOverlapping method (#5870) |
1d41af7 |
renovate[bot] | chore(deps): update dependency get-random-values-esm to v1.0.2 (#5856) | 16a5434 |
Ash | fix(form): prevent drop event propagating outside of EditPortal component (#5813) | fc73437 |
Per-Kristian Nordnes | fix(portable-text-editor): check that path is lengthy (#5875) | 2deebb1 |
Herman Wikner | feat(core): add onFullScreenChange to Portable Text Input (#5879) |
84a0c90 |
Rupert Dunk | feat(structure): support closing first collapsed DocumentPanel (#5867) |
6d61e94 |
cngonzalez | fix(core): check if previous state is null for unmounted component (#5724) | 9ed5cca |
Tommy Petty | fix(structure): provide better error handling if orderings contain invalid field (#5709) | 4926b78 |
Per-Kristian Nordnes | feat(portable-text-editor): range decorations (#5871) | fa330a0 |
Herman Wikner | feat(comments): introduce inline commenting (#5606) | 7ed2b0f |
Tommy Petty | fix(core): updates to not show "cannot upload" on hover when using extension based accepts settings (#5881) | 023e7e6 |
Bjørge Næss | fix(sanity): preserve form (as readOnly) when reconnecting (#5884) | ed87e2a |
Per-Kristian Nordnes | fix(portable-text-editor): all paths must be checked (#5891) | 4ae88a0 |
Per-Kristian Nordnes | fix(comments): allow ranges to be collapsed (#5892) | eb5cd50 |
Ash | feat(ci): cache release dependencies (#5834) | 75ac3cf |
Rostislav Melkumyan | feat(cli): --quickstart flag for ejecting server schemas (#5797) | 174a616 |
Pedro Bonamin | feat(core): export useWorkspaceLoader from core (#5898) | 3670459 |
Pedro Bonamin | chore(search): refactor search to export necessary components and providers. (#5900) | 4159bca |
Espen Hovlandsdal | chore(deps): upgrade archiver, split2 dependencies (#5880) | c9a1dd6 |
Espen Hovlandsdal | fix(core): allow _dataset for cross-dataset references in templates (#5889) |
9fc34a2 |
v3.30.1
Installation and upgrading
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade a v3 Studio, run this command in its folder:
npm install sanity@latest
✨ Highlights
- Added reference documentation for the
sanity/migrate
APIs.
Other features
- Adds ARIA labels to navbar icons for better accessibility.
- Fixes an issue in which the free trial popover was shown twice for new users.
🐛 Notable bugfixes
- Updates placeholder color for Portable Text Editor.
📓 Full changelog
Author | Message | Commit |
---|---|---|
cngonzalez | test(core): add tests for sort order local storage values (#5764) | adb43b0 |
Per-Kristian Nordnes | feat(form/inputs): control PortableTextEditor instance via ref (#5793) | f655b5c |
Per-Kristian Nordnes | feat(core/inputs): support custom editor change callback (#5803) | 1a36a74 |
Per-Kristian Nordnes | feat(portable-text-editor): determine if selection is made backward (#5807) | db8fd66 |
Per-Kristian Nordnes | feat(portable-text-editor): new API method getFragment (#5806) | f210112 |
Pedro Bonamin | fix(pte): update pte placeholder color (#5756) | 2ec0605 |
Per-Kristian Nordnes | test(playwright-ct): fix some webkit flakyness in PT-Input tests (#5811) | 981a4bd |
Nina Andal Aarvik | fix(core): add missing aria-labels to navbar icons (#5810) | ea8f97a |
Bjørge Næss | fix(docs): complete apidocs for migrations (#5679) | 32569be |
Espen Hovlandsdal | fix(i18n): escape interpolated values inside of (#5804) | 78ffbaf |
Robin Neatherway | chore(backup): set dated api version (#5816) | fd5bb2f |
Nina Andal Aarvik | fix(core): add aria label to action button pte toolbar (#5653) | 0794d72 |
Nina Andal Aarvik | fix(pte): add telemetry to invalidvalue error (#5809) | f3fd972 |
Per-Kristian Nordnes | chore: update codeowners details (#5812) | 0e94908 |
Bjørge Næss | chore: use star for workspace protocol version (#5822) | 6894f7b |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#5823) | b34420c |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.9 (#5827) | 06968cd |
renovate[bot] | chore(deps): update dependency @sanity/ui to ^2.0.7 (#5824) | 63e569f |
renovate[bot] | chore(deps): update pnpm to v8.15.3 (#5829) | b75a335 |
renovate[bot] | chore(deps): update dependency turbo to ^1.12.4 (#5826) | 40ad626 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.4.0 (#5828) | 22200c6 |
renovate[bot] | chore(deps): update actions/cache action to v4 (#5831) | 81e5140 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.14.2 (#5830) | 447dfba |
Robin Neatherway | feat: update indexing endpoint for new name (#5725) | 477b60c |
Pedro Bonamin | chore(tasks): move CommentsSetupProvider to core (#5767) | dbff227 |
cngonzalez | refactor(core): refactor SettingsStore and useStructureToolSetting (#5784) | 74be48b |
Ash | fix(i18n): add successful document restoration string (#5821) | 21677cd |
cngonzalez | test(core): add test for color scheme preference and search (#5820) | 1c1c87c |
Fred Carlsen | fix(test): fix breaking annotation popover test (#5838) | 042cd34 |
renovate[bot] | fix(deps): update dependency get-it to ^8.4.10 (#5841) | 09970ef |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.11.0 (#5842) | 78bc713 |
renovate[bot] | chore(deps): update dependency @bjoerge/mutiny to ^0.5.3 (#5843) | 8e95d63 |
renovate[bot] | chore(deps): update pnpm to v8.15.4 (#5844) | ce5339b |
renovate[bot] | chore(lockfile): update dependency @sanity/logos to v2.1.6 (#5845) | c4f1071 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.8.7 (#5846) | 2367d5d |
renovate[bot] | chore(lockfile): update dependency mendoza to v3.0.5 (#5848) | 2a32db3 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.5.0 (#5849) | aaddddb |
renovate[bot] | chore(lockfile): update dependency groq-js to v1.4.3 (#5847) | f502730 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.14.4 (#5840) | 8aec841 |
Robin Neatherway | fix: wait for all streams to close when writing backups (#5835) | 0363599 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.5.1 (#5850) | 387f66f |
renovate[bot] | chore(lockfile): update dependency @sanity/preview-url-secret to v1.6.4 (#5851) | 21eac30 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.11.1 (#5853) | d467be4 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.8.8 (#5852) | 8a6d67f |
ecospark[bot] | chore(prettier): fix unformatted files 🤖 ✨ (#5854) | bcdb319 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.15.0 (#5857) | 9ddde9a |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.5.2 (#5858) | 9dc2e91 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.11.2 (#5860) | 24cf9e0 |
renovate[bot] | chore(lockfile): update dependency @sanity/react-loader to v1.9.0 (#5859) | 47fed89 |
Pedro Bonamin | fix(core): free trial shows twice (#5837) | e774ce1 |
radhe | fix(cli): handle API Error and update text output when backups are enabled (#5861) | 11d3ceb |
Rico Kahler | build: allow etl.yml to be ran manually (#5863) |
212f021 |
Binoy Patel | chore(deps): bump tsdoc to 1.0.0-alpha.44 (#5866) | 99d60af |
Nina Andal Aarvik | fix(core): change telemetry event names (#5832) | 242e2ca |
v3.30.0
Installation and upgrading
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade a v3 Studio, run this command in its folder:
npm install sanity@latest
✨ Highlights
Improvements to Comments in Presentation
With the recent introduction of both Presentation tool and comments, we realised that context can be crucial in understanding comments relating to visual aspects of an application.
Comments created from within the Presentation tool will now display a link allowing content editors to navigate from any tool directly to the context in which that comment was made in their application.
Other features
- Improves error handling for a migration script that attempts to iterate over the passed document function without calling it
- Adds new Studio API,
ActiveToolLayout
, which allows plugin authors to have more flexibility by wrapping the active tool - The selected viewport in Presentation is now persisted in the URL
🐛 Notable bugfixes
- Improves focus handling with the Presentation tool and Portable Text Inputs
- Fixes regression preventing
import {debugSecrets} from '@sanity/preview-url-secret/sanity-plugin-debug-secrets'
listing secrets - Fixes a bug preventing the CLI being used inside Studio project subdirectories
📓 Full changelog
Author | Message | Commit |
---|---|---|
Rico Kahler | fix: remove no private (#5726) | a3998c3 |
Ash | refactor(util): move concurrency limiter packages to @sanity/util (#5654) |
35d368e |
Ash | fix(cli): project root resolution (#5712) | e30f45f |
Bjørge Næss | chore(deps): normalize vite dependencies | 4c6ade2 |
Bjørge Næss | chore(docs): remove internal 'how to publish' from CONTRIBUTING.md | 3e95893 |
Bjørge Næss | chore: install npm check-updates as dev dependency | 5799aed |
Bjørge Næss | chore: upgrade debug to latest 4.x | 5719016 |
Bjørge Næss | chore(depcheck): remove v2 detector and fix ts error | a2c08ee |
Bjørge Næss | chore(depcheck): cleanup depcheck ignores | ac8fdc3 |
Bjørge Næss | chore(portable-text-editor): add missing dev dependency | ef47bad |
Bjørge Næss | chore(groq): use relative imports to 'groq' from tests | b5dc763 |
Bjørge Næss | chore(sanity): add missing dev dependencies | e1be615 |
Bjørge Næss | chore(cli): cleanup dependencies | 3bb3d2b |
Bjørge Næss | fix(test): remove unused files | 4317541 |
Bjørge Næss | chore: add @jest/globals as dev dependency in packages | af6561e |
Bjørge Næss | chore(test): remove @sanity/ui jest mock | 66eaec5 |
Bjørge Næss | chore(test): run codemod migrating from implicit imports from '@jest/globals' | 23add76 |
Bjørge Næss | chore(test): fix various test typings after moving to @jest/globals | 79f89c8 |
Bjørge Næss | chore(sanity): add workaround for typing difference between @types/jest and @jest/globals | 7e3bcf2 |
Bjørge Næss | chore: remove @types/jest usage | c81b291 |
Bjørge Næss | fix(test): remove usage of jest-dom/extend-expect | 8a80150 |
Bjørge Næss | chore(deps): upgrade @testing-library/jest-dom to 6.x | 1a323e7 |
Binoy Patel | chore(cli): update help copy for CLI commands (#5687) | 12fb96b |
Rupert Dunk | chore(comments): improve i18n resource for comment contexts (#5731) | ce560b0 |
Bjørge Næss | chore: switch from yarn to pnpm | da9f72e |
Bjørge Næss | fix(mutator): fix type export issue | c7ed0c9 |
Bjørge Næss | chore(cli): replace vite typing stub with proper dependency | d09db4c |
Bjørge Næss | chore(vision): fix typescript issue related to reexporting codemirror extensions | 26c5f47 |
Bjørge Næss | chore(deps): add 'sanity' as dependency to workspace root | 564c501 |
Bjørge Næss | chore(deps): upgrade @types/node to 18.x | 64203be |
Bjørge Næss | chore: rename mentions of yarn => pnpm | 5a65aad |
Bjørge Næss | chore(package.json): alphabetize scripts | 3527a43 |
Bjørge Næss | chore: clean up package scripts | c77b7ba |
Bjørge Næss | chore: cleanup depcheck scripts | 6e37d03 |
Bjørge Næss | fix(github): enable pnpm before installing dependencies | 0b572f1 |
Bjørge Næss | fix(github): fix workflow file | 5a215ca |
Bjørge Næss | fix: run prettier | e24a458 |
Bjørge Næss | fix(monorepo): add missing dev dependency | b5359d3 |
Bjørge Næss | fix(vision): add missing type dependency | 6e91aef |
Bjørge Næss | fix(sanity): update test snapshots | 70bcf6f |
Bjørge Næss | chore: apply suggestions from code review | 1b7a1f1 |
Bjørge Næss | fix(ci): fix subargs issue w/pte e2e tests | f0fad4c |
Binoy Patel | chore(e2e): fix e2e action failing (#5735) | 4c02649 |
Bjørge Næss | fix(chore): fix lint script (#5739) | d1fc36d |
Rico Kahler | build: remove last rebase step (#5737) | 79a5870 |
Espen Hovlandsdal | chore(deps): align versions, lockfile | 2d1f084 |
Espen Hovlandsdal | fix(cli): minor whitespace tuning for migration error output (#5727) | b20f121 |
Bjørge Næss | chore(ci): fix prettier --write (#5740) | 2b00589 |
Bjørge Næss | chore: improve dev commands (#5747) | b6199a1 |
Pedro Bonamin | feat(core): add studioActiveToolLayout and navbar rightSectionNode prop (#5749) | c708671 |
Per-Kristian Nordnes | chore: add missing types packages (#5751) | 656bec2 |
Ash | fix(core): add @types/lodash (#5753) |
59f8afd |
Cody Olsen | fix(structure): allow sanity.previewUrlSecret in document lists (#5733) | 8fd55c4 |
Bjørge Næss | chore(perf): replace references to yarn with pnpm (#5748) | 2f777d8 |
Binoy Patel | chore(deps): upgrade husky@9 (#5744) | 8f3c44c |
Binoy Patel | test(e2e): fix e2e test caching issue (#5763) | 6caf803 |
Bjørge Næss | fix(migrate): throw if attempting to iterate over documents producer (#5758) | 928f04d |
Bjørge Næss | fix(ci): use pnpm for package releases (#5746) | 4dedf3b |
Binoy Patel | test(migration) add tests for normalizeMigrationDefinition (#5565) | c4baaab |
Pedro Bonamin | fix(pte): PTE modal seems to re-render on validation state change due to tooltip disabled change (#5766) | c24e4d9 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.9.1 (#5773) | b7a3f13 |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.3.1 (#5770) | ec1cc0f |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.13.3 (#5772) | 79ef8c3 |
Binoy Patel | chore(test): fix linting and type errors (#5775) | 67ef631 |
renovate[bot] | chore(deps): update dependency @sanity/ui to ^2.0.3 (#5776) | 409edb1 |
Sindre Gulseth | fix: update ndjson specification url (#5780) | 15b9e79 |
Binoy Patel | chore(deps): bump @sanity/tsdoc to 1.0.0-alpha.42 (#5765) | 86bf2e9 |
Pedro Bonamin | fix(core): update featuresEnabled when switching projects (#5787) | 32d79a2 |
Per-Kristian Nordnes | chore: upgrade @playwright/test to latest (#5792) | 84a6015 |
Binoy Patel | test(migrate): update types for test to better match usage (#5781) | 15c3bc1 |
Per-Kristian Nordnes | refactor(core/inputs): report focusPath on text spans ending with .text (#5786) | 3941d86 |
Pedro Bonamin | feat(core): rename useMentionOptions to useUserListWithPermission and move to core (#5778) | 5da8891 |
Per-Kristian Nordnes | fix(core/inputs): fix issues with calling onPathFocus for PT-input (#5794) | 0f114b1 |
Bjørge Næss | chore: use workspace protocol for internal dependencies | 61eee1f |
Bjørge Næss | chore(workspace): use sanity dependency from workspace | 0693a24 |
Bjørge Næss | chore(deps): hoist sanity workspace package | b57830c |
Bjørge Næss | chore(test): use SanityClient type from @sanity/client |
bfa53c9 |
Bjørge Næss | fix(ci): run e2e-pte tests in the correct folder | e2f26c4 |
Nina Andal Aarvik | fix(core): bring back subtitle in workspace list view (#5788) | 2202e3c |
ecospark[bot] | chore(deps): dedupe pnpm-lock.yaml (#5798) | 6d4090e |
Espen Hovlandsdal | fix(structure): intent menu item nodes not rendering (#5728) | 613e1dd |
Ash | fix(ci): setup pnpm (#5800) | 83630cf |
Ash | fix(ci): remove pnpm reference from setup-node step (#5801) | 19c0e86 |
v3.29.1
Installation and upgrading
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade a v3 Studio, run this command in its folder:
npm install sanity@latest
🐛 Notable bugfixes
- Pins a dependency that was causing an infinite loop (Maximum call stack size exceeded)
📓 Full changelog
Author | Message | Commit |
---|---|---|
Espen Hovlandsdal | fix: pin get-random-values-esm to 1.0.0 | 8b09226 |
v3.29.0
Installation and upgrading
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade a v3 Studio, run this command in its folder:
npm install sanity@latest
🐛 Notable bugfixes
- Fixes an issue where the alert messages for published or deleted documents sometimes displayed incorrect titles
- Fixes a comments-related error dialog from inadvertently showing up to users
- Removes layout shift when loading document locations when the Presentation tool is used (#5702)
- Fixes a bug that hid unpublished documents in "Documents on this page" in the Presentation tool (#5702)
- Fixes a bug that caused the document pane to stay open in the Presentation tool (#5702)
Other features
- Adds support for importing system documents via
--allow-system-documents
for dataset imports - Adds support for parameterized templates in the Presentation tool (#5694)
📓 Full changelog
Author | Message | Commit |
---|---|---|
Pedro Bonamin | fix(core): update PortableTextInput doc reference (#5688) | 2664990 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.8.0 (#5694) | e725a3c |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.2.0 (#5693) | 9373ce6 |
renovate[bot] | chore(deps): update dependency @sanity/ui to ^2.0.2 (#5698) | bb0b631 |
renovate[bot] | chore(lockfile): update dependency @sanity/assist to v1.2.16 (#5696) | 72bc694 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.8.1 (#5699) | d645d37 |
Espen Hovlandsdal | fix(comments): catch and suppress errors from comments upsell (#5700) | fbaffd2 |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.12.4 (#5701) | f85396f |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.8.2 (#5702) | c23ccb4 |
Simeon Griggs | chore: rename "schemas" to the more correct plural "schemaTypes" (#5513) | 2eaffd3 |
Fred Carlsen | chore: apply auto eslint fixes with lint-staged (#5705) | 40c9b4f |
Binoy Patel | chore(dev): remove react import | 9aabbb0 |
Bjørge Næss | use jsx: 'automatic' for dev server | a2f505b |
Bjørge Næss | chore(deps): upgrade eslint tooling | 95890c6 |
Bjørge Næss | fix(eslint): add rules to enforce consistent type imports and import sort orders | 1ec2c39 |
Bjørge Næss | chore(eslint): set @typescript-eslint/no-explicit-any as warn instead of error | e01c101 |
Bjørge Næss | chore: autofix eslint errors after config change | b14622e |
Bjørge Næss | fix(structure): add workaround for circular import issue causing resolveIntent tests to fail | c2e6017 |
Bjørge Næss | chore: exclude packages with type-only imports from depcheck | 8fea4a0 |
Bjørge Næss | chore(sanity): preserve order of side-effectsy imports | 08e83dd |
Bjørge Næss | chore(test-studio): reorganize comments & imports in test schema | 7ca741c |
Bjørge Næss | chore: manually fix remaining non-autofixable eslint issues | 5a65b7b |
Bjørge Næss | chore(eslint): extend react/jsx-runtime config | 5eb8755 |
Bjørge Næss | chore: remove remaining react imports | ff4c3bb |
renovate[bot] | chore(deps): update dependency @sanity/visual-editing to v1.2.2 (#5718) | 117834e |
Bjørge Næss | fix(cli) let cli tests run with robot tokens (#5715) | 04c30fb |
Binoy Patel | test(core): adds e2e tests for date and datetime inputs (#5681) | 6694945 |
radhe | feat(backup): add new command dataset backup for server-side backups (#5571) | f04c76e |
radhe | feat(CLI): in sanity dataset import cmd, add --allow-system-documents to explicitly permit system document import, which should be ignore otherwise (#5689) | fa9f924 |
ecospark[bot] | chore(deps): dedupe yarn.lock (#5720) | 2518ac4 |
Nina Andal Aarvik | fix(structure): use useDocumentTitle hook for toast message (#5719) | 51ed18d |
Rupert Dunk | feat(comments): add optional intent link to comments (#5576) | 27bf5f9 |
Espen Hovlandsdal | refactor(comments): use journey endpoint for comments upsell (#5721) | b999da0 |
Drew Lyton | feat(telemetry): add telemetry for Trial Dialogs (#5643) | ad971f8 |
Rico Kahler | build: release automation (#5722) | d024b09 |
v3.28.0
Installation and upgrading
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade a v3 Studio, run this command in its folder:
npm install sanity@latest
✨ Highlights
Dry run content migrations from a local dataset file
You can now dry run content migration jobs against a local dataset export file (for example, a production.tar.gz
file that you have exported):
sanity migration run my-content-migration --from-file=production.tar.gz
Note: The --from-file
flag only works with dry runs, in other words, you won't be able to use is with the --no-dry-run
flag.
Learn more about Schema Change Management in our documentation.
Other features
- Timestamps in comments display in the format of the current Sanity Studio locale.
- Improvements to migration reporting and refinements to messaging and text during migration commands.
- Unattended mode in CLI will respect plans and coupons, and defaults to plans.
- Document titles now display with balanced line breaks (
text-wrap: pretty
). - Comments feature is now discoverable for all users on a non-paid plan, with UI to make plan upgrade easier.
🐛 Notable bugfixes
- Fixes an issue where the Vision tool might crash when pasting a query URL.
- Styling fixes for labels and columnar objects in the studio.
- Icon display defaults in
S.documentTypeList()
now match those in other document lists.
📓 Full changelog
Author | Message | Commit |
---|---|---|
ecospark[bot] | chore(deps): dedupe yarn.lock (#5615) | 1527a9d |
renovate[bot] | fix(deps): update dependency @sanity/client to ^6.12.3 (#5623) | 5116ee0 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.7.3 (#5622) | c04afbc |
renovate[bot] | chore(lockfile): update dependency sanity-plugin-mux-input to v2.2.4 (#5624) | 5697847 |
renovate[bot] | chore(deps): update dependency express to ^4.18.2 (#5629) | 0050425 |
Cody Olsen | fix: remove __unstable_focusRing unknown forwarded prop warning (#5621) |
6c87bea |
renovate[bot] | chore(deps): update thollander/actions-comment-pull-request digest to 1d3973d (#5632) | 56bf76e |
renovate[bot] | chore(deps): update tiryoh/gha-jobid-action action to v1 (#5633) | 359b4cb |
Robin Pyon | fix: only fully collapse PTE toolbars in 'root' FormBuilder instances (#5547) | e219e2a |
Knut Melvær | docs(create-sanity): update README.md | 6fa1750 |
renovate[bot] | chore(deps): update dependency turbo to ^1.12.2 (#5635) | f948e7d |
Rune Botten | chore: remove outdated beta docs URLs (#5636) | 4d06ae8 |
renovate[bot] | chore(deps): update dependency is-hotkey to ^0.2.0 (#5634) | 5a49de6 |
Rune Botten | fix(cli): update migration run usage text (#5637) | 0bae465 |
Binoy Patel | fix(migration): shows better error message when running migration list (#5625) | 9c2db95 |
Simeon Griggs | feat: apply text balance to document titles (#5641) | 4e2507b |
renovate[bot] | chore(deps): update dependency framer-motion to v11 (#5649) | e573c51 |
renovate[bot] | chore(deps): update dessant/lock-threads action to v5 (#5650) | 0e05e77 |
renovate[bot] | chore(deps): update peter-evans/create-pull-request action to v6 (#5651) | 5b1d51c |
Indrek Kärner | feat(cli): prompt to use default plan when wrong coupon or plan | 8e202c7 |
Binoy Patel | chore(deps): update dependency depcheck to ^1.4.7 (#5631) | 03c65f6 |
Ash | feat(cli): improve reporting when dry running from export (#5609) | b8eefc6 |
ecospark[bot] | chore(deps): dedupe yarn.lock (#5658) | 93a05b1 |
Cody Olsen | fix: regression caused by #5440 (#5657) | 0af205c |
Espen Hovlandsdal | refactor(cli): clean up esbuild on completed migration list operation | d17269e |
Espen Hovlandsdal | refactor(migration): sort imports | cc9e473 |
Espen Hovlandsdal | fix(migration): make sanity migration list also include file-only migrations |
c6745ab |
Espen Hovlandsdal | refactor(migration): use chalk from context instead of importing it |
471e491 |
Espen Hovlandsdal | refactor(migration): reuse resolve migration logic in run command | 063f8eb |
Espen Hovlandsdal | refactor(migration): move migration resolve functions to util folder | a9606b8 |
Ash | fix(form): preserve intrinsic block size of field labels (#5639) | 08f6694 |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.7.4 (#5671) | 55a54b5 |
Nina Andal Aarvik | fix(src): add document title to publosh/unpublish success message in toast (#5605) | 0cf3772 |
Nina Andal Aarvik | fix(core): fix aligning of columnar objects/fieldsets (#5627) | 851b62d |
Binoy Patel | fix(perf): fixes build and deploy issues with perf studio (#5646) | d17f722 |
Binoy Patel | chore(migration): fixes help copy on migration create command (#5663) | bb3fb8f |
Robin Pyon | docs(core): update components.logo deprecation note to correctly point to workspace.icons (#5677) |
bfa8e54 |
Bjørge Næss | feat(migration): (re)introduce --from-export (#5672) | 7332a9f |
Bjørge Næss | fix(migrate): submit mutations with visibility=async (#5675) | 0eda4a7 |
Binoy Patel | fix(migration): fixes an issue where migration command would error sometimes (#5678) | 805745f |
cngonzalez | fix: add icon display as default to documentTypeList (#5644) | 40b3d50 |
ecospark[bot] | chore(deps): dedupe yarn.lock (#5674) | b0a8248 |
Nina Andal Aarvik | fix(core): adding accessibility labels to pte objects (#5652) | 3d6ed07 |
Ash | fix(cli): respect unattended mode (#5659) | 0e0fd1f |
renovate[bot] | fix(deps): update dependency @sanity/presentation to v1.7.6 (#5682) | 8f0e911 |
Rostislav Melkumyan | fix(studio): center studio nav (#5608) | d1aecb5 |
Espen Hovlandsdal | refactor(comments): unprefix namespaced i18n comment resources | 767ef22 |
Espen Hovlandsdal | refactor(comments): clarify what "feedback" refers to in i18n comments | f0ad739 |
Espen Hovlandsdal | fix(comments): use correct apostroph in onboarding popover | 07e0317 |
Espen Hovlandsdal | refactor(comments): simplify usage | 2f8bbe1 |
Espen Hovlandsdal | refactor(comments): allow specifying location of "you" in reactions story | 3c48b0d |
Espen Hovlandsdal | refactor(comments): allow for more users in reactions workshop | 60b54c2 |
Espen Hovlandsdal | refactor(comments): use list formatter, group reactions resources | 8068c11 |
Espen Hovlandsdal | refactor(comments): avoid using internal document inspector name | 01e4998 |
Espen Hovlandsdal | refactor(comments): align prop name for field title | c914385 |
Espen Hovlandsdal | refactor(comments): simplify "add comment to field" resources | 765130f |
Espen Hovlandsdal | refactor(comments): replace useTimeAgo with useRelativeTime hook |
a86235d |
Espen Hovlandsdal | refactor(comments): sort imports | 016342f |
Espen Hovlandsdal | fix(comments): use locale-aware date formatting | d7fbcd8 |
Espen Hovlandsdal | refactor(comments): clarify field button resources, remove unused resource | e73b32c |
Espen Hovlandsdal | refactor(comments): group comment input resources under compose |
cc31d21 |
Espen Hovlandsdal | refactor(comments): sort imports | 12d355e |
Espen Hovlandsdal | fix(comments): translate input placeholder | e93633c |
Espen Hovlandsdal | refactor(comments): group + clarify purpose of mention resources | 67f3573 |
Espen Hovlandsdal | refactor(comments): colocate more compose resources | 7492d72 |
Espen Hovlandsdal | refactor(comments): group status filter resources | 09877bf |
Espen Hovlandsdal | refactor(comments): colocate "go to.." buttons under list item | 904ad29 |
Espen Hovlandsdal | refactor(comments): rename resources | a909949 |
Espen Hovlandsdal | refactor(comments): sort imports | 1302bc4 |
Espen Hovlandsdal | fix(comments): remove stray t prop in cloning causing warnings |
a89f5d3 |
Espen Hovlandsdal | fix(comments): improve text wrapping logic inside of user list | 6317b49 |
Bjørge Næss | feat(migrate): use autoGenerateKeys=true when submitting mutations (#5685) | 5ec6a22 |
Binoy Patel | chore(cli): add schema command to help list (#5676) | 3d0f7ee |
Espen Hovlandsdal | refactor(vision): sort imports | 3191018 |
Espen Hovlandsdal | fix(vision): explicitly allow v1 as valid API version |
175ece0 |
Espen Hovlandsdal | fix(vision): ensure query/params from localStorage are strings | d1dd537 |
Espen Hovlandsdal | fix(vision): persist raw (string) value of params to localStorage | c13868a |
Espen Hovlandsdal | refactor(vision): sort state attributes alphabetically | cb38c64 |
Espen Hovlandsdal | fix(vision): provide error boundary with cache clear on error | 3a8a987 |
Cody Olsen | chore: add presentation test studio (#5683) | 0828051 |
Pedro Bonamin | feat(comments): adds read-only state to comments. (#5570) | fab7cec |
v3.27.1
Installation and upgrading
To initiate a new Studio without installing the CLI globally:
npm create sanity@latest
To upgrade a v3 Studio, run this command in its folder:
npm install sanity@latest
✨ Highlights
🐛 Notable bugfixes
- Fixes a bug with
sanity migrate
that caused a patch to be applied twice.
📓 Full changelog
Author | Message | Commit |
---|---|---|
Binoy Patel | fix(migration): fixes issues where patch would happen twice (#5638) | 343765d |