fix(deps): update sanity packages - #1864
Merged
Merged
Conversation
|
renovate
Bot
force-pushed
the
renovate/sanity-packages
branch
7 times, most recently
from
August 29, 2026 11:35
2c95c72 to
5a415da
Compare
renovate
Bot
force-pushed
the
renovate/sanity-packages
branch
from
August 30, 2026 23:35
5a415da to
f2f0af3
Compare
aulonm
approved these changes
Aug 31, 2026
renovate
Bot
force-pushed
the
renovate/sanity-packages
branch
7 times, most recently
from
September 9, 2026 15:41
6c41fce to
c2ba1d6
Compare
renovate
Bot
force-pushed
the
renovate/sanity-packages
branch
7 times, most recently
from
September 15, 2026 23:15
071cb4c to
173a0c9
Compare
renovate
Bot
force-pushed
the
renovate/sanity-packages
branch
3 times, most recently
from
September 20, 2026 15:28
449bc92 to
d1bb76b
Compare
renovate
Bot
force-pushed
the
renovate/sanity-packages
branch
7 times, most recently
from
September 26, 2026 20:08
ef1643d to
dfac49a
Compare
renovate
Bot
force-pushed
the
renovate/sanity-packages
branch
from
September 29, 2026 05:05
dfac49a to
d9a3e5a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
8.0.0→8.0.16.1.19→6.2.18.0.0→8.7.07.3.5→7.3.84.1.4→4.1.53.1.14→3.1.166.9.2→6.16.06.0.4→6.1.26.9.2→6.16.06.9.2→6.16.0Release Notes
portabletext/react-portabletext (@portabletext/react)
v8.0.1Compare Source
Patch Changes
0befdc1Thanks @stipsan! - React Compiler now runs on oxc instead of babel. Same output, no changes needed.sanity-io/plugins (@sanity/assist)
v6.2.1Compare Source
Patch Changes
dc37379Thanks @pedrobonamin! - Create a real draft before AI Assist writes when the document was just published. Generate image description, translate document, and translate fields no longer fail or overwrite published content by targetingdrafts.<id>while only a virtual draft exists.Fixes #660 #663 #666 #667
v6.2.0Compare Source
Minor Changes
532ceffThanks @kevindice! - Addassist.maxFieldSelectionDepthto configure how deeply nested a field can be and still get AI Assist: the field action (sparkle button), the field picker in the instruction editor and field references in instructions. This depth was hardcoded to 6 path segments, so deeper fields silently disappeared from AI Assist and neitherassist.maxPathDepthnortranslate.field.maxPathDepthcould change that. The default is still 6, so nothing changes unless the option is set.Patch Changes
49337b4Thanks @stipsan! - Replacereact-fast-comparewithdequal/liteinuseListeningQueryand the inspector's pane-param comparison (same verdicts on the JSON payloads these compare, smaller import)v6.1.21Compare Source
Patch Changes
3195e01Thanks @stipsan! - Compile React Compiler memoization with the native oxc transform (reactCompiler: {transform: 'oxc'}from@sanity/tsdown-config0.26, backed byoxc-transform-react) instead ofbabel-plugin-react-compilerv6.1.20Compare Source
Patch Changes
#1878
c30892fThanks @squiggler-app! - fix(deps): update dependency styled-components to ^6.5.3#1926
f485d93Thanks @stipsan! - Suppress new oxlint React Compiler rule violations, pending fixes in a follow-up#1922
22c8082Thanks @stipsan! - Update@sanity/clientto v8sanity-io/client (@sanity/client)
v8.7.0Compare Source
Minor Changes
abort underlying EventSource request when response fails validation (#1340) (ba3de6b)
add per-resource schema, query and projection registries (#1334) (b43e033)
SanitySchemasByResource,SanityQueriesByResourceandSanityProjectionsByResourcejoin the existingSanityQueriesregistry, following the same pattern: a global interface that the interface exported from@sanity/clientinherits from, so a generated file can register either way and does not depend on module resolution.Each is keyed by a resource, using the same string the App SDK already uses for its runtime cache,
projectId.datasetfor a dataset. This is what lets two datasets whose schemas disagree register different result types for the same query text, which the flatSanityQueriesregistry cannot express. Projections add a document-type level, because a projection resolves against whichever document the caller's handle names.All three are empty by default and nothing in the client reads them yet.
client.fetchandClientReturnare unchanged, and keep resolving through the flat registry. They exist for consumers that do resource-aware lookups themselves, starting with the App SDK's hooks.Patch Changes
v8.6.2Patch Changes
v8.6.1Patch Changes
any-signaldependency and combine abort signals withget-it/any-signal, which uses nativeAbortSignal.anywhere it exists and a plainAbortControlleron Safari 17.0-17.3 (#1329) (4b5c198)v8.6.0Minor Changes
Patch Changes
any-signalinstead ofAbortSignal.anyso cancellable requests work on Safari 17.0-17.3 (#1326) (f87523e)v8.5.0Minor Changes
read query result types from a global
SanityQueriesinterface (#1319) (18313fe)Query result types can now be registered on a global
SanityQueriesinterface, which theSanityQueriesinterface exported from@sanity/clientinherits from.client.fetch,ClientReturnandClientReturnStegaresolve registrations made either way, so thedeclare module '@sanity/client'augmentation that Sanity TypeGen has emitted so far keeps working unchanged. The global registry does not depend on module resolution: it is seen whether or not@sanity/clientis a direct dependency of the generated file, however many copies of the client are installed, and from every entry point including@sanity/client/stega.Patch Changes
v8.4.0Compare Source
Minor Changes
Patch Changes
context.sources.list(#1306) (cd7a783)v8.3.0Compare Source
Minor Changes
invoke functions synchronously or asynchronously (#1295) (d1667c7)
client.functions.invoke()now takes anoptionsargument and acceptssanity.function.durableand
sanity.function.queuefunctions alongsidesanity.function.pubsub.By default the invocation is queued: the call resolves with
undefinedas soon as theservice accepts it, without waiting for the function to run. Pass
{sync: true}to keep therequest open until the function finishes and resolve with its return value — that adds a
?sync=truequery parameter to the invoke request, and remains limited tosanity.function.pubsub.The return type follows the option: a call with
{sync: true}resolves withR, while an asynccall resolves with
undefined. Callers who pass an explicit type argument without{sync: true}keep the previous
R | undefinedshape.collaboration: resolve comment
rangefrom optionalfieldValue(#1299) (88073e6)v8.2.0Compare Source
Minor Changes
add collaboration comments client (
@alpha) (#1235) (5906f72)add variant actions (#1279) (dd25720)
Adds
CreateVariantAction,EditVariantAction,DeleteVariantAction,PublishVariantActionandUnpublishVariantAction, along with aVariantActionunion, covering thesanity.action.document.variant.*actions. They are included in theActionunion, soclient.action()accepts them.Each action addresses a variant document by the
publishedId,variantIdandbundleIdtriplerather than by document ID, since the API derives the document ID from those three values.
Note that
Actionwidening is a breaking change for code that exhaustively switches onAction['actionType']with aneverfallthrough, which will need to handle the new cases.v8.1.0Compare Source
Minor Changes
add
client.functions.invoke()for calling deployed functions on demand (#1258) (4c2f718)Invoke a Sanity Pubsub Function by the
name. Onlysanity.function.pubsubfunctions can beinvoked on demand.
Available in two forms,
client.functions.invoke()resolves with the function's return value,client.observable.functions.invoke()emits it and accepts anevent.datapayload,a per-call
timeoutand anAbortSignal.Names are only unique within a stack, so resolving one requires a
stackId, either from the newstackIdclient config option or from the request. That resolution costs one extra request percall. A function that returns nothing resolves to
undefined.Stacks deployed at organization scope are reached with the new
organizationIdclient configoption, or a per-call
organizationId. It takes precedence overprojectId, which becomesoptional in that case.
add request handler for client integrations (#1286) (a9db52f)
add variant definition actions (#1278) (7c98361)
Adds
CreateVariantDefinitionAction,EditVariantDefinitionActionandDeleteVariantDefinitionAction, along with aVariantDefinitionActionunion, covering thesanity.action.variant.definition.*actions. They are included in theActionunion, soclient.action()accepts them.Note that
Actionwidening is a breaking change for code that exhaustively switches onAction['actionType']with aneverfallthrough, which will need to handle the new cases.Patch Changes
route the live-events CORS probe through the configured transport (#1282) (aaada67)
The
/check/corsprobe thatclient.live.events()uses to distinguish a CORSrejection from other connection failures called the global
fetchdirectly, soa custom
resolveFetchor an explicitproxywas not applied to it. It nowresolves the same fetch the EventSource connection uses.
reword the
createVersion()warning aboutbaseId(#1282) (aaada67)createVersion({document})warned that "the recommended approach is to provide abaseIdandreleaseIdinstead", which reads as a correction even when the caller had no other option:baseIdcreates a version of a document that already exists, so creating a genuinely new document inside a release can only be done by passingdocument.The client cannot tell those two cases apart, so the warning is now phrased as a condition rather than a correction: "If you are creating a version of a document that already exists, prefer providing
baseIdandreleaseIdinstead." No behavior changed, and both forms remain supported.correct the return type of
delete()andmutate()when called with no options (#1282) (aaada67)client.delete(id)andclient.mutate(mutations)were typed to resolve to adocument (
SanityDocument<R>) when called without an options argument, butthey actually resolve to a mutation result object
(
{transactionId, documentIds, results},MultipleMutationResult). Thedocument is genuinely mutated, but code that read
._idoff the resolvedvalue was reading
undefinedat runtime without any type error. Theunderlying method (
create()) does return the document by default, so thiswas easy to assume also held for
delete()andmutate()- it does not.Both methods now correctly type as resolving to
MultipleMutationResultbydefault, matching the (unchanged) runtime behavior, on both the
promise-based and observable clients.
Released as a patch rather than a major even though a declared type changed. Code that read
._idoff the result was readingundefinedat runtime, so no working application can have depended on the old type: anything that type-checked against it was already broken when it ran. What changes is that the mistake is now visible at compile time instead of at runtime.If
tscstarts failing on one of these calls, that failure is pointing at a real bug. To fix it:{returnFirst: true, returnDocuments: true}explicitly:
await client.delete(id, {returnFirst: true, returnDocuments: true}).documentIds(ordocumentIdwithreturnFirst: true) off the result instead of_id.No runtime behavior changed - this only corrects the public types.
populate server-sent event IDs on Cloudflare Workers (#1282) (aaada67)
client.live.events()andclient.listen()readlastEventIdoff theMessageEventthateventsourceconstructs. workerd does not carry that memberthrough the
MessageEventconstructor's init dict, so on bare Cloudflare Workersevery event arrived with an empty
id. Raising theeventsourcefloor to>= 5.1.0picks up the fix.return the asset from
assets.upload()against a Media Library (#1282) (aaada67)client.assets.upload()resolved toundefinedwhen the client was configured against a Media Library (resource: {type: 'media-library', id}), even though the upload succeeded server-side. Content Lake's upload endpoint responds with{document: {...}}, andupload()unwrapped that key unconditionally - but the Media Library upload endpoint responds with{asset: {...}}instead, so the unwrap producedundefined.upload()now unwraps.assetfor a Media Library response and.documentotherwise, on both the promise-based and observable clients. It resolves to the uploaded asset instead ofundefined.The Media Library asset shape is not the same as a Content Lake asset document: it is a
sanity.assetdocument that tracks one or more uploaded versions viacurrentVersion/versions, rather than a document withurl,size,mimeType, and so on. That shape is now exported asMediaLibraryAssetDocument.The declared return type is knowingly incomplete, and this is a patch on purpose. Which shape you get back depends on how the client is configured, not on the arguments to
upload(), so no overload can discriminate it. Expressing it would mean widening the return type into a union that every existing caller has to narrow - a breaking change for all users, to correct the typing of a much less common configuration. So the declared type still describes only the Content Lake shape. If you upload to a Media Library, narrow the result yourself (for example, check forcurrentVersion) or annotate it asSanityImageAssetDocument | MediaLibraryAssetDocument. Typing this accurately is deferred to the next major.sanity-io/plugins (@sanity/code-input)
v7.3.8Compare Source
Patch Changes
d692a15Thanks @squiggler-app! - fix(deps): update dependency @codemirror/view to ^6.43.9v7.3.7Compare Source
Patch Changes
3195e01Thanks @stipsan! - Compile React Compiler memoization with the native oxc transform (reactCompiler: {transform: 'oxc'}from@sanity/tsdown-config0.26, backed byoxc-transform-react) instead ofbabel-plugin-react-compilerv7.3.6Compare Source
Patch Changes
#1931
7cf002dThanks @simongowing1! - Forward thereadOnlyprop fromCodeMirrorProxytoCodeMirrorso code fields stay non-editable when Studio marks them as read-only.#1878
c30892fThanks @squiggler-app! - fix(deps): update dependency styled-components to ^6.5.3#1926
f485d93Thanks @stipsan! - Suppress new oxlint React Compiler rule violations, pending fixes in a follow-upsanity-io/visual-editing (@sanity/preview-url-secret)
v4.1.5Compare Source
Patch Changes
ae2c174Thanks @rexxars! - fix(deps): widen allowed@sanity/clientpeer depsanity-io/plugins (@sanity/table)
v3.1.16Compare Source
Patch Changes
3195e01Thanks @stipsan! - Compile React Compiler memoization with the native oxc transform (reactCompiler: {transform: 'oxc'}from@sanity/tsdown-config0.26, backed byoxc-transform-react) instead ofbabel-plugin-react-compilerv3.1.15Compare Source
Patch Changes
c30892fThanks @squiggler-app! - fix(deps): update dependency styled-components to ^6.5.3sanity-io/sanity (@sanity/vision)
v6.16.0Compare Source
Bug Fixes
v6.15.0Compare Source
Sanity Studio v6.15.0
This release includes various improvements and bug fixes.
For the complete changelog with all details, please visit:
www.sanity.io/changelog/studio-Ni4xNC4x
Install or upgrade Sanity Studio
To upgrade to this version, run:
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
e57061241ba5da10ff9aa825c0319edcf59c005f996f71196v6.14.1Compare Source
Sanity Studio v6.14.1
This release includes various improvements and bug fixes.
For the complete changelog with all details, please visit:
www.sanity.io/changelog/studio-Ni4xNC4w
Install or upgrade Sanity Studio
To upgrade to this version, run:
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
663d296c2b3fc28118cccv6.14.0Compare Source
Sanity Studio v6.14.0
This release includes various improvements and bug fixes.
For the complete changelog with all details, please visit:
www.sanity.io/changelog/studio-Ni4xMy4y
Install or upgrade Sanity Studio
To upgrade to this version, run:
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
a8a4e330b7173e384c1ef2c239723724f7693e471686855b9a7fcc7c4fe0cb3b6708748a5c680d7d72784fc90ffdee6ac7f0f5e66v6.13.2Compare Source
Bug Fixes
v6.13.1Compare Source
Bug Fixes
v6.13.0Compare Source
Performance Improvements
v6.12.0Compare Source
Features
Bug Fixes
v6.11.0Compare Source
Bug Fixes
Performance Improvements
v6.10.1Compare Source
Bug Fixes
v6.10.0Compare Source
Features
Bug Fixes
sanity-io/visual-editing (@sanity/visual-editing)
v6.1.2Compare Source
Patch Changes
#3636
3607f90Thanks @squiggler-app! - fix(deps): update dependency styled-components to ^6.5.3#3656
72840d5Thanks @squiggler-app! - fix(deps): update dependency xstate to ^5.32.6Updated dependencies [
3b8e806]:v6.1.1Compare Source
Patch Changes
#3643
ae2c174Thanks @rexxars! - fix(deps): widen allowed@sanity/clientpeer depUpdated dependencies [
ae2c174]:v6.1.0Compare Source
Minor Changes
#3620
8748e20Thanks @rexxars! - feat: accept any@sanity/clientversion in the loaders viaSanityClientLikeOptions that took a client used to be typed as
SanityClient | SanityStegaClient.SanityClientdeclares a
#privatefield, which makes it nominal rather than structural, so a client onlysatisfied it when it came from the exact same copy of
@sanity/client. Passing a client from adifferent major failed to typecheck, and so did a duplicate install of the same version:
These options now take
SanityClientLike, a structural interface covering only what the loadersuse:
config(),withConfig()andfetch(). Any client satisfies it, from any version, includingthe ones from
@sanity/client/stega,@sanity/preview-kit/clientandnext-sanity.This affects
createQueryStore({client}),setServerClient(),enableLiveMode({client}),useLiveMode({client}),handlePreview({client})andhandleLoadQuery({client}). All of themaccept strictly more than before, so no changes are needed.
For SvelteKit,
event.locals.clientstill gives you the fullSanityClientAPI. If your appresolves a different copy of
@sanity/clientthan these packages do, name your own client type inapp.d.tsto avoid a mismatch:The one narrowing is
unstable__serverClient.instance, which is nowSanityClientLike. It ismarked
@internaland prefixedunstable__.Patch Changes
#3635
5fcaf8fThanks @stipsan! - Restore thestyled-componentspeer range to^6.1so consumers on 6.1.x stay compatible. The catalog/dev dependency remains on 6.5.x.Updated dependencies [
8748e20]:Configuration
📅 Schedule: (in timezone Europe/Oslo)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate using a preset from
. View repository job log here