New Features ✨
Aci
- Add warning message when action is not compatible with metric detectors by @malwilley in #106240
- Add info about all issues exclusions by @malwilley in #106271
- Add sorting for connected alerts by @malwilley in #106109
- Add search input to connected alerts list by @malwilley in #106052
- Add documentation for OrganizationDetectorIndexEndpoint GET by @ceorourke in #106025
- Workflow API sort by priority detector ID by @malwilley in #105976
- Implement new table design for connected alerts by @malwilley in #105934
- Set up resolution condition for use in UI by @malwilley in #105156
- Add inline alert creation inside monitor form by @malwilley in #105765
- Add ability to filter workflows by connected detectors by @malwilley in #105695
Ai Conversations
- Add attributes by @obostjancic in #106355
- User column by @obostjancic in #105890
- User data by @obostjancic in #105889
Alerts
- Add support for trace metrics alert type by @k-fish in #104901
- Migrate alert wizard off deprecatedRouterMocks by @scttcper in #105508
Api
- Enhance AI conversation attributes in details endpoint by @constantinius in #106164
- Add endpoint for AI conversation details by @constantinius in #106071
Autofix
- Support query param to switch autofix mode by @Zylphrex in #106090
- Implement operator/entrypoint for seer workflows by @leeandher in #105344
Autopilot
- POC autofix by @ArthurKnaus in #106370
- POC UI for instrumentation issues by @ArthurKnaus in #106359
- Improve issue creation by @ArthurKnaus in #106353
- Create instrumentation issues by @ArthurKnaus in #106249
- Boost integration detector to 10 minutes in #105596
- Missing SDK integration detector in #105595
Code Review
- Support options & white listed orgs by @armenzg in #106205
- Use GitHub org names whitelisting for testing by @armenzg in #105844
- Forward pull_request events to Seer by @armenzg in #105740
- Handle issue comment command in #105527
- Support sending webhook events to Seer by @armenzg in #105393
Dashboards
- Always link to transaction summary from transaction field by @DominikB2014 in #106116
- Update jobs chart to be a line chart by @DominikB2014 in #106081
- Convert Widget Builder dataset selector to a dropdown by @gggritso in #105928
- Add
excludePrebuiltfilter to dashboards endpoint by @DominikB2014 in #105946 - Update backend title for domain dashboard by @DominikB2014 in #105917
- Update domain page title by @DominikB2014 in #105916
- Allow prebuilt dashboards to hardcode units by @DominikB2014 in #105743
- Fill in Mobile Vitals pre-built dashboards by @gggritso in #105757
- Display http response codes as fraction in prebuilt dashboard by @DominikB2014 in #105820
- Create prebuilt dashboard for backend overview by @DominikB2014 in #105719
- Convert user.geo.subregion from numeric to string version by @DominikB2014 in #105639
- Support http spans in details component in #105545
- Register http module prebuilt dashboards in #105497
- Registers insights-web-vitals-dashboard-migration flag by @edwardgou-sentry in #105483
- Adds support for linking slideouts to prebuilt dashboard widgets by @edwardgou-sentry in #105353
- Add preferredPolarity to widget thresholds serializer by @edwardgou-sentry in #105407
- Adds core web vitals samples tables to prebuilt Web Vitals dashboard by @edwardgou-sentry in #105438
- Registers Web Vitals page summary prebuilt dashboard by @edwardgou-sentry in #105439
- Adds a feature flag to enable synchronizing all prebuilt dashboards by @edwardgou-sentry in #105429
- Adds Issue table prebuilt Web Vitals dashboard by @edwardgou-sentry in #105402
- Adds positive polarity render support for Big Number widgets by @edwardgou-sentry in #105405
Dynamic Grouping
- Add current issue information to stack trace by @scttcper in #106138
- Remove card tabs, add view details by @scttcper in #106133
- Allow clicking top issue card to view more by @scttcper in #105776
- Add Cluster ID to the Cluster card title by @yuvmen in #105404
Dynamic Groups
- Move issue cluster details into drawer by @scttcper in #106028
- Add progress bar to aggregate tags by @scttcper in #105878
Explorer
- Add coding agent handoff UI for explorer autofix by @roaga in #105873
- Add coding agent handoff support to explorer client by @roaga in #105872
- Add span.status_code to trace waterfall data by @roaga in #106021
- Share chat links by @aliu39 in #105376
- Create new conduit channel for explorer to use streaming in #105585
Grouping
- Add clearer component ignoring test inputs by @lobsterkatie in #105843
- Add test input where all exceptions are groups by @lobsterkatie in #105666
Issues
- Add InstrumentationIssueExperimentalGroupType by @ArthurKnaus in #105988
- Add details to current event marker tooltip by @scttcper in #106204
- AI Search by @aayush-se in #105768
- GA streamlined issue actions, backport to old ui by @scttcper in #105863
- Add copy breadcrumbs to clipboard button in #105007
- Add stack trace, tags to top issues by @scttcper in #105466
- Protect GroupResolutions from release cleanup by @scttcper in #105444
Occurrences On Eap
- Implement double reads of bucketed group counts by @shashjar in #105691
- Implement timeseries query support by @shashjar in #105685
- Implement EAP read for retrieving top issues by event count by @shashjar in #105460
- Implement EAP read for trace-connected issues in related issues calculation in #105459
- Implement EAP read for error counts in suspect tag calculation by @shashjar in #104916
Preprod
- Support min aggregation and standardize enum naming by @trevor-e in #106269
- Remove reads from deprecated fields and use PreprodArtifactMobileAppInfo table by @rbro112 in #105847
- Support free text search on /builds/ endpoint by @chromy in #106202
- More filter fields for search by @chromy in #106171
- Add basic admin debug actions to buildDetails error UI by @rbro112 in #106149
- Add flag for dashboard toggle by @trevor-e in #106054
- Add Project options for size/distro filters by @chromy in #106069
- Add backfill migration for PreprodArtifactMobileAppInfo by @rbro112 in #105883
- Add preprod size metrics backend dataset support by @trevor-e in #105845
- Add PreprodArtifactMobileAppInfo creation to write path by @rbro112 in #105846
- [frontend] Add first iteration of size status checks settings UI by @NicoHinderling in #105875
- Add size status check project config values to project endpoints by @NicoHinderling in #105874
- Add PreprodArtifactMobileAppInfo to enable decoupling of mobile app specific info from PreprodArtifact by @rbro112 in #105731
- Add platform name to eap data by @trevor-e in #105869
- Add new /builds/ endpoint by @chromy in #105797
- Add treemap diff UI by @chromy in #105331
- Add preprod distribution display table by @mtopo27 in #105554
- Add preprod display toggle plumbing by @mtopo27 in #105553
- Display version and build number in build comparison list (EME-489) by @runningcode in #105628
- Write build distribution data to EAP in #105544
- [frontend] add support for multiproject build list UI in #105396
- Add dropdown button to re-run status check by @trevor-e in #105535
- Add API to re-run status checks by @trevor-e in #105484
- Create new multiproject list builds endpoint by @NicoHinderling in #105395
- Show success/failure status check UI by @trevor-e in #105442
- Add copy url button by @mtopo27 in #105432
- Add header to install pages by @mtopo27 in #105430
Projects
- Warn about eventual removal of Project Details by @bcoe in #105617
- Convert missingProjectMembership to FC, restyle by @scttcper in #104734
Releases
- Allow filtering releases by created date by @scttcper in #106019
- Support filtering by
release.createdby @scttcper in #104877
Replay
- Remove flag
replay-details-new-uiby @billyvg in #105694 - Add pagination to Playlist view by @billyvg in #105701
- Update design of replay breadcrumbs by @billyvg in #105671
- Add an Alert in playlist tab when there is a query by @billyvg in #105690
Replays
- Add REPLAYS dataset to ExploreSavedQueryDataset by @billyvg in #106008
- Replace playlist Alert with search input by @billyvg in #105807
- Further reduce header size by @jerryzhou196 in #104246
Search Bar
- Add support for explicit boolean tags by @nsdeschenes in #105606
- Add/Update type hints by @nsdeschenes in #105602
Seer
- Auto-continue from solution to code changes by @leeandher in #106029
- Fix disabled states & tweak design of Seer Projects settings page by @ryan953 in #106058
- Add code review webhooks task by @seer-by-sentry in #105909
- Design nit fixes for onboarding by @billyvg in #105736
- Project Settings page revamp: AI Code Review section by @ryan953 in #105518
Sentry Apps
- Add delete_external_issue to region RPC service by @leeandher in #106279
- Add create_external_issue to region RPC service by @leeandher in #106278
- Add create_issue_link to region RPC service by @leeandher in #106277
- Add region RPC service with get_select_options by @leeandher in #106276
Stories
- Simplified sidebar by @natemoo-re in #104611
- Add tokens page by @natemoo-re in #105507
Timeseries
- Add api docs for the timeseries endpoint by @wmak in #105668
- Add ratelimits to the timeseries endpoint by @wmak in #105693
Toolbar
- Return the CSRF token into the toolbar auth flow for use by @ryan953 in #106059
- Bump the version of the toolbar that we load up for employees by @ryan953 in #105920
Top Issues
- Add experimental badge to Top Issues page by @cvxluo in #106237
- Show code change when available by @cvxluo in #105475
- Single card view by @cvxluo in #105437
Tracemetrics
- Add ruby to supported platforms by @narsaynorath in #106262
- Add "All Metrics" option to Add to Dashboard by @narsaynorath in #106190
- Support multiple widgets passed to addToDashboard by @narsaynorath in #106016
- Handle sort resets for visualize changes by @narsaynorath in #105643
- Add Big Number visualization in #105567
- Add Open in Metrics action by @narsaynorath in #105531
- Implement Add to Dashboard by @narsaynorath in #105436
Uptime
- Expose uptime-runtime-assertions flag to UI by @evanpurkhiser in #106213
- Add uptime assertion builder by @evanpurkhiser in #105842
- Add uptime test endpoint by @klochek in #104969
- Add consumer-side queueing for out-of-order results by @wedamija in #105782
- Add task-based retry for out-of-order backlog processing by @wedamija in #105763
Other
- (ai-conversation) Display tool calls in conversation by @obostjancic in #106066
- (ai-insights) Ai agent onboarding prompt by @obostjancic in #105907
- (ai-monitoring) Add cache write cost tracking for AI models by @shellmayr in #106070
- (attributes) Add endpoint to return attribute mappings by @nsdeschenes in #106024
- (billing) Add missing org slug to billing links by @scttcper in #105942
- (cells) Add logging to verify endpoint usage by @lynnagara in #105943
- (ci) Setup-sentry skip-devservices mode by @joshuarli in #105774
- (claude) Add mypy to claude by @chromy in #105824
- (cron-detector-schedule-preview) Adding endpoint for deriving time window from schedule and thresholds by @Abdkhan14 in #105915
- (crons-detector-schedule-preview) Generating schedule ticks by window and marking threshold regions by @Abdkhan14 in #106263
- (data secrecy v2) Update
WaiveDataSecrecyEndpointto useDataAccessGrantmodel by @mifu67 in #100154 - (detectors) Preserve page filters + env in DetectorLink by @evanpurkhiser in #105055
- (eap-resolver) Support between operator by @DominikB2014 in #105538
- (eco) Adds a way to surface debug data safely from integration metadata, while excluding sensitive information by @GabeVillalobos in #106035
- (Errors) AI Search by @aayush-se in #105892
- (feedback) Add a button to the feedback page so people can create Alerts by @ryan953 in #106084
- (hybrid) Allow Identity model to be used as HCFK by @alexsohn1126 in #105339
- (infra) Dynamic sharding by @rbro112 in #105706
- (ingest-metrics) Add option to count segment spans as transactions by @Dav1dde in #106072
- (integrations) Encrypt integration metadata field by @vgrozdanic in #106163
- (issue search) Enable fallback to truncation of group IDs for all Snuba queries by @shashjar in #105663
- (llm-detector) Add Redis for de-deduplication by @roggenkemper in #105910
- (logs) AI Search by @aayush-se in #105786
- (oauth) Implement OAuth 2.0 Device Authorization Flow (RFC 8628) by @dcramer in #105675
- (objectstore) Temporarily log request info by @lcian in #106063
- (onboarding) Add ruby metrics by @sl0thentr0py in #105798
- (ownership) Migrate issue owners cache invalidation to use timestamp versioning on ownership by @shashjar in #106108
- (rpc) Tag response logs with organization_id by @narsaynorath in #105400
- (scraps) RenderToString util by @TkDodo in #106252
- (sdk-integration-detector) Structured prompt by @ArthurKnaus in #105800
- (search) Support explicit boolean tags by @nsdeschenes in #106261
- (security) Enable email notifications for leaked secrets by @oioki in #105414
- (seer explorer) Add new feature flag for streaming in #105498
- (seer-slack) Implement Slack Entrypoint for Seer Workflow by @leeandher in #105367
- (select-field) Update to not fire onBlur when toggling items by @priscilawebdev in #105902
- (testing) Add GitHub identity and provider factory for testing by @alexsohn1126 in #105600
- (trace) Replace old event breadcrumb section by @scttcper in #106151
- (traces) Reference measurements from
performance.traceOriginby @timfish in #105903 - (usage overview) Move trial CTA back to table by @isabellaenriquez in #106082
- (workflow engine) Issue type data condition handler (BE) by @mifu67 in #105959
- Add snapshots API scaffolding by @noahsmartin in #105744
- Type coverage diff by @TkDodo in #105821
- Add constants and default options for Game Console SDK invites by @alexsohn1126 in #105225
- Add a banner to the browser devtools in #105486
Bug Fixes 🐛
Aci
- Handle ANY_SHORT_CIRCUIT condition in alert builder by @malwilley in #106313
- Use organization slug in notification links for single-written workflows by @malwilley in #106280
- Handle empty query from URL in monitor form by @malwilley in #106219
- Allow action interval of 0 mins by @ameliahsu in #106143
- Fix empty targetIdentifier for slack action by @ameliahsu in #106136
- Fix empty WHEN condition text on details page by @ameliahsu in #106125
- Fix
failure_rateinput suffix and placeholder by @ameliahsu in #106111 - Better handling for error monitor edit permissions by @malwilley in #106050
- Set failure rate y-axis range based on seriesMax and threshold by @ameliahsu in #105962
- Add ongoing issues list to uptime monitor page by @malwilley in #106015
- Use singular preferred detector in workflow processing round 2 by @cathteng in #105865
- Clip open period bubble overflow by @ameliahsu in #105830
- Hide link to all issues when metric alert uses invalid syntax by @malwilley in #105834
- "View monitor details" button should not replace url by @ameliahsu in #105819
- Don't process deleted workflows in process_delayed_workflows by @kcons in #105784
- Use notification_uuid from WorkflowFireHistory when sending notifications by @kcons in #105471
- Prevent error detector creation in the API by @cathteng in #105722
- Fetch buffered group stats by @cathteng in #105608
- Catch correct DoesNotExist error by @mifu67 in #105678
- Fire service hooks from workflow engine by @cathteng in #105586
Ai Insights
- Set has_insights_agent_monitoring flag by @obostjancic in #106258
- Seer warning banner by @obostjancic in #106177
Alerts
- Don't report invalid issue short names in queries as errors by @kcons in #105541
- Fix broken available-actions endpoint when an installation is deleted by @malwilley in #105302
Api
- Add select_related to avoid N+1 query in releases POST by @scttcper in #106340
- Update GroupSearchViewSerializerResponse TypedDict for nullable createdBy by @evanpurkhiser in #106185
- Update AI conversation URL pattern to accept UUIDs by @constantinius in #106162
Auth
- Detect SSO provider mismatch and fix 2FA redirect by @dcramer in #106041
- Pass organization context to resolve_email_to_user by @geoffg-sentry in #106027
Autofix
- Include status code and URL in coding agent error messages by @JoshFerge in #106267
- Pass mode=legacy for legacy useAutofix by @Zylphrex in #106112
Billing
- Handle Stripe elements not loading by @isabellaenriquez in #106107
- Set max image width in CTA by @brendanhsentry in #105860
- Handle undefined partner by @isabellaenriquez in #105805
- Remove prevent from notification settings by @brendanhsentry in #105443
Checkout
- Scroll to step based on hash by @isabellaenriquez in #105637
- Success screen buttons should have same height in #105604
Code Mappings
- Bad url parsing for Gitlab and Bitbucket by @cvxluo in #105751
- Handle malformed source path by @cvxluo in #105683
Code Review
- Cut over to the Prevent Seer pods by @suejung-sentry in #106230
- Use integration client helper instead of raw client by @seer-by-sentry in #106243
- Use "prevent" deployment for code review by @suejung-sentry in #106130
- Unify metrics for easier dashboarding by @suejung-sentry in #105984
- Fix and more debugging by @armenzg in #105996
- Disable direct-to-seer ghe on-prem flow by @suejung-sentry in #105985
- Allow whitelisted orgs to have the task scheduled by @suejung-sentry in #105884
- Consolidate code review checks by @suejung-sentry in #105561
- Fix test regression in #105632
- Fix payload for Seer in #105560
- Look up code review beta orgs dynamically in #105603
- Event_type does not define the webhook type in #105548
- Fix config check for code review beta orgs by @suejung-sentry in #105493
Codeowners
- Preview file button slightly cut off by @cvxluo in #105762
- Increase processing deadline duration & test coverage for
code_owners_auto_synctask by @shashjar in #105406
Dashboards
- Add All Metrics fails to add on first attempt by @narsaynorath in #106371
- Orderby reset incorrectly for TopN charts by @narsaynorath in #106295
- Consolidate network requests on Mobile Vitals page by @gggritso in #105921
- Add to dashboard persists page selection for create by @narsaynorath in #106000
- Dashboards frontend should filter out prebuilt dashboards when calculating limit by @DominikB2014 in #105948
- Prebuilt backend dashboard no data for cache by @DominikB2014 in #105923
- Normalize widget full screen view URL by @gggritso in #105913
- Dashboard link should include project by @DominikB2014 in #105642
- Add
/traceroute to dashboards in #105633 - Prebuilt domain summary not loading in #105581
- Corrects web vitals dashboard migration flag name by @edwardgou-sentry in #105485
- Remove linked dashboard flag check in field renderer by @DominikB2014 in #105487
Escalating Forecast
- Bump down step size for generating forecast again by @cvxluo in #106119
- Bump down step size for generating forecasts by @cvxluo in #105780
Explore
- Set correct height on spans sub table by @nsdeschenes in #105530
- Fix traces table header radii by @nsdeschenes in #105482
Explorer
- Prevent QueryOutsideRetentionError in issue tool by @seer-by-sentry in #106096
- Select repos from prefs for cursor handoff by @roaga in #106114
- Add units and descriptions to on page context charts by @roaga in #105930
Grouping
- Parameterize hard-coded values in Python process spawning code by @lobsterkatie in #106142
- Add rule source to stacktrace hints by @lobsterkatie in #105968
- Remove unclear component ignoring test inputs by @lobsterkatie in #105849
- Fix ignoring delete-and-discard bug by @lobsterkatie in #105709
- Handle case where all exceptions are groups by @lobsterkatie in #105667
Groupsnooze
- Set debounce on Snuba failure to prevent rate limits by @roggenkemper in #106322
- Add cooldown cache to prevent Snuba rate limits by @roggenkemper in #106189
Insights
- Display user misery loading state by @scttcper in #106321
- Create alert button broken insights/explore by @DominikB2014 in #105841
Issues
- Handle repo names without owner prefix in coverage by @scttcper in #105703
- Fix padding on the Issue>Replay list by @ryan953 in #105716
- Fix TypeError on save event with None in tags by @yuvmen in #105446
Metrics
- Filter out empty string metric names by @k-fish in #106266
- Disable extrapolation when getting count of telemetry by @Zylphrex in #105714
Preprocessing
- Bump redirect-preprocess threshold by @thetruecpaul in #105391
- Get merged group_ids after intersections by @thetruecpaul in #105385
Preprod
- Fix breadcrumb links on build pages (EME-720) by @runningcode in #106186
- Remove query when switching tabs by @chromy in #106181
- Hide missing git metadata while uploading by @cameroncooke in #106103
- Return JsonResponse instead of HttpResponse for error in artifact image endpoint by @runningcode in #105715
- Fix error response handling in size analysis download endpoint and frontend (EME-718) by @runningcode in #105624
- Use projectid for preprodBuilds list, not projectSlug by @NicoHinderling in #105650
- Standardize error responses to use
detailkey in compare download endpoint (EME-718) by @runningcode in #105623 - Avoid text overflow on diff hover by @chromy in #105634
- Send compare page index to 404 in #105629
- Display error for mismatched build configurations (EME-699) in #105529
Security
- IDOR in OrganizationOnDemandRuleStatsEndpoint - scope Project by organization by @dcramer in #104988
- IDOR in OrganizationEventsEndpoint - scope DashboardWidget by organization by @dcramer in #104987
- IDOR in OrganizationEventsStatsEndpoint - scope DashboardWidget by organization by @dcramer in #104986
Seer
- Fix repository lookup to handle renamed repos by @sehr-m in #106129
- Only show one tooltip to explain delegating background agents by @ryan953 in #105967
- Disable formatting of save toasts for Code Review triggers… by @ryan953 in #105961
- Update copy and add more help text to explain default settings by @ryan953 in #105964
- Add a border to the seer onboarding banner by @ryan953 in #105972
- Show "Previous Step" during step 5 of seer onboarding by @ryan953 in #105965
- Retry transient HTTP errors in get_anomaly_data Seer calls by @kcons in #105854
- Add retries to get_historical_anomaly_data_from_seer_preview seer requests in #105542
Stories
- Remove global css by @natemoo-re in #105738
type->variantin #105565- Remove overflow in #105546
Theme
- Adjust
react-selecttheme access by @natemoo-re in #106127 - Invisible caret by @natemoo-re in #106036
Tracemetrics
- Properly apply legend alias by @narsaynorath in #105855
- Change Open in Metrics to Open in Explore by @narsaynorath in #105823
- Use same intervals as spans and logs by @narsaynorath in #105809
- Pass along response derived units by @narsaynorath in #105760
- Table in widget viewer should show correct units by @narsaynorath in #105684
- Format aggregate header cell in widget viewer by @narsaynorath in #105664
- Uniquely identify multiple series by @narsaynorath in #105610
Ui
- Allow empty createdBy for starred views by @evanpurkhiser in #106178
- Ignore sentry console banner in breadcrumbs by @scttcper in #106155
- Prevent infinite render loop in
PageAlertProviderby @gggritso in #106079 - Size leading items wrapper to height of input group by @evanpurkhiser in #105912
- Selecting of arbitrary relative periods in auditLogList by @TkDodo in #105795
- Avoid logging sentry console banner in tests by @scttcper in #105733
- Avoid loading invalid prism files by @scttcper in #105730
Uptime
- Use alert permissions for preview check endpoint by @evanpurkhiser in #106217
- Fix skip backfill logic to only run after the interval has been changed by @wedamija in #106135
- Attempt to fix missing misses from backfill by @wedamija in #106046
- Remove empty name shim by @evanpurkhiser in #105194
- Include headers and body in detector form payload by @evanpurkhiser in #105686
Other
- (ai-conversations) Id path param regex by @obostjancic in #106183
- (ai-trace) Turn off autogrouping for gen_ai spans by @obostjancic in #105990
- (arithmetic-equations) Set constrained max width by @nsdeschenes in #105904
- (autopilot) Fix issue fingerprint by @ArthurKnaus in #106357
- (autopilot-logging) Chain to list by @ArthurKnaus in #105480
- (cmdk) Border misalignment in searchbar by @cvxluo in #105474
- (core-ui) Bump grid sticket z-index by @nsdeschenes in #105661
- (crons) Honor alertsMemberWrite setting by @oioki in #104171
- (dashboard) Use disabledKeys to prevent duplication and deletion of prebuilt dashboards by @DominikB2014 in #105955
- (dynamic-grouping) Remove cluster id when selecting project by @scttcper in #106140
- (dynamic-sampling) Don't query snuba for empty sets in boost_low_volume_projects by @shellmayr in #105226
- (errors) Add error.received to timestamp fields by @nsdeschenes in #105713
- (event_frames) Ensure frames are filtered when extracting from thread by @seer-by-sentry in #105501
- (github) Add ownership check to repo by @Christinarlong in #105061
- (gsApp) Remove deprecated route props from route hook by @scttcper in #106105
- (HC) Reshard ApiToken outboxes to the new ApiToken shard by @GabeVillalobos in #105871
- (integrations) Disable uninstall button when integration is pending deletion by @JoshFerge in #105658
- (issue details) Correctly copy issue details for threaded stacktraces by @sehr-m in #105434
- (issue-search) Correctly parse negated contains filters by @cvxluo in #105699
- (linting) Small linting fixes by @hubertdeng123 in #106329
- (logs) Only send timestamp filter if autorefresh enabled by @narsaynorath in #105421
- (oauth) Support public clients for device flow per RFC 8628 §5.6 by @betegon in #106169
- (occurrences on eap) Fix encoding of event IDs when writing occurrences to EAP by @shashjar in #105981
- (rcs) Address design reviews of RCA empty state by @Zylphrex in #105997
- (releases) Allow project:releases scope for org releases endpoint by @szokeasaurusrex in #105130
- (rules) Must be a member of a team to assign it as the rule owner by @oioki in #105177
- (scraps) Align leadingItems in compactSelect with check box/icon by @TkDodo in #106167
- (sdk-crashes) Ignore SentrySwizzleWrapper false positives (#105625) by @calm329 in #105705
- (sdk-integration-detector) Improve logs in #105597
- (search) Handle many parens in query values by @nsdeschenes in #105488
- (search-bar) Use search context parseQuery function by @nsdeschenes in #105802
- (search-query-builder) Remove underline from Alpha badge by @cvxluo in #106153
- (seer onboarding) Remove on_command_phrase CR trigger from settings forms by @srest2021 in #105696
- (seer setting) Grey out Auto Open PRs when auto trigger is Off by @Mihir-Mavalankar in #105792
- (seer-slack) Update messages after autofix engagement to prevent duplicate triggers by @leeandher in #105963
- (spans-migration) Add tooltip to open in explore with different extrapolation modes by @nikkikapadia in #106023
- (taskworker) Prevent taskworker from blocking tasks on stale cach… by @shellmayr in #105801
- (tokens) Add async flush outboxes by @Christinarlong in #105264
- (ts) Fix text
labeltypes by @evanpurkhiser in #106088 - (user-feedback) Remove link to trace when it wasn't sampled by @nsdeschenes in #105584
- (workflow_engine) Add an index to the
incident_identifierby @saponifi3d in #106049 - Typo by @TkDodo in #106246
- Dedupe aliases before final request by @shruthilayaj in #104900
- Fix rendering when a null member is returned by @ryan953 in #105419
Documentation 📚
- (agents) Add guidance for avoiding loading indicator waits in tests by @JoshFerge in #105670
- (chunk) Document CHUNK_UPLOAD_ACCEPT backwards compatibility by @szokeasaurusrex in #106065
- (cloudflare) Change onboarding script for Cloudflare Workers by @JPeer264 in #105640
Build / dependencies / internal 🔧
Aci
- Remove redirect opt out for discover create alert button by @malwilley in #106207
- Default to using issue stream detector by @cathteng in #106150
- Refactor redis buffer management in delayed_workflows to simplify cleanup by @kcons in #105839
- Populate legacy_rule_id and/or workflow_id in action dispatch by @cathteng in #106051
- Handle workflows or rules in digests sans feature flag by @cathteng in #105999
- Remove ui links flag for metric alerts by @mifu67 in #105979
- Use cache for Project and Organization lookups by @kcons in #106012
- Add back subscription processor crash rate detector test coverage by @ceorourke in #105205
- Populate slack notification environment correctly by @cathteng in #105676
- Parse metric issue assignee from detector.owner in #105605
- Update copy for metric monitor resolution threshold by @ameliahsu in #105514
Admin
- Remove deprecatedRouteProps from all 13 admin routes by @ryan953 in #106339
- Remove usage of
deprecatedRoutePropsforBroadcastsroute by @shashjar in #106044 - Remove usage of
deprecatedRoutePropsforBeaconsroute by @shashjar in #106043 - Remove usage of
deprecatedRoutePropsfor adminBroadcastDetailsroute by @shashjar in #105838 - Remove usage of
deprecatedRoutePropsfor adminBeaconDetailsroute by @shashjar in #105836 - Use
Outletto render children in admin layout route by @shashjar in #105441
Alerts
- Remove hasMetricAlerts and hasUptimeAlerts route props by @ryan953 in #106346
- Remove
deprecatedRoutePropsusage forIncidentsListby @shashjar in #105453 - Migrate
RelatedIssuesoff of the deprecated router by @shashjar in #105389
Api
- Switch from
ParamsTypetoSnubaParamsin group endpoints by @shashjar in #105950 - Deprecate legacy first-last-release endpoint URL by @shayna-ch in #105771
Ask Seer
- Clean up old flags by @nsdeschenes in #105833
- Clean up old explore traces flags by @nsdeschenes in #105835
Auth
- Clean up component definitions for auth layout by @shashjar in #105449
- Remove usage of
deprecatedRoutePropsfor auth layout route by @shashjar in #105313
Autofix
- Require mode=explorer to explicitly use autofix-on-ex… by @Zylphrex in #106216
- Explicit opt in to autofix-on-explorer by @Zylphrex in #106212
Billing
- Migrate billing calculations to use formatting config by @dashed in #104808
- Refactoring quotas.py seat methods to not use data_category by @krithikravi in #106026
- Remove UI flags by @isabellaenriquez in #105944
- Clean up analytics by @isabellaenriquez in #105931
- Remove unused ProductUsageChart by @scttcper in #105927
- Cleanup legacy Stripe + billing details code by @isabellaenriquez in #105745
- Use
<Outlet/>in OrganizationSubscriptionContext and remove deprecatedRouteProps by @ryan953 in #105918 - Remove usage of
deprecatedRoutePropsforUsageLogcomponent by @shashjar in #105779 - Remove usage of
deprecatedRoutePropsforBillingInformationcomponent by @shashjar in #105777 - Remove usage of
deprecatedRoutePropsforSubscriptionNotificationscomponent by @shashjar in #105772 - Remove usage of
deprecatedRoutePropsforPaymentHistorycomponent by @shashjar in #105700 - Remove usage of
deprecatedRoutePropsforUsageHistorycomponent by @shashjar in #105697 - Remove usage of
deprecatedRoutePropsfor subscription overview route by @shashjar in #105698 - Update launch feature in showNewSeer by @brendanhsentry in #105470
Checkout
- Rework CheckoutOption by @isabellaenriquez in #106220
- Convert AMCheckout to FC by @isabellaenriquez in #105861
- Remove dead code by @isabellaenriquez in #105278
Code Review
- Hook up list of gh orgs to options-automator by @suejung-sentry in #105886
- Centralize webhook configuration and simplify event processing by @armenzg in #105712
- Refactor how we extract metadata by @armenzg in #105644
Core
- Simplify
AlertBadgelogic by @natemoo-re in #105958 - Consolidate segmentedControl files and remove chonk naming by @JonasBa in #105577
- Consolidate button styles files and remove chonk naming by @JonasBa in #105576
- Consolidate alertBadge files and remove chonk naming by @JonasBa in #105579
- Consolidate select files and remove chonk naming by @JonasBa in #105578
- Consolidate checkbox component files and remove chonk naming by @JonasBa in #105575
- Consolidate menuListItem component files by @JonasBa in #105572
- Consolidate inputGroup component files by @JonasBa in #105571
- Consolidate alert component files and remove chonk naming by @JonasBa in #105573
- Consolidate switch component files and remove chonk naming by @JonasBa in #105569
- Consolidate radio component files and remove chonk naming by @JonasBa in #105570
- Consolidate tab component files and remove chonk naming by @JonasBa in #105568
Dashboards
- Convert GenericWidgetQueries consumers to use hook by @DominikB2014 in #106284
- Convert generic widget queries to functional component by @DominikB2014 in #106182
- Nit: align widget builder w nav and body content by @mtopo27 in #105879
- Remove usages of
deprecatedRoutePropsfor dashboard routes by @shashjar in #105440 - Migrate tests for
WidgetBuilderSlideoutcomponent off ofdeprecatedRouterMocksby @shashjar in #105521 - Migrate tests for widget builder component off of
deprecatedRouterMocksby @shashjar in #105520
Discover
- Migrate
ProjectEventRedirectto use API instead of XHR by @shashjar in #105464 - Migrate tests for
DatasetSelectorTabscomponent off ofdeprecatedRouterMocksby @shashjar in #105522 - Migrate
actionDropdowntests off ofdeprecatedRouterMocksby @shashjar in #105456
Dynamic Sampling
- Remove option for empty queries after rollout by @shellmayr in #105991
- Remove logging statements for log-project-config by @shellmayr in #105138
Explorer
- Add loading toast and fix styling to cursor card by @roaga in #106195
- Add error toast when failing to launch cursor agent by @roaga in #106113
- Error msg for empty state when state req fails by @aliu39 in #106040
- Slice event id in tool copy by @aliu39 in #105945
- Make session read only if owner_user_id doesnt match (2) by @aliu39 in #105789
- Check ff for sessions request by @aliu39 in #105837
- 100 candidate events for rec event by @aliu39 in #105682
- Improve rec event query performance w a sliding window by @aliu39 in #105476
Grouping
- Add python multiprocessing context line test inputs by @lobsterkatie in #106055
- Fix single non-URL frame handling in new config by @lobsterkatie in #105935
- Remove
contributescheck for single JS frame ignoring by @lobsterkatie in #105829 - Add delete and discard tests by @lobsterkatie in #105708
Insights
- Removes unused transaction filter in web vitals queries by @edwardgou-sentry in #105431
- Rename
ReleaseComparisonSelectorby @gggritso in #105152
Issue Search
- Remove enablement option for truncation of group IDs in Snuba queries by @shashjar in #105732
- Remove debug logging in Snuba search executor by @shashjar in #105702
- Remove project allowlist option for fallback to truncation of group IDs in Snuba queries by @shashjar in #105665
Issues
- Avoid repeated org fetch in issue search by @scttcper in #106287
- Add group_id list truncation warning in #105175
Layout
- Use
Outletto render children in app body content route by @shashjar in #105448 - Migrate
OrganizationContaineroff ofdeprecatedRouterPropsby @shashjar in #105461
Llm Detector
- Clean up detection code by @roggenkemper in #105998
- Add log for response by @roggenkemper in #105929
- Update cron schedule by @roggenkemper in #105908
- Remove retries for LLM Detector by @roggenkemper in #105864
Metrics
- Batch string indexer lookups in SnubaResultConverter by @scttcper in #106232
- Stop accepting
routerprop inMetricsDataSwitcherAlertcomponent in #105435
Preprod
- Add extra status check failed logging by @trevor-e in #106374
- Move Preprod{Static,Delta}GroupType to /preprod by @chromy in #106255
- Remove deprecated is_installable from backend by @chromy in #106200
- Remove deprecated is_installable from frontend by @chromy in #106192
- Use encoding utilities to convert between preprod hex identifiers and EAP item IDs by @shashjar in #106030
- Centralize URL building in helper functions by @runningcode in #105827
- JsonResponse -> Response by @chromy in #105811
- Add date_added index to preprodartifact by @NicoHinderling in #105758
- Use Response instead of JsonResponse in artifact image endpoint by @runningcode in #105794
- Integrate cleanup task into deletions task manager by @NicoHinderling in #105742
- Restructure preprod deletion logic via endpoints by @NicoHinderling in #105741
- Add builds list analytics hook by @mtopo27 in #105679
- Delete no longer used project list-builds endpoint by @NicoHinderling in #105652
- Migrate off of singular project list-builds endpoint by @NicoHinderling in #105645
- Fix centering by @mtopo27 in #105611
- Refactor preprod builds table by @mtopo27 in #105552
- Remove namespace_alias in #104761
- Adjust preprod search bar visibility in #105551
- Add distribution info types by @mtopo27 in #105536
- Add distribution_info to buildDetails api by @mtopo27 in #105503
- Remove qr code on xs-sm screens by @mtopo27 in #105491
- Download build container + vcs info by @mtopo27 in #105450
- Mtopo27/refactor install modal by @mtopo27 in #105445
- Refactor vcs details into separate component by @mtopo27 in #105427
- Add internal distribution flag by @mtopo27 in #105424
Scraps
- Remove deprecated black/white aliases by @TkDodo in #106257
- Remove deprecated red aliases by @TkDodo in #106254
- Move theme.tooltipUnderline to useHoverOverlay by @TkDodo in #106247
- Background surface500/400/300 to background tokens by @TkDodo in #106259
- Remove theme.button by @TkDodo in #106264
- Remove theme.tag by @TkDodo in #106173
- Replace debossedBackground with theme token by @TkDodo in #106165
- Move prismVariables out of theme by @TkDodo in #105901
- Remove theme.focus and theme.focusBorder aliases by @TkDodo in #105896
- Remove theme.translucentBorder alias by @TkDodo in #105891
- Remove theme.danger and theme.dangerText aliases by @TkDodo in #105898
- Remove theme.border alias by @TkDodo in #105895
- Remove theme.success and theme.successText aliases by @TkDodo in #105897
- Remove theme.disabled alias by @TkDodo in #105894
- Remove theme.disabledBorder alias by @TkDodo in #105893
- Remove theme.headerBackground by @TkDodo in #105818
- Update tokens by @natemoo-re in #105641
- New token structure in #105105
Seer
- Pass enum value for trigger by @seer-by-sentry in #105951
- Guard access to the new Project>Seer settings page by @ryan953 in #105814
- Optimistic updates inside of useUpdateProjectSeerPreferences() in #105513
- Extract a
<RepoProviderIcon/>react component in #105523 - Import MAX_REPOS_LIMIT when we need it by @ryan953 in #105515
- Put CodingAgentIntegration type near useAutofix() by @ryan953 in #105510
- MakeProjectSeerPreferencesQueryKey should return an ApiQueryKey by @ryan953 in #105511
Seer Onboarding
- Remove on_command_phrase CR trigger from CR enums by @srest2021 in #105980
- Remove on_command_phrase CR trigger from repo settings and org options by @srest2021 in #105978
Sentry Apps
- Fix N+1 queries in SentryAppSerializer by @scttcper in #106305
- Option to disable paranoia for backfill script by @cathteng in #105558
- Prepare to hard delete sentry apps and installs by @cathteng in #105492
Settings
- Remove usages of
deprecatedRoutePropsforSettingsLayoutroutes by @shashjar in #105517 - Remove usage of
deprecatedRoutePropsfor early features route by @shashjar in #105388 - Remove usage of
deprecatedRoutePropsforSettingsWrappercomponent by @shashjar in #105387 - Remove usage of
deprecatedRoutePropsforNoOpcomponent by @shashjar in #105386
Stories
- Add
categoryfield to core components by @natemoo-re in #105566 - Remove outdated principles by @natemoo-re in #105759
Theme
- Remove legacy graphics theme tokens by @natemoo-re in #106224
- Remove legacy content.muted theme token by @natemoo-re in #106225
- Remove legacy
border.*theme tokens by @natemoo-re in #106223 - Remove legacy component.* theme tokens by @natemoo-re in #106226
- Remove theme.active, activeHover, and activeText aliases by @JonasBa in #106004
- Remove
backgroundSecondaryby @natemoo-re in #106037 - Remove theme.error and theme.errorText aliases by @JonasBa in #106003
- Remove theme.pink100-400 deprecated properties by @JonasBa in #106006
- Replace
subTextwithcontent.secondaryby @natemoo-re in #105851 - Remove hover by @natemoo-re in #105825
Top Issues
Ui
- Remove MarkedText from SentryApp overview description by @oioki in #106275
- Limit files typechecked by fork-ts-plugin by @scttcper in #106222
- Add TimeRangeSelectTrigger by @TkDodo in #105214
- Consolidate tsconfig files by @scttcper in #106034
- Add tsgo nightly preview by @scttcper in #106042
- Convert GuideAnchor to FC by @scttcper in #105401
- Enforce getsentry import boundaries on dynamic imports by @scttcper in #105657
Unmerge
- Bump unmerge timeout to 300s by @cvxluo in #106106
- Only do
MinHashrepair if not on AI grouping by @cvxluo in #105973
Uptime
- Use encoding utilities to convert between hex identifiers and EAP item IDs by @shashjar in #106033
- Increase backlog queue max wait time from 3 minutes to 5 minutes. by @wedamija in #106047
- Add better comment to
queue_result_for_retryby @wedamija in #105853 - Extract processing and backfill logic into reusable functions by @wedamija in #105692
Other
- (ai-ml) Correct flag name on tooltip by @leeandher in #105153
- (anomaly thresholds) Add anomaly thresholds to alerts charts by @shayna-ch in #105953
- (attr breakdowns) Clean up calling the RRF function by @aayush-se in #106118
- (attribute breakdowns) Failure rate by @aayush-se in #106039
- (automations) Remove deprecatedRouteProps from automation redirect components by @ryan953 in #106337
- (autopilot) More logging by @ArthurKnaus in #105479
- (breadcrumbs) Migrate tests off of
deprecatedRouterMocksby @shashjar in #105455 - (broadcasts) Batch mark-seen inserts by @scttcper in #106312
- (build) Extract conventions descriptions to translation files by @nsdeschenes in #105415
- (core-ui) Remove to prop from being rendered by @nsdeschenes in #105499
- (data-forwarding) Better disablement, hide legacy forwarding by @leeandher in #104726
- (eap) Bump max rollup in general sentry constants by @nikkikapadia in #106001
- (errors) Increase max tag length to 256 to match request.url limit by @Dav1dde in #105828
- (events) Remove unused EventCustomPerformanceMetrics by @scttcper in #105926
- (explore) Add attribute mapping endpoint description by @nsdeschenes in #106296
- (features) Remove unused profiling feature flag by @Dav1dde in #105791
- (flags) Add frontend and backend flags for automatic console sdk invites by @alexsohn1126 in #105952
- (grouplist) Refactor GroupList to use useApiQuery by @malwilley in #105688
- (infra) Remove codecov.yml by @rbro112 in #105717
- (logs) Add analytics for mismatch between virtual and original data by @k-fish in #105810
- (member merge) Backfill emails for self-hosted sentry app proxy users by @mifu67 in #101887
- (profiles) Use encoding utilities to convert between profile IDs and EAP item IDs by @shashjar in #106032
- (quotas) Remove global quotas by @Dav1dde in #106245
- (relocation) Remove usage of
deprecatedRoutePropsfor relocation route by @shashjar in #105433 - (replay) Move live/refresh logic into hooks by @billyvg in #105647
- (router) Migrate
withSentryRoutertests off ofdeprecatedRouterMocksby @shashjar in #105454 - (routes) Remove leftover usage of
deprecatedRoutePropsfor theDisabledMemberComponentby @shashjar in #105463 - (routing) Migrate SDK documentation test file off of
deprecatedRouterMocksby @shashjar in #105465 - (sdk-init) Ignore sending console banner to Sentry by @nsdeschenes in #105799
- (search) Register explicit boolean tag feature flag by @nsdeschenes in #106250
- (search agent) Register flag in #105613
- (searchQueryBuilder) Move GetTagValues to searchQueryBuilder by @chromy in #105806
- (segments) Add basic org killswitch by @untitaker in #104769
- (similarity) Gate MinHash similarity if on SaaS by @cvxluo in #106086
- (spans) Use encoding utilities to convert between span IDs and EAP item IDs by @shashjar in #106031
- (spend allocations) Clean up UI code by @isabellaenriquez in #106191
- (strings) Add additional tags and metrics for span first by @Dav1dde in #105630
- (sub v3) Remove dead code by @isabellaenriquez in #105677
- (tests) Migrate tests for Snuba search backend to use options context manager by @shashjar in #105469
- (trace explorer) Use agentic search endpoint by @aayush-se in #105583
- (trace-waterfall) Add paginated waterfall feature flags by @nsdeschenes in #105906
- (tsc) Fix type error with old theme colors by @malwilley in #106110
- (workflow_engine) Consolidate action handler parameters with ActionInvocation dataclass by @kcons in #105524
- Add convert_args to ProjectTemplateDetailEndpoint by @oioki in #106099
- Generic HMAC service authentication class by @lynnagara in #106231
- Add convert_args to AcceptOrganizationInvite by @oioki in #106078
- Add convert_args to OrganizationApiKeyDetailsEndpoint by @oioki in #106075
- Assign taskworker modules to streaming-platform by @markstory in #106020
- Add convert_args to ProjectKeyDetailsEndpoint by @oioki in #106077
- Add convert_args to ApiTokenDetailsEndpoint by @oioki in #106076
- Bump knip and address new findings by @TkDodo in #105987
- Fix typo in workflow by @ryan953 in #106022
- Cleanup old flag organizations:user-feedback-ui by @ryan953 in #105957
- Add span-v2-otlp-processing feature flag by @mjq in #105840
- Refactor InvoiceDetails view to not use deprecatedRouteProps by @ryan953 in #105813
- Remove unused relay /projectids endpoint by @lynnagara in #105746
- Refactor RedeemPromoCode view to not use deprecatedRouteProps by @ryan953 in #105812
- Create a SubscriptionContext specifically for routes/views by @ryan953 in #105817
- Refactor LegalAndCompliance view to not use deprecatedRouteProps by @ryan953 in #105808
- Cleanup
secret-scanning.github.notifications.email-allowlistby @oioki in #105626 - Add instructions about get_attrs and serialize to AGENTS.md by @shellmayr in #104674
- Clear Python cache in setup-sentry action in #105481
- Change ownership to new team in #105574
- Delete coverage by @joshuarli in #105394
Other
- ref(theme) remove theme.green100 to green400 by @JonasBa in #106145
- codemod(flex): apply changes for @getsentry/telemetry-experience by @JonasBa in #106306
- codemod(flex): apply changes for @getsentry/app-frontend by @JonasBa in #106300
- button: add warning variant by @JonasBa in #106317
- ✨ feat(GHE): add issue sync support by @iamrajjoshi in #103424
- codemod(flex): apply changes for @getsentry/feedback-frontend by @JonasBa in #106298
- codemod(flex): apply changes for @getsentry/profiling by @JonasBa in #106297
- ref(core) improve type signature of core components by @JonasBa in #106273
- ref(theme) always invoke CSS resolver by @JonasBa in #106218
- ref(theme) remove yellow100-yellow400 by @JonasBa in #106144
- ref(theme) remove theme.overflowEllipsis by @JonasBa in #105933
- theme: update proxy to handle JSON serialization by @JonasBa in #106208
- dx(claude): Allow claude to run gh repo view by default by @chromy in #106203
- ref(theme) remove theme.gray by @JonasBa in #106139
- codemod(flex): apply changes for @getsentry/replay-frontend by @JonasBa in #106122
- codemod(flex): apply changes for @getsentry/data-browsing by @JonasBa in #106120
- ref(theme) remove backgroundTertiary by @JonasBa in #106132
- Container pointer events prop by @JonasBa in #106184
- feat(tasks) Add application to taskbroker requests by @markstory in #106017
- ref(theme) remove theme.background by @JonasBa in #106134
- ref(icons) update stories to use correct story variants by @JonasBa in #106137
- codemod(flex): apply changes for @getsentry/revenue by @JonasBa in #106124
- ai(skills): add database migration skill by @vgrozdanic in #106179
- test(location): Support state param in location config by @narsaynorath in #106126
Plus 99 more