This release includes breaking changes for platform teams planning a safe upgrade.
Published 7d
Error & Performance Tracking
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
apm
crash-reporting
crash-reports
csp-report
devops
django
+8 more
error-logging
error-monitoring
fair-source
monitor
monitoring
python
sentry
tag-production
Summary
AI summaryBroad release touches Other, Issues, Seer, and Preprod.
Full changelog
New Features ✨
Apigw
- Expose proxy latency metrics by target by @gi0baro in #116086
- Add non-orgid/slug endpoints to proxied cell requests by @gi0baro in #115930
Autofix
- Allow non seat based seer to skip setup in #116208
- Switch inspection to single llm call using gemini flas… by @Zylphrex in #116071
- Autofix introspection analytics by @Zylphrex in #115891
- Add UI labels for missing AutofixReferrer values by @chromy in #115655
- Render line numbers in autofix evidence by @Zylphrex in #115649
Cells
- Remove cross-org feature gating from notification settings by @lynnagara in #115829
- Add cell-routing mode to devservices by @lynnagara in #115737
Cmdk
- Add Open in Production and Open in Development actions in #116242
- Freeze visible action list during keyboard navigation in #115851
- Add project search action to command palette by @JonasBa in #115591
Conversations
- Add copy conversation as markdown button in #116171
- Swap badge from alpha to beta by @obostjancic in #115712
- Add Amplitude analytics to conversation pages by @obostjancic in #115622
Dashboards
- Add span-first support for web vital dashboard in #115882
- Validate display type against dataset config by @DominikB2014 in #115951
- Require metric_unit in AI tracemetrics aggregates by @DominikB2014 in #116101
- Teach AI dashboard generator the tracemetrics aggregate format by @DominikB2014 in #115480
Explore
- Heatmap tooltip trace links by @nikkikapadia in #115925
- Link to aggregates from dropdown by @nsdeschenes in #115789
- Add Heat Map widget to Explore metrics by @gggritso in #115608
Github Enterprise
- Add frontend pipeline steps for GHE integration setup in #114367
- Add API-driven pipeline backend for GHE integration setup in #114366
- Allow github.com as a source for the GitHub Enterprise integration by @tnt-sentry in #115599
Issues
- Bring back
SEER_PR_CREATEDactivity creation and hide from timeline in #116233 - Two-column activity icons, colors by @scttcper in #115958
- Unify issue activity streams by @scttcper in #115848
- Add activity feed v2 flag by @scttcper in #115966
- Consolidate activity comment input by @scttcper in #115824
- Replace DebugMeta store with context by @scttcper in #115842
Low Value Spans
- Add configuration issue UI in #116271
- Add Snuba referrer for detector by @vgrozdanic in #115980
- Add low-value span issue UI by @ArthurKnaus in #115870
- Add low-value span issue type by @ArthurKnaus in #115868
Onboarding
- Link selected repository to project after creation by @wedamija in #115761
- Update Hono onboarding with
@sentry/honoby @s1gr1d in #115476
Ourlogs
- Reduce modal export rows limit to 10k by @JoshuaKGoldberg in #116180
- Show estimated total dataset size in needle-in-haystack searches by @JoshuaKGoldberg in #115731
- Implement pinned logs with sticky header (part 1) by @JoshuaKGoldberg in #115102
- Add 'Group by attribute' to log property context menu by @JoshuaKGoldberg in #115420
Preprod
- Display snapshot image tags in card headers in #115723
- Display images_skipped in snapshot table by @NicoHinderling in #116074
- Add images_skipped to builds API response by @NicoHinderling in #116073
- Display skipped images in snapshots UI by @NicoHinderling in #116041
- Expose is_selective flag in snapshot details API response by @NicoHinderling in #115832
- Add Snapshot status check rules API by @cameroncooke in #115621
Search
- Add recommended sort option to issue stream dropdown in #116197
- Surface recommended sort in UI when active via query param in #116186
- Register feature flag for recommended issue sort by @roggenkemper in #116191
Seer
- Add structured LLM context for replay list and detail pages in #116045
- Always show action buttons in explorer chat blocks by @ChrisandraVaz in #116049
- Add bulk Seer project connected repos endpoint by @srest2021 in #115942
- Add Seer project connected repo endpoint by @srest2021 in #115199
- Add structured LLM context for explore logs trace route by @Mihir-Mavalankar in #116036
- Add CRUD helpers for Seer project repos by @srest2021 in #115904
- Add structured LLM context for issue detail sub-tabs by @Mihir-Mavalankar in #115936
- Add bulk-project Seer settings endpoint by @srest2021 in #115234
- Add helper for bulk updating Seer project settings by @srest2021 in #115756
- Scope /conversations slash command lookup with start/end/project by @chromy in #115785
- Add single-project Seer settings endpoint by @srest2021 in #115230
- Add SeerRun FK to SeerNightShiftRun by @trevor-e in #115694
- Add SeerWorkflowConfig model and link to night shift runs by @trevor-e in #115615
- Mirror last_triggered_at to SeerRun on autofix triggers by @trevor-e in #115611
Tracemetrics
- Include equations in Add to Dashboard by @narsaynorath in #116141
- Convert equation alias to full equation for queries by @narsaynorath in #116047
- Open in Explore for metrics dashboard widgets by @narsaynorath in #115805
- Lazy load trace details per metric by @nsdeschenes in #115066
Webhooks
- Add dry run check to sentry app webhook path in #116265
- Add payload validation during dual-write migration in #116040
- Add metrics for legacy webhook migration validation by @Christinarlong in #116039
- Wire new service with feature-flagged routing by @Christinarlong in #115747
- Add standalone legacy webhook service module by @Christinarlong in #115688
- Register legacy webhook migration feature flags by @Christinarlong in #115669
Other
- (aci) Add sort param to workflow group history endpoint in #116031
- (alerts) Add cleanup task to NotificationMessage in #116027
- (amplitude) Track whether users are viewing sentry-built dashboards by @bcoe in #116138
- (api-docs) Publish project event details endpoint in #116059
- (apigateway) Add separated async
apigwpackage by @gi0baro in #115624 - (button) Add
sizeprop toButtonBarviaSizeContextby @natemoo-re in #115728 - (ci) Add merge_base_strategy tag to Jest CI runs by @ryan953 in #115967
- (data-forwarding) Enable retries for data forwarders via task dispatch by @leeandher in #115511
- (dev) Add SENTRY_CELL_ROUTING env var that runs cell-routing mode locally by @lynnagara in #115852
- (dynamic-sampling) Add per-project volume query in #114286
- (examples) Add task that produces by @bmckerry in #115820
- (explorer) Add query parameter to explorer-runs API by @JonasBa in #115760
- (integrations) Disable auth token creation button without perms by @cvxluo in #115769
- (markdown) Expose default components via
Defaultprop by @natemoo-re in #115745 - (options) Add timing metric to options.get() by @kenzoengineer in #115762
- (profiling) Add task for taskbroker passthrough mode by @untitaker in #115065
- (repositories) Add project repo-link endpoint by @wedamija in #115754
- (routes) Add redirect from /snapshots/ to explore releases by @NicoHinderling in #116053
- (scm) Add streaming integration-proxy which accepts any 'Accepts' header value by @cmanallen in #115917
- (self-healing) Add support for seer activities in workflow engine by @saponifi3d in #115933
- (settings) Add 'Recent Error Events' column to project environments by @JoshuaKGoldberg in #115902
- (source-map-config-issues) Updating processing errors metric by @Abdkhan14 in #115822
- (spans) Add separate Redis cluster setting for span deduplication by @untitaker in #116010
- (trace-waterfall) Small tweaks to trace-waterfall tab by @nsdeschenes in #115584
- (ui) Add debug FeatureBadge variant by @chromy in #116000
- Flags and rpc for frontend code search tool by @shruthilayaj in #116098
- Add SENTRY_ALLOWED_IPS to allow IP, overwrite SENTRY_DISALLOWED… by @fe80 in #115773
- Add Relay measurements conversion feature by @loewenheim in #115979
- Track read options via seen logline by @joshuarli in #115610
- Add toggle to migrate to billing platform by @noahsmartin in #115895
Bug Fixes 🐛
Alerts
- Handle gte/lte condition types in metric alert serializers by @kcons in #115972
- Update migration to not remove FK to group by @ceorourke in #115932
- Surface API error messages in create/update toasts by @malwilley in #115894
- Batch NotificationMessage delete metric alert rows by @ceorourke in #115726
Api
- Correctly parse
fullparameter in project events endpoint in #116216 - Validate IDs in OrganizationGroupIndexEndpoint.delete by @kcons in #115770
Conversations
- Restore side-by-side layout for platform option dropdown in #116272
- Improve tool badge rendering and overflow behavior by @obostjancic in #115880
- Improve truncation of non-UUID conversation IDs by @sentry-junior in #115978
Dashboards
- Raise widget description limit to 350 by @DominikB2014 in #116185
- Propagate global filters in Open in Issues link by @DominikB2014 in #116105
- Stop widget header action clicks from bubbling by @skaasten in #116096
- Anchor Editors dropdown to the right edge of the trigger by @skaasten in #116104
- Reset table fields when switching from details widget by @DominikB2014 in #115788
- Prevent sticky navbar misalignment on scroll by @priscilawebdev in #115716
Discover
- Add missing check for DiscoverSavedQueryVisitEndpoint in #116187
- Add org id to project filter by @nsdeschenes in #116174
Dynamic Sampling
- Use the correct field name for dynamic sampling project id in #116279
- Update run_eap_spans_table_query_in_chunks to yield individual rows and adjust tests accordingly by @constantinius in #115995
Events
- Debug param wasn't being passed down correctly in #116152
- Correctly parse full parameter in group hashes endpoint in #116219
Explore
- Use unique ids for visuals in #116204
- Cross events date selector allow 7d anytime within 30 days by @nikkikapadia in #116099
- Increase strictness on URLs by @nsdeschenes in #115881
- Pymark fail on test for arrays in detail endpoint by @manessaraj in #115828
Integrations
- Validate user-provided IDs in webhooks by @kcons in #115910
- Replace useIntegrationTabs with nuqs useQueryState by @ryan953 in #115738
Issues
- Align collapsed activity row in #116266
- Fix undefined variable in
StreamGroupSerializerSnubafeature flag check in #116259 - Move user serialization out of loop in ignored issues handler in #116246
- Fix sidebar comment box horizontal overflow in #116209
- Match short id when combined with filters in #116153
- Make GroupSearchViewPermission fail closed for unknown object types by @roggenkemper in #116183
- Provide correct value for
search.sortSDK tag by @shashjar in #116065 - Use full URL for open link button in breadcrumb messages by @scttcper in #115911
- Enforce project access on event ID lookup endpoint by @oioki in #115784
- Stop double-emitting issue activities for Seer PR created by @shashjar in #115749
- Add int ID validation to a few endpoints by @kcons in #115690
- Search org members for note mentions by @scttcper in #115614
Metrics
- Resolve flaky metrics tab tests in #116280
- Default to largest interval when using heatmaps visualization by @nikkikapadia in #116129
Monitors
- Surface schedule config errors on cron form fields by @malwilley in #116016
- Add tooltip for disabled project in edits by @JoshuaKGoldberg in #115931
Onboarding
- Remove broken aria-label from RadioGroup radio inputs by @scttcper in #116032
- Include shared feedback for Hono onbarding by @s1gr1d in #115721
Perforce
- Update onboarding frontend for Unicode support by @mujacica in #116005
- Support Unicode Perforce server connections by @mujacica in #115775
Preprod
- Reduce snapshot download concurrency to prevent stream failures in #116267
- Reapply "Include image key and field path in snapshot validation errors" by @runningcode in #115987
- Remove native lazy loading from LazyImage component by @NicoHinderling in #115922
- Eliminate race condition in snapshot status check posting by @NicoHinderling in #115650
- Skip strict jsonschema for snapshot image metadata by @runningcode in #115720
- Restore extra field passthrough in snapshot image responses by @NicoHinderling in #115658
- Change snapshot image tags from list to dict by @NicoHinderling in #115643
Replays
- Shrink timeline hover timestamp in #116268
- Remove timeline icon z-index workaround in #116255
- Remove extra padding from BodyGrid in replayLayout by @sentry-junior in #116156
- Disable breadcrumbs autoscroll on user scroll by @JoshuaKGoldberg in #115914
- Correct query invalidation on refresh by @JoshuaKGoldberg in #115629
- Allow org admins to bulk delete replays by @jameskeane in #115886
- Make link copy button accessible and non-variable width by @JoshuaKGoldberg in #115598
Search
- Prevent Ask AI from doubling pasted query text in #116050
- Hide size limit prompt while filtering by @nsdeschenes in #115816
Seer
- Sort autofix project table by slug instead of name by @mrduncan in #115642
- Keep repo loading indicator active by @scttcper in #115854
- Pass issue short ID to coding agents by @JoshFerge in #115838
- Make ToolResult.content optional to prevent Pydantic validation error by @sentry in #115630
Settings
- Fix CI permission checkbox not reflecting state by @scttcper in #116055
- Restore title on accept-invite and accept-transfer pages by @natemoo-re in #116013
- Fix Seer drawer stopping point not changing on mutate from "No Automation" by @srest2021 in #115847
Snapshots
- Add instrumentation logging to snapshot download stream in #116079
- Add timeout override for snapshot download in emmett gateway by @NicoHinderling in #116078
Tests
- Don't include trace context in symbolicator snapshots in #116275
- Use findByRole for async options in opJsonPath.spec.tsx by @sentry in #115645
- Correct monitor form crontab test with fireEvent by @sentry in #115644
- Update staleTime and add default mocks for external issue tests by @sentry in #115646
Tracemetrics
- Use equation alias format for widget builder in #116213
- Expand selector dropdown menu width to 100% by @narsaynorath in #116026
- Drop placeholder unit and always use none by @narsaynorath in #116007
- Pass project and env in request filters for filter by @narsaynorath in #115920
Ui
- Add inset focus ring to SimpleTable header cells in #116276
- Increase dropdown z-index to appear above sidebar by @jameskeane in #116139
- Add self signed package to support https by @scttcper in #115941
Workflow Engine
- Sanitize corrupted dynamic_form_fields choice labels by @malwilley in #115855
- Normalize error.handled values to 0/1 by @kcons in #115740
Other
- (a11y) Add missing alt attributes to context icons and feedback images by @sentry-junior in #115772
- (agents) Use minVersion in SDK update alert for consistency by @obostjancic in #115714
- (api-docs) Correct event/replay/processing-error ID schemas in #116201
- (apigw) Disable asyncpg statement cache (issues with pgbouncer) by @gi0baro in #115992
- (attachments) Infer MIME type from filename when stored as octet-stream by @sentry-junior in #115977
- (auth) Verify primary email on password reset by @michelletran-sentry in #115651
- (autofix) Prevent loading spinner clip in artifact loading card by @priscilawebdev in #115988
- (billing) Added fix to convert snuba sentry enum to the proto enum for usage stats by @krithikravi in #115856
- (code-mapping) Update codeowners GET endpoint and tests in #116309
- (codeblock) Improve nested scroll by @natemoo-re in #115839
- (crons) De-flake "prefills with an existing monitor" test by @priscilawebdev in #115782
- (cross-events) Correct styling based off date selection by @nsdeschenes in #116124
- (cursored-scheduler) Recalculate batch size on tick interval change by @roggenkemper in #115888
- (data_export) Cap export row limit at 10k for all callers by @manessaraj in #116048
- (escalating) Register issue_velocity referrer in Referrer enum by @cvxluo in #115812
- (feedback) Downgrade log level for insufficient feedback count in #116247
- (forms) Preserve choice value types when submitting sentry app forms by @priscilawebdev in #115869
- (grouping) Parameterize error message fingerprint variables by @lobsterkatie in #115496
- (issue search) Fix invalid search query error message for device classes in #116243
- (issue-detection) Add plural KBLayouts_iPhone.dat to FileIO ignore list by @roggenkemper in #116182
- (jira) Bind JWT iss to body clientKey on install webhook by @michelletran-sentry in #114225
- (kafkapublisher) Leaks memory: rdkafka stats grow without poll() in #116123
- (members) Scope invite-request role updates to caller's allowed roles by @oioki in #115807
- (migrations) Get rid of progress bar by @ceorourke in #115691
- (mypy) Fix import location by @kcons in #115654
- (ourlogs) Reset column sort to default on third click by @JoshuaKGoldberg in #115751
- (pageFilters) Clear shift-click anchor on empty selection by @priscilawebdev in #115472
- (profiles) Indicate invalid page URL state as error by @JoshuaKGoldberg in #115897
- (profiling) Render single-sample continuous profile chunks in #116234
- (rate-limit) Tighten rate limits on test notification endpoints by @nora-shap in #115613
- (ratelimits) Handle AnonymousUser missing is_sentry_app attribute in #116251
- (relay) Make trustedRelays optional on Organization type by @TkDodo in #116014
- (releases) Pass Environment objects to get_latest_release by @mrduncan in #115637
- (repositories) Fix deletion ordering for ProjectRepository children by @wedamija in #115739
- (security) Add project-level access check to GroupEventJsonView by @roggenkemper in #116184
- (self-hosted) Avoid install wizard mail TLS/SSL immutable errors by @aldy505 in #114011
- (static) Add missing nonce attribute on app.js preload link by @oioki in #115984
- (supergroups) Move to post process task in #116195
- (tabs) Stop tooltips in overflowMenuItems from crashing the page by @TkDodo in #115993
- (traces) Handle deleted groups in trace endpoint in #116248
- (web) Redirect /scraps to stories by @priscilawebdev in #115776
- (webauthn) Handle missing WebAuthn challenge data in #116167
- (webhooks) Route sentry app actions through send_alert_webhook_v2 in new path in #115975
- (workflow) Use Group cache in get_group_to_groupevent by @kcons in #115960
- (workflows) Filter out workflows from other organizations in #116075
- Add catch-all path to explore route and redirect to index by @adrianviquez in #116066
- Revert "fix(ourlogs): stabilized column widths during scrolling (#115389)" by @getsentry-bot in 84d0139e
Documentation 📚
- (replays) Fix OpenAPI schema/example for replay details response by @JoshFerge in #115752
- (scraps) Render to HTML pattern by @natemoo-re in #115943
- (snapshots) Add public OpenAPI documentation for snapshot endpoints in #116231
Internal Changes 🔧
Admin
- Migrate forkCustomer off browserHistory by @evanpurkhiser in #115915
- Drop browserHistory and HOCs from ResultGrid by @evanpurkhiser in #115908
Alerts
- Clean up usage of AlertRuleSerializerResponse in #116218
- Remove AlertRuleSerializer in #116052
- Remove PUT and POST legacy paths for metric alerts by @ceorourke in #116017
- Fully remove metric alert columns on NotificationMessage by @ceorourke in #116025
- Remove legacy issue alert delete endpoint code by @ceorourke in #115954
- Add index on date_added, soft remove metric alert colu… by @ceorourke in #115823
- Remove legacy issue alert GET endpoint code by @ceorourke in #115948
- Migrate issue rule editor off browserHistory by @evanpurkhiser in #115924
- Remove legacy metric alerts code by @ceorourke in #115865
- Remove incident serializer usages by @ceorourke in #115845
- Remove legacy metric alert handlers by @ceorourke in #115850
- Remove metric alert columns on NotificationMessage by @ceorourke in #115578
- Replace AlertStore with GlobalAlertProvider + useGlobalAlerts by @evanpurkhiser in #115315
- Clean up old metric alert rows in NotificationMessage by @ceorourke in #115647
- Remove unused team alerts endpoints by @ceorourke in #115339
- Remove team alerts triggered modal by @ceorourke in #115336
Api
- Type nullable fields in the base group serializer by @cvxluo in #116068
- Move
GroupEventDetailsResponseto event serializer module by @cvxluo in #116058 - Resolve suggested_api from Django route names by @strongs in #115907
- Migrate auth-error navigation off browserHistory by @evanpurkhiser in #115935
- Move to_valid_int_id to a more central location by @kcons in #115581
Apigw
- Add
abort_with_jsonas an util, allow config httpx client limits by @gi0baro in #116037 - Enhance proxy implementation by @gi0baro in #115892
Autofix
- Remove SCM requirement from autofix in #116206
- Remove legacy autofix path from GroupAutofixEndpoint by @chromy in #116164
- Always use explorer mode in GroupAutofixEndpoint by @chromy in #116162
- Remove old useAutofixData hook by @Zylphrex in #116103
- Remove intelligence level from group ai autofix endpoint by @Zylphrex in #116145
- Add log for autofix introspection reason by @Zylphrex in #116132
- Remove unused autofix v1 UI by @Zylphrex in #116100
- Use new Markdown primitive in v3 cards by @priscilawebdev in #115879
- Check repo connected before starting autofix by @Zylphrex in #115648
Conversations
- Adopt scraps primitives for 4 wrappers by @priscilawebdev in #116082
- Default to 24h period in sidebar link by @obostjancic in #115873
Dashboards
- Remove text widget flag defintion in #116212
- Remove text widget flag references frontend in #116210
- Remove text widget flag references backend in #116207
- Migrate utils.tsx off browserHistory by @evanpurkhiser in #115923
- Migrate detail.tsx off browserHistory to useNavigate by @evanpurkhiser in #115903
Discover
- Migrate fieldRenderers off browserHistory by @evanpurkhiser in #115938
- Migrate transactionsList off browserHistory by @evanpurkhiser in #115926
- Migrate queryList off browserHistory by @evanpurkhiser in #115913
- Migrate savedQuery off browserHistory by @evanpurkhiser in #115912
- Migrate results.tsx off browserHistory by @evanpurkhiser in #115909
Dynamic Sampling
- In per org pipeline, retrieve the project ids in config retrieval, just once by @shellmayr in #115983
- Use already queried data when computing boosted release platform by @cmanallen in #115792
- Rename dynamic sampling status enum by @shellmayr in #115360
- Cleanup transaction based health check rule by @shellmayr in #115471
- Add status for snuba timeouts by @shellmayr in #115359
Eslint
- Turn on no-unsafe-member-access for scraps in #116004
- Add curly rule to prettier config section by @sentry-junior in #116158
- Enable no-unsafe-call for scraps by @TkDodo in #115981
- Enable no-unsafe-arguments in scraps by @TkDodo in #115877
- Enable no-unsafe-return for scraps by @TkDodo in #115722
Flags
- Remove organizations:dashboards-drilldown-flow in #115670
- Remove organizations:scoped-partner-oauth by @wedamija in #115675
- Remove organizations:dashboards-import by @wedamija in #115671
- Remove organizations:revoke-org-auth-on-slug-rename by @wedamija in #114807
- Remove organizations:tracemetrics-alerts gates (backend) by @wedamija in #115019
- Remove organizations:workflow-engine-metric-alert-group-by-creation by @wedamija in #114805
- Remove organizations:ourlogs-stats, replace with
organizations:explore-dev-featuresand move it to a permanent flag by @wedamija in #115673 - Remove organizations:tracemetrics-alerts gates (frontend) by @wedamija in #115018
- Remove organizations:performance-mep-reintroduce-histograms by @wedamija in #115674
- Remove organizations:ingest-through-trusted-relays-only by @wedamija in #115682
- Remove organizations:pr-page by @wedamija in #115686
- Remove organizations:performance-remove-metrics-compatibility-fallback by @wedamija in #115684
- Remove organizations:performance-transaction-name-only-search by @wedamija in #115685
- Remove organizations:starfish-mobile-ui-module by @wedamija in #115687
- Move organizations:init-sentry-toolbar to permanent by @wedamija in #115862
- Remove organizations:on-demand-metrics-extraction-experimental by @wedamija in #115683
- Remove organizations:view-hierarchies-options-dev by @wedamija in #115678
- Remove organizations:issues-suspect-tags by @wedamija in #115680
- Remove organizations:performance-spans-fields-stats by @wedamija in #115679
- Remove organizations:update-action-status by @wedamija in #115676
- Remove organizations:sentry-app-webhook-requests by @wedamija in #114813
Forms
- Migrate projectFiltersSettings to scraps form system by @TkDodo in #115783
- Migrate highlights settings by @priscilawebdev in #115778
- Migrate early features settings by @priscilawebdev in #115777
- Migrate keyRateLimitsForm off legacy Form by @priscilawebdev in #115265
- Migrate addCodeOwnerModal off legacy Form by @priscilawebdev in #115256
Instrumentation Issues
- Remove issue type config and types by @ArthurKnaus in #115718
- Remove fix section UI by @ArthurKnaus in #115717
- Remove nav entries and route by @ArthurKnaus in #115715
Issues
- Use standard logging pattern in group details endpoint in #116262
- Remove redundant check on
event_idin #116261 - Indicate duration when "Since First Seen" is selected in #115533
- Remove grouping store by @scttcper in #115970
- Remove the option gating custom tag resolver logic by @shashjar in #116024
- Add multiple property to select field schema by @amy-chen23 in #115814
- Prevent assigning issues to deactivated users by @amy-chen23 in #115668
- Update frontend types after removing unnecessary issue activity metadata for Seer actions by @shashjar in #115734
- Remove unnecessary structured metadata under issue activities for Seer actions by @shashjar in #115732
- Remove stray
use_flagpole_for_all_featuresusage by @lobsterkatie in #115537
Jest
- Mark flaky jest tests - 2026-05-25 by @cursor in #116121
- Mark flaky jest tests - 2026-05-18 by @cursor in #115729
Onboarding
- Convert CreateSampleEventButton to functional component by @ryan953 in #115830
- Adopt useModal in onboarding flows by @evanpurkhiser in #115127
Ourlogs
- Remove
expandedand window virtualizer from LogsInfiniteTable by @JoshuaKGoldberg in #115884 - Remove ourlogs-table-expando flag backend code by @JoshuaKGoldberg in #115794
- Remove ourlogs-table-expando flag frontend code by @JoshuaKGoldberg in #115793
Preprod
- Simplify project filtering in latest base snapshot endpoint in #116237
- Optimize snapshot download with connection reuse and progressive streaming by @NicoHinderling in #116051
- Use TimeToIdle instead of TimeToLive for upload expiration by @NicoHinderling in #116033
- Virtualize snapshot sidebar for 40k image builds by @NicoHinderling in #115836
- Replace snapshot status badges with plain text by @mtopo27 in #115659
- Remove deprecated snapshot detail TS types and update debug modal by @mtopo27 in #115653
- Remove deprecated comparison_run_info and approval_info from snapshot detail API by @mtopo27 in #115652
Replays
- Remove unused data export notifications endpoint in #116232
- Replace useFetchSequentialPages with useInfiniteQuery by @ryan953 in #116115
- Use shared platform icon resolver by @priscilawebdev in #115705
Repositories
- Simplify ProjectRepoLink serializer and make url better by @wedamija in #115826
- Drop old project/repository columns by @wedamija in #115741
- Remove
projectandrepocolumns fromSeerProjectRepositoryandRepositoryProjectPathConfigby @wedamija in #115663 - Add unique index on
repository_projectcolumns by @wedamija in #115662 - Remove feature flag branching for RepositoryProjectPathConfig reads by @wedamija in #115607
- Remove feature flag branching for SeerProjectRepository reads by @wedamija in #115606
Scm
- Merge integration-proxy endpoints by @cmanallen in #116028
- Add quota policy for GitHub API requests by @cmanallen in #115657
Seer
- Move agent access check from entrypoint to operator in #116143
- Use
elifinstead ofifin actionability filter logic for clarity in #116203 - Remove seer-slack-workflows and seer-slack-explorer flags in #116140
- Simplify block component states by @natemoo-re in #115589
- Persist Seer Explorer input draft per run by @aliu39 in #115919
- Replace chat history dropdown with searchable CompactSelect by @JonasBa in #115843
- Rm severity group-seer option by @kddubey in #115768
- Rm severity conditional routing by @kddubey in #115765
- Option to route severity to group-seer by @kddubey in #115702
Settings
- Update
actionprop and removehasPageFrameby @natemoo-re in #115815 - Update breadcrumbTitle spec for routes prop removal by @ryan953 in #115866
- Move routes from prop to useRoutes() in BreadcrumbTitle by @ryan953 in #115766
- Convert OrganizationAccessRequests to function component with fetchMutation by @ryan953 in #115813
- Replace billing navigation config with a react-hook by @evanpurkhiser in #115808
Slack
- Remove widget unfurl feature flags by @DominikB2014 in #116128
- Move ephemeral message sending to workspace module by @leeandher in #115586
Snuba
- Port query subscriptions consumer to taskbroker raw mode in #116288
- Update tests for removal of boolean double-writing in #111421
- Stop dropping deprecated spans dataset in reset_snuba by @phacops in #115973
- Add exception type for snuba timeouts by @shellmayr in #115362
Spans
- Remove tests for deprecated standalone spans storage in #116147
- Extract flush_segment pipeline helpers by @lvthanh03 in #116149
- Split load_segment_data into helper steps by @lvthanh03 in #116136
- Split process_spans into typed pipeline steps by @lvthanh03 in #115858
- Add back cumulative flusher log and flushed segments log by @lvthanh03 in #116015
- Extract span buffer observability models by @lvthanh03 in #115849
- Remove unused dropped_segments logic and zrem cleanup option by @lvthanh03 in #115806
- Add isolated load segment data coverage by @lvthanh03 in #115804
- Add add-buffer Lua script tests by @lvthanh03 in #115801
Ts
- Remove RouteComponent by @evanpurkhiser in #115999
- Remove unused RouteContextInterface type by @evanpurkhiser in #115996
Typing
- Remove
tests.sentry.api.helpers.test_group_indexfrom mypy ignore list in #116199 - Remove
tests.sentry.issues.test_utilsfrom mypy ignore list in #116070
Utils
- Make ParityChecker print out mismatches in a PII safe way in #116038
- Various clarifications in
SafeRolloutComparatorcode in #115946
Workflow Engine
Other
- (✂️) Remove form leftovers by @TkDodo in #115724
- (aci) Minor cleanup to delayed workflow processing by @saponifi3d in #115758
- (activity) Remove duplicate call to calculate initial priority from group metadata by @shashjar in #116067
- (api-docs) Add GroupDetailsResponse type, params, and example in #116113
- (autopilot) Delete autopilot module and all references by @vgrozdanic in #115466
- (billing) Bump sentry-protos to 0.13.0 in #116133
- (billing-platform) Log requests in service methods by @brendanhsentry in #115971
- (bootstrap) Parallelize locale and moment chunk fetches by @JonasBa in #115727
- (cells) Remove the includeFeatureFlags query param from the org listing request by @lynnagara in #115833
- (ci) Split MDX typechecking into its own gated job by @natemoo-re in #115744
- (compactSelect) Remove unused onSectionToggle callback by @TkDodo in #115809
- (deps) Update sentry conventions package by @nsdeschenes in #115989
- (detectors) Split connected and project alerts into separate sections by @malwilley in #115947
- (dynamic-ampling) Add a metric counter to see if we sometimes have implicit-factor < 1 by @constantinius in #115834
- (eap) Query typed-colon attribute as boolean instead of number in #116299
- (events) Migrate ContextIcon to platformicons by @priscilawebdev in #115701
- (explore) Port toolTags to scraps layout primitives by @priscilawebdev in #116160
- (flagpole-wildcard-ops) Adding support for not_matches op (python) by @Abdkhan14 in #115901
- (github-enterprise) Use monospace font for private key field in #116303
- (hooks) Replace HookStore with a plain hook registry by @evanpurkhiser in #115811
- (hookStore) Change HookStore to single-value semantics by @evanpurkhiser in #115796
- (integrations) Add backfill_github_external_actor.gh_api_fetch_interval_s by @hobzcalvin in #115763
- (issueDetails) Collapse ParticipantList wrapper div to a Flex by @evanpurkhiser in #116175
- (issueDiff) Refactor event data fetching to use useQueries in #116042
- (jira) Add Forge app manifest for Connect-to-Forge migration by @BYK in #115603
- (lint) Ban React.Fragment in favor of named Fragment import by @natemoo-re in #115939
- (metrics) Split metric attribute tree actions by @nsdeschenes in #115641
- (mypy) Rename sort_stronger_modules to sort_weaklist in #116106
- (np) Refactors notification context into a new class by @GabeVillalobos in #113495
- (organization-create) Drop dead browserHistory comment by @evanpurkhiser in #115928
- (overrides) Finish hook → override terminology rename by @evanpurkhiser in #115825
- (oxfmt) Ignore pyproject.toml by @sentry-junior in #116181
- (pipeline) Use Button busy prop for advancing state by @evanpurkhiser in #116179
- (plugins) Inline PluginComponentBase into its two subclasses by @ryan953 in #116112
- (profiling) Rename explore/profiling URL to explore/profiles in #115627
- (project-detail) Migrate projectCharts off browserHistory by @evanpurkhiser in #115916
- (releases) Convert ReleaseIssues to functional component by @ryan953 in #115698
- (replay) Rename Breadcrumbs tab to Activity by @DominikB2014 in #115278
- (routeAnalytics) Replace HookStore persistCallback with a plain module cell by @evanpurkhiser in #115810
- (saved-queries) Align list endpoint access checks with detail by @oioki in #115379
- (scraps) Adopt useModal in remaining call sites by @evanpurkhiser in #115132
- (search) Add EAP API attribute visibility checks in #116091
- (seer-explorer) Replace useSeerExplorerRunId with chat state context by @JonasBa in #115631
- (segments) Add local cache for release creation and modification by @cmanallen in #116173
- (snapshots) Batch image fetches and add timeouts for snapshot download by @NicoHinderling in #116076
- (source-map-processing-errors) Emitting metric irrespective of … by @Abdkhan14 in #115661
- (span-buffer) Remove flusher and buffer logger options by @untitaker in #115487
- (static) Add preload hint for app.js entrypoint by @JonasBa in #115800
- (tasks) Remove base64 encoding for bytes parameters in tasks in #116293
- (taskworker) Move devenv for profiles consumer to taskbroker in #116194
- (teams) Avoid organization N+1 in team projects by @scttcper in #115735
- (test) Remove router return from initializeOrg by @evanpurkhiser in #116002
- (tests) Replace
as jest.Mockcasts withjest.mocked()by @evanpurkhiser in #115790 - (trace) Migrate virtualizedViewManager off browserHistory by @evanpurkhiser in #115927
- (traceDrawer) Replace local SectionDivider/VerticalLine with Scraps Separator in #116168
- (types) Add mypy types for sentry.search.snuba.executors by @saponifi3d in #114994
- (ui) Upgrade lodash, figma connect by @scttcper in #115950
- (vercel) Add logs on failure to add project in #116235
- (workflows) Avoid a query on Organization in delayed_workflow by @kcons in #115965
- Instruct agents to prefer type inference over call-side generics in #116290
- Add right padding to seer header copy button in #116286
- Remove code coverage stacktrace insights in #115417
- Remove autopilot CODEOWNERS entries by @vgrozdanic in #116085
- Replace withOrganization with useOrganization in function components by @evanpurkhiser in #115343
- Remove withSentryRouter HOC by @evanpurkhiser in #115949
- Migrate useRouter callsites to native RR6 hooks by @evanpurkhiser in #115945
- Drop unused 'unmigratable' status literal from repo query types by @evanpurkhiser in #115906
- Remove unmigratable repositories code path by @evanpurkhiser in #115905
- Remove OrganizationConfigRepositoriesEndpoint by @evanpurkhiser in #115898
- Remove unused PUT handler from repository details endpoint by @evanpurkhiser in #115896
- Bump taskbroker-client to 0.1.15 by @bmckerry in #115799
- Mark legacy react-router shim hooks as deprecated by @ryan953 in #115767
- Merged Jest changedSince testing into main PR Jest job by @JoshuaKGoldberg in #115549
- Replace browserHistory with useNavigate in useCleanQueryParamsOnRouteLeave by @ryan953 in #115695
- Remove browserHistory by inlining navigate in upgradeNowModal callers by @ryan953 in #115755
- Bump platformicons to 9.5.0 by @priscilawebdev in #115707
- Bump new development version by @sentry-release-bot[bot] in 7ea81f9f
Other
- fix(relocation) Remove invalid token scopes during export in #116214
- chore(relocation) Exclude Email model from relocations v2 in #116256
- chore(cells) Mainline org create via control in #116046
- deps: Upgrade sentry-scm to 0.16.0 in #116215
- chore(relocation) Remove unused outbox handler by @markstory in #116030
- fix(relocation) Fix type errors when spawning a task by @markstory in #116130
- Fix category missing by @noahsmartin in #116056
- chore(relocations) Add bucket_path to RelocationFile by @markstory in #116035
- chore(cells) Remove rollout option for connection pooling by @markstory in #116011
- fix(ci) Don't capture log messages in RPC schema generation by @markstory in #116003
- fix(typing) Remove sentry.middleware.auth from the ignore list by @markstory in #115798
- feat(cells) Make organization avatar URL cell compatible by @markstory in #115689
- deps(ui): Upgrade Rspack to v2, 124 fewer dependencies by @scttcper in #113795
- o11y(seer): Track block content copy in Seer Explorer by @aliu39 in #115900
- org-scoped URL for page export by @strongs in #115844
- feat(cells) Use connection pools for cell RPC operations by @markstory in #115827
- lint: enable jest/prefer-jest-mocked by @evanpurkhiser in #115791
- feat(cells); Add org scoping to
GroupTagExportViewby @strongs in #115841 - Remove legacy code paths for the combined rule endpoint by @ceorourke in #115750
- Auto-create PRs for manual Seer handoff by @JoshFerge in #115831
- feat(cells) Provision new orgs through control with feature flag by @markstory in #115600
- Chore org index silo metrics by @markstory in #115664
- o11y(assisted-query): Track error outcomes and reasons for AI query analytics by @aliu39 in #115699
- deps(ui): Upgrade jest to 30.4 by @scttcper in #115725
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Beta — feedback welcome: [email protected]