ref: Type 8 Goal #1 PUBLIC endpoints (trace, profiling, replay, releases)#117276
Merged
Conversation
…ses) Tightens 8 of the 14 Goal #1 untyped PUBLIC endpoints: - release_threshold_status_index.get → typed against existing dict[str, list[EnrichedThreshold]] decorator T - organization_trace_meta.get → Response[OrganizationTraceMetaResponse] via existing helper return type - organization_trace.get → Response[list[SerializedSpan | SerializedIssue | SerializedUptimeCheck]] matching the decorator - organization_profiling_profiles flamegraph + chunks endpoints → Response[None] | Response[ValidationErrorResponse] | HttpResponse (the success path is the proxy_profiling_service HttpResponse) - project_profiling_profile.get → Response[dict[str, Any]] | Response[None] | HttpResponse - project_replay_recording_segment_details.get → corrects the decorator from list[dict[str, Any]] to a structured `{"data": ...}` envelope via new local _SegmentDetailsResponse + _SegmentMetadataResponse TypedDicts. Spec-only correction; runtime has always emitted the envelope. - project_replay_video_details.get → Response[DetailResponse] | HttpResponseBase - organization_stats_summary.get → Response[StatsSummaryApiResponse] | HttpResponse Validation paths route through as_validation_errors(). No wire changes. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
gricha
approved these changes
Jun 9, 2026
The GET_REPLAY_SEGMENT OpenAPI example documented a list of rrweb event
objects, but the runtime endpoint has always returned
`{"data": {replayId, segmentId, projectId, dateAdded}}`. The previous
example matched neither the old (incorrect) `list[dict[str, Any]]`
declaration nor the now-corrected envelope schema.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Member
Author
|
openapi diff change is representative of openapi spec not matching current actual API behavior, this brings it inline |
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.
Tightens 8 of the 14 Goal #1 untyped PUBLIC endpoints:
release_threshold_status_index.get→ typed against existingdict[str, list[EnrichedThreshold]]decorator Torganization_trace_meta.get→Response[OrganizationTraceMetaResponse]via existing helper return typeorganization_trace.get→Response[list[SerializedSpan | SerializedIssue | SerializedUptimeCheck]]matching the decoratororganization_profiling_profilesflamegraph + chunks endpoints →Response[None] | Response[ValidationErrorResponse] | HttpResponse(the success path is the proxy_profiling_service HttpResponse)project_profiling_profile.get→Response[dict[str, Any]] | Response[None] | HttpResponseproject_replay_recording_segment_details.get→ corrects the decorator fromlist[dict[str, Any]]to a structured{"data": ...}envelope via new local_SegmentDetailsResponse+_SegmentMetadataResponseTypedDicts. Spec-only correction; runtime has always emitted the envelope.project_replay_video_details.get→Response[DetailResponse] | HttpResponseBaseorganization_stats_summary.get→Response[StatsSummaryApiResponse] | HttpResponseValidation paths route through
as_validation_errors(). No wire changes.