Repository navigation
fix(cli): Keep response validation working with @sentry/api 1.53.0 - #2117
Merged
Merged
Conversation
1.52.0 tightens many response schemas: about 250 new `pattern`s,
140 new `enum`s and 125 typed objects in place of
`additionalProperties: {}`. It also drops `uint64` formats and names
the bound client type `PreparedClient` (sentry-api-schema#136).
1.52.0 types several response fields that used to be open records. Three of them affect the CLI: - Trace meta: `transactionChildCountMap[].transaction.event_id` is now a required string, but Sentry returns null for spans that belong to no transaction (MCP-SERVER-EFR, #494). `replay view` would drop the trace counts for those traces. Accept null there. - Sentry App components: `schema` is now the UI element union Sentry checks apps against when they are saved. One installed app whose stored schema doesn't match it would fail the whole listing and block linking through every other app. Leave `schema` unchecked and keep validating only the selected app's link form. The test fixtures now use real UUIDs, which the new schema checks. - Issue releases: `firstRelease`/`lastRelease` can be a release with only `version`, so narrow before reading `shortVersion`. The output-schema field extractor also learns `strict_object`, which 1.52.0 now emits for objects with `additionalProperties: false`.
The field tables pick up the new API descriptions for event `contexts` and release `status` and `adoptionStages`. Monitor `config` loses its description because 1.52.0 turns it into a union and the generated valibot schema doesn't keep the description the spec puts on that union. Event `occurrence` now shows `unknown`, because its spec union has an untyped member.
Main now has #2113, which bumps @sentry/api to 1.53.0 and fixes the same two type errors this branch fixed. Conflicts resolved toward main for the bump, the release-version fallback in human.ts and its tests, and the issue-app-links fixture UUIDs. This branch's tolerant component listing and its test stay. Co-Authored-By: BYK <126780+BYK@users.noreply.github.com>
…nces After merging #2113, the link-form comment in issue-app-links.ts still said the component schema is typed per component type. The component listing on this branch leaves each app's schema unchecked, so say that. The regenerated alert reference shows `config` as `object` again. Main's copy shows `unknown` because #2113 ran the extractor before it handled `strictObject`. Co-Authored-By: BYK <126780+BYK@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
BYK
approved these changes
Nov 9, 2026
This branch was successfully deployed
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.
#2113 already moved main to
@sentry/api1.53.0. This PR fixes what that bump left broken. The branch started as a 1.52.0 bump and merges main, so it doesn't change any dependencies. 1.53.0 only adds docs for the 2 AI-conversation operations on top of 1.52.0. Its validators are identical once descriptions are stripped.1.52.0 gives types to many response fields that used to be open records. It adds about 250 patterns and 140 enums, and replaces about 125
additionalProperties: {}objects with typed ones. I diffed every valibot schema the CLI validates responses with against 1.51.0. Two of them can reject real responses:transactionChildCountMap[].transaction.event_idis now a required string. Sentry returns null there for spans that belong to no transaction (fix: Allow nullable transaction.event_id in trace metadata schema #494). With 1.52.0 or later,getTraceMetathrows on those traces, andreplay viewdrops their counts. The CLI now accepts null. The spec is wrong here, see Trace meta types transaction.event_id as never null sentry#130461.schemais now the UI element union that Sentry checks apps against when they're saved. Main still validates every component against it. One installed app whose stored schema doesn't match it would fail the whole listing and block linking through every app. The CLI now leavesschemaunchecked and still validates the selected app's link form withLinkFormSchema.The output-schema field extractor now recognizes
strictObject, which 1.52.0 emits for closed objects. Alertconfigshows asobjectagain in the skill reference instead ofunknown. Monitorconfigstill has no description, because the generated validators drop the description onanyOfunions (getsentry/sentry-api-schema#139).I checked the other changes against the Sentry serializers:
statusenum and the typedaspectsmatch every provider.groupBy.valueonly got looser.targetSampleRate,samplingModeandinvite_linkfields.Testing:
tscandlintpass on the merged branch. CLItest:unitpasses except for the 5 known file-permission tests (EACCES/EPERM). Before the merge, the fullpnpm run test,measure-tokensand CLIci:policyalso passed, except for those tests and the codemod test, which needs glibc 2.35. New tests cover a null trace-meta id, a non-conforming component from another app, and strict objects in the field extractor.via @BYK.
--
View Session in Sentry