New Features ✨
Aci
- Add issue type condition to new Alerts UI by @malwilley in #108174
- Support issue category include/exclude in issue alerts by @malwilley in #107966
- Add support for excluding issue categories in new alerts UI by @malwilley in #108002
- Translate issue category condition include property for legacy models by @malwilley in #107948
- Metric issue should link to metric alert if new UI is not enabled by @malwilley in #107870
- Deduplicate workflows API endpoint by @mifu67 in #106482
- Delete rule processing by @cathteng in #106616
- Include Rule in legacy model tracking by @kcons in #107647
- Update metric alerts page to redirect with workflow-engine-metric-issue-ui flag by @malwilley in #107645
- Add exclusion to issue category filter by @mifu67 in #107527
- Add exclusion to issue type filter by @mifu67 in #107535
- Finally default post-process to workflow engine take 2 by @cathteng in #107696
- Add ongoing issues component to metric alert details page by @malwilley in #107566
- Update metric issue open periods list to display activities by @malwilley in #107522
- Highlight current open period in metric issue details by @malwilley in #107274
- Add open period timeline to metric issue details by @malwilley in #107210
- Add pagination and event ID links to open period list by @malwilley in #107007
- Enable Seer for metric detector issues by @malwilley in #107027
- Add ability to filter group open periods by event_id by @malwilley in #106930
- Add eventId to group open period serializer by @malwilley in #106929
- Publish bulk PUT endpoints by @ceorourke in #106743
- Add deprecation warning to old alerts API docs by @ceorourke in #106692
- Publish workflow engine API docs by @ceorourke in #106628
- Document OrganizationWorkflowDetailsEndpoint by @mifu67 in #106323
- Document Organization Detector Details Endpoints by @ceorourke in #106148
- Add API documentation for OrganizationDetectorIndexEndpoint POST by @ceorourke in #105882
- Document organization workflow index POST endpoint by @ceorourke in #106228
- Document organization workflow index GET and DELETE endpoints by @ceorourke in #106210
Admin
- Add unit formatting for emerge categories in admin provisioning by @dashed in #106941
- Update Toggle console platforms modal to manage console SDK invites by @alexsohn1126 in #105638
- Restrict /manage/ endpoint to non-SaaS modes by @michelletran-sentry in #106530
Agent
- Try to fix invalid json by @priscilawebdev in #108300
- Expand root JSON path by default in trace drawer by @priscilawebdev in #107585
- Update onboarding for meta frameworks by @priscilawebdev in #107221
- Add alert about other runtimes for meta frameworks by @priscilawebdev in #106944
- Update onboarding documentation for python by @priscilawebdev in #106656
Agents
- Update onboarding to display sdk update alert by @priscilawebdev in #107575
- Add agent dropdown to the page by @priscilawebdev in #107108
- Update JavaScript onboarding docs by @priscilawebdev in #106361
Ai Conversations
- Show tool calls by @obostjancic in #107662
- Add aggregations to conversation details by @obostjancic in #107479
- Add start and end timestamp to the endpoint by @obostjancic in #107500
- Tool names and errors by @obostjancic in #107407
- Display failed tool calls by @obostjancic in #107405
- Add user avatar to table and reorder nav by @obostjancic in #106962
- Use conversations endpoint by @obostjancic in #106367
- Support new OTel attributes by @obostjancic in #106521
Ai Insights
- Support span.name by @obostjancic in #107929
- Add platform icons to onboarding dropdown by @obostjancic in #107042
- Improve conversations table input/output display by @obostjancic in #106969
- Mastra onboarding by @obostjancic in #106861
- Support tool.call attribute by @obostjancic in #106509
- Support new otel spec by @obostjancic in #106442
Autofix
- Add referrer to trigger autofix by @Zylphrex in #108095
- Support stopping point in explorer group ai autofix by @Zylphrex in #107675
- Add per-org metrics to autofix tasks by @Mihir-Mavalankar in #107621
- Support configurable intelligence-level-for-explorer-a… by @Zylphrex in #106973
- Add GitHub Copilot agent provider UI by @JoshFerge in #106290
Autopilot
- Add AI-generated summary and docs URL to missing integration issues by @ArthurKnaus in #108114
- Add missing integrations count to detector log by @ArthurKnaus in #108109
- Switch traces detector to project id option by @ArthurKnaus in #108011
- Prepare missing integration detection for experiment by @vgrozdanic in #107671
- Add trace data detector by @ArthurKnaus in #107589
- Add finish reason to prompt by @ArthurKnaus in #107229
Billing
- Move locked products to bottom of usage overview table by @dashed in #107701
- Add admin-only product trial support for emerge categories by @dashed in #107294
- Add Emerge quota exceeded UI with Contact Sales CTA by @dashed in #106932
- Add emerge data categories to frontend test fixtures by @dashed in #106942
- Enable admin gifting for emerge products by @dashed in #106369
Cells
- Add isCellScoped prop to ResultGrid for cell-scoped endpoints by @evanpurkhiser in #106450
- Add stub for synapse endpoint by @lynnagara in #105975
Ci
- Migrate
black,isort,pyupgrade, and most offlake8toruffby @shashjar in #108010 - Add
ruffas dev dependency by @shashjar in #107385
Code Review
- Send experiment assignment to Seer by @giovanni-guidini in #107483
- Register experiments feature flag by @giovanni-guidini in #107478
- Include the author for debugging by @armenzg in #107414
- Improve debuggability by @armenzg in #106880
- Retry task up to five times by @armenzg in #107011
- Add Pydantic payload validation for Seer API requests by @armenzg in #106810
- Support sending closed pull request events to Seer by @armenzg in #106375
Conversations
- Limit date range selection to 30 days by @priscilawebdev in #107765
- Add analytics tracking for conversations feature by @priscilawebdev in #107477
- Agent selector should be persistent across nav & reset when project changes by @priscilawebdev in #107046
Copilot
- Add has_identity support to explorer autofix by @JoshFerge in #106788
- Add provider support for explorer autofix coding agent handoff by @JoshFerge in #106798
- Add has_identity field support for Setup button by @JoshFerge in #106787
- Add has_identity field to GitHub Copilot integration by @JoshFerge in #106785
Core
- Add neutral variant to InlineCode by @natemoo-re in #106906
- Add surface variant by @natemoo-re in #106408
Crons Detector Schedule Preview
- Preventing status smearing wit… by @Abdkhan14 in #106617
- Endpoint edge cases by @Abdkhan14 in #106392
- Adding new schedule preview co… by @Abdkhan14 in #106388
Dashboards
- Add rage_and_dead_clicks and server_tree display types by @DominikB2014 in #108160
- Make ssr file widget and dead/rage click cloneable by @DominikB2014 in #108159
- Legend breakdown rows default to opening in Explore by @DominikB2014 in #108131
- Updates
Add to Dashboardfrom static widgets to open widget library in builder by @edwardgou-sentry in #108060 - Add
staleTimeto underlying widget queries by @DominikB2014 in #108124 - Migrate Mobile Vitals to prebuilt dashboards by @gggritso in #108068
- Disables editing static widgets from the widget library by @edwardgou-sentry in #108031
- Add customizable limit for categorical bar widgets by @gggritso in #107954
- Add categorical bar chart template to Widget Library by @gggritso in #107936
- Populate prebuilt dashboard with actual id by @DominikB2014 in #108032
- Adds Performance Score Wheel widget to widget library by @edwardgou-sentry in #107976
- Add rage and dead click widget by @DominikB2014 in #107975
- Add axis label rotation and affix trimming to categorical charts by @gggritso in #107718
- Registers wheel display type by @edwardgou-sentry in #107944
- Add server tree component by @DominikB2014 in #107877
- Adds widget descriptions to prebuilt Web Vitals dashboards by @edwardgou-sentry in #107935
- Add categorical bar chart widget type by @gggritso in #107689
- Create basic nextjs frontend overview page by @DominikB2014 in #107856
- Register Next.js Frontend Overview prebuilt dashboard on backend by @DominikB2014 in #107848
- Add insights-nextjs-frontend-overview-migration feature flag by @DominikB2014 in #107847
- Add dashboard link to Network Requests by Time Spent widget by @DominikB2014 in #107789
- Filter frontend overview by frontend data by @DominikB2014 in #107779
- Register Frontend Overview prebuilt dashboard on backend by @DominikB2014 in #107681
- Support linked dashboards in legend breakdown by @DominikB2014 in #107632
- Create platformized frontend overview by @DominikB2014 in #107625
- Add retry logic to spans and issues dataset queries by @DominikB2014 in #107614
- Add legend breakdown below chart by @DominikB2014 in #107520
- Update web vitals page summary prebuilt dashboard to use equations by @edwardgou-sentry in #107552
- Adds a new additionalDatasets attribute to linked dashboards to allow creating dashboard filters on multiple datasets by @edwardgou-sentry in #107434
- Update Perf score chart to use equation format when opening in explore by @edwardgou-sentry in #107503
- Drop FCP meter widget from Prebuilt Dashboard and adjust layout by @edwardgou-sentry in #107412
- Add dashboards-chart-legend-breakdown feature flag by @DominikB2014 in #107439
- Updates layout for prebuilt web vitals page summary dashboards by @edwardgou-sentry in #107417
- Add performance_score to equations allowlist by @edwardgou-sentry in #107410
- Delete perf score meter widgets from prebuilt web vitals dashboards by @edwardgou-sentry in #107409
- Register categorical bar chart widget type by @gggritso in #107370
- Replace issues widget in backend overview by @DominikB2014 in #107415
- Add in BarChartWidgetVisualization by @nsdeschenes in #106775
- Add categorical bar charts feature flag by @gggritso in #107199
- Allow custom sorting of releases dropdown by @gggritso in #106978
- Register Mobile Session Health prebuilt dashboard by @DominikB2014 in #107095
- Scaffold mobile session health module by @DominikB2014 in #107167
- Migrate releases to hook pattern by @DominikB2014 in #106909
- Set dataset in tags when changed by @narsaynorath in #107099
- Add cell actions getter function by @nsdeschenes in #106963
- Allow linked dashboards in line chart full screen by @DominikB2014 in #106606
- Always sort by _is_starred_transaction if selected by @DominikB2014 in #106599
- Migrate Spans dataset to hook-based query pattern by @DominikB2014 in #106590
- Register backend overview by @DominikB2014 in #106541
Dynamic Grouping
- Add root cause section, new layout by @scttcper in #107564
- Extract cluster sorting, refine ranking signals by @scttcper in #106919
Dynamic Sampling
- Move boost low volume projects to allow segments by @shellmayr in #107668
- Add span metric support for recalibrate_orgs & sliding_window_org tasks by @shellmayr in #106956
- Allow spen segment metrics in GetActiveOrgs and GetActiveOrgsVolumes by @shellmayr in #106955
- Add is_segment filter for span metrics in boost_low_volume_projects by @shellmayr in #106954
- Use span metric for rebalancing transactions & option for activation by @shellmayr in #106772
Eco
- Adds permissions to GH integration debug data by @GabeVillalobos in #106478
- Adds migration for new debug column on Integration table by @GabeVillalobos in #106476
- Adds integration debug table for displaying customer integration install info by @GabeVillalobos in #106378
Explore
- Adds opportunity_score to list of allowed functions in equations by @edwardgou-sentry in #107941
- Search api on search in vis dropdown by @nsdeschenes in #106584
Form
- RangeField by @TkDodo in #108233
- TextAreaField by @TkDodo in #108216
- SwitchField by @TkDodo in #108212
Grouping
- Add OpenStack Swift transaction ID parameterization by @JoshFerge in #107762
- Add
{{ message }}fingerprint test input by @lobsterkatie in #107361
Infra
- Add backend selective testing workflow by @rbro112 in #105500
- Add backend tests workflow with coverage upload to GCS by @rbro112 in #105885
Integrations
- Log response headers in integration API client by @JoshFerge in #108269
- Add GitHub Copilot polling functionality by @JoshFerge in #106670
- Add GitHub Copilot agent provider backend by @JoshFerge in #106289
Issue Details
- Update onboarding tour copy and welcome modal by @jaydgoss in #107002
- Embed aggregated flame graphs for events with linked profile by @markushi in #103256
Issues
- Track AI title usage in issue view creation analytics by @scttcper in #108255
- Switch group selection to a context by @scttcper in #108075
- Generate AI issue view titles by @scttcper in #107820
- Cleanup debug meta processing column by @scttcper in #107384
- Replace react-virtualized with @tanstack/react-virtual in DebugMeta by @scttcper in #107213
- Add copy request body to clipboard by @scttcper in #106926
- Fall back to raw value when user tag has no fields by @scttcper in #106757
Js Loader
- Expose
hasLogsAndMetricsin serializer by @chargome in #107345 - Support logs+metrics bundle by @chargome in #106959
- Update UI for User Feedback selection by @chargome in #106514
- Update loader template to auto inject user feedback integration by @chargome in #107043
- Pass feedback option in loader by @chargome in #106949
- Add support for user feedback by @chargome in #106444
Lint
- Catch
theme.tokens.borderviolations by @natemoo-re in #107458 - Catch
theme.tokens.backgroundviolations by @natemoo-re in #107452 - Catch
theme.tokens.contentviolations by @natemoo-re in #107313 - Add all
TOKEN_RULESforuse-semantic-tokenby @natemoo-re in #107315
Llm Detection
- Pass span count to Seer with trace metadata by @nora-shap in #107735
- Add create_issue_occurrence RPC method for async LLM detection by @nora-shap in #106754
Notifications
- Add Size Analysis to notification settings UI by @dashed in #106940
- Add QUOTA_SIZE_ANALYSIS for Size Analysis spend notifications by @dashed in #106939
Oauth
- Add UI for creating and viewing public OAuth clients by @BYK in #106654
- Add public client support and refresh token rotation by @BYK in #106451
- Add RFC 6750 Bearer token compliance by @dcramer in #106274
Objectstore
- Try Django request.body when proxying by @lcian in #106506
- Try Django request.body first by @lcian in #106441
Occurrences On Eap
- Implement the
typeattribute for filtering error/issue platform events by @shashjar in #108099 - Implement double reads in the
GroupEventsEndpointby @shashjar in #105969 - Implement
count_if&minaggregates for occurrences by @shashjar in #107133
Onboarding
- Add Copy as Markdown button to product onboarding surfaces by @jaydgoss in #108058
- Register onboarding-copy-setup-instructions feature flag by @jaydgoss in #108066
- Add metrics for .NET platforms by @alexander-alderman-webb in #106551
- Add logs onboarding for React Native by @antonis in #107666
- Add metrics onboarding for React Native by @antonis in #107665
- Add metrics onboarding support for Flutter by @buenaflor in #106950
- Add new welcome UI with product selection by @jaydgoss in #107175
- Add feature flag for new welcome UI by @jaydgoss in #107160
- Add sentryTanstackStart vite plugin by @nicohrubec in #106555
Preprod
- Use dedicated preprod-snapshots feature flag for snapshot endpoint by @NicoHinderling in #108243
- [Frontend] Allow staff to rerun size analysis comparisons by @NicoHinderling in #108188
- Add snapshots feature flag by @NicoHinderling in #108197
- [Backend] Allow staff to rerun size analysis comparisons by @NicoHinderling in #108187
- Skip pre-commit fix apply for draft PRs by @rbro112 in #108167
- Add preprod-size-monitors-frontend feature flag by @chromy in #108037
- Snapshots upload API by @rbro112 in #107825
- Display per-file insight savings in treemap tooltips by @cameroncooke in #107786
- Add app size chart to Mobile Builds tab by @mtopo27 in #107067
- Add FlaggedInsight model for treemap insight savings by @cameroncooke in #107787
- Make head_ref optional for size analysis by @runningcode in #107845
- Add frontend support for toggling features by @chromy in #107687
- Add backend support for toggling features by @chromy in #107674
- Use Arcade embed in onboarding panel by @mtopo27 in #107704
- Log quota check by @chromy in #107595
- Add requestedFeatures to artifact update response by @chromy in #107336
- Disable header actions when size analysis is incomplete (EME-782) by @runningcode in #107231
- Add dashboard byte decimal formatting and fix tooltip formatting by @trevor-e in #106886
- Add docs link and simplify build filter description by @mtopo27 in #107255
- Unhide filters by @chromy in #107232
- Add frontend support for treemap insights (EME-372) by @cameroncooke in #107150
- Update pydantic models to include new flagged_insights field (EME-372) by @cameroncooke in #107149
- Add quota exceeded banner for Size Analysis by @runningcode in #107061
- Add NOT_RAN to SizeAnalysisState by @chromy in #107080
- Reimplement adding build id as a search option for list builds endpoint by @NicoHinderling in #107118
- Use structured search by @chromy in #106961
- Fix platform_name handling by @chromy in #107103
- Add descriptions for preprod search attributes by @mtopo27 in #107096
- Show error message in builds table by @chromy in #107077
- Add drilldown to clean up treemap by @rbro112 in #107076
- Add missing insights on compare by @cameroncooke in #107018
- Settings URL /builds/ -> /mobile-builds/ by @chromy in #106989
- Reflect queuing state on size build details by @NicoHinderling in #106981
- Add support for Apple insight types on Compare by @cameroncooke in #106967
- Add install_groups to install details endpoint by @noahsmartin in #106921
- Add mobile builds onboarding with platform-specific instructions (EME-733) by @runningcode in #106856
- Create initial preprod snapshots models by @rbro112 in #106823
- Add build id as a search option for list builds endpoint by @NicoHinderling in #106901
- Display message when out of quota by @chromy in #106866
- Add quota endpoint by @chromy in #106863
- Support install_groups by @noahsmartin in #106756
- Add new preprod_diff_approval table by @NicoHinderling in #106721
- Control size/distro via settings by @chromy in #106707
- Add artifact_matches_query helper by @chromy in #106675
- Add preprod dashboard frontend by @trevor-e in #105919
- Support configuring filters for
sizeanddistributionin project settings by @chromy in #106002 - Switch to new URL format in backend (EME-725) by @runningcode in #106366
- Show callers of status check and dedup head artifacts by @trevor-e in #106638
- Reland quota check by @chromy in #106523
- Add new URL routes while maintaining backwards compatibility (EME-725) by @runningcode in #106354
- Use standard id gen method for size status check pref values by @NicoHinderling in #106234
- Add tagline to status check with link to status check settings page by @NicoHinderling in #106233
- Integrating status check settings into task logic by @NicoHinderling in #105876
Replay
- Replace AI summary loading GIF with rotating text messages by @billyvg in #108132
- Add
projectwhen filtering by user email/tags by @billyvg in #107419 - Feature flag for new replay processing pipeline by @tobias-wilfert in #107400
- Add tooltips to playlist next/prev buttons by @billyvg in #107098
Replays
- Replace react-virtualized with tanstack/virtual in breadcrumbs by @scttcper in #107262
- Add saved query header for Replay pages by @billyvg in #106879
- Add saved queries functionality to Replay list by @billyvg in #106013
Scim
- Manage privileges via SCIM Groups by @michelletran-sentry in #107709
- Revoke superuser/staff privileges when removed from default org by @michelletran-sentry in #107151
Scraps
- Compact variant for form layouts by @TkDodo in #108325
- Info pattern components by @TkDodo in #108205
- Expand font-size for headings by @natemoo-re in #107676
Search Agent
- Visualize Steps in UI by @aayush-se in #106419
- Start and poll the agent state by @aayush-se in #106324
Search Bar
- Support async tag fetching by @nsdeschenes in #107769
- Wrap selected filters in parentheses by @nsdeschenes in #105947
Seer
- RPC for code mappings by @kddubey in #105622
- Allow guided steps to have clickable steps, Seer uses it by @ryan953 in #108081
- Include occurrence data when serializing events in get_issue_and_event_details_v2 by @wedamija in #108083
- Update the Enable Code Generation link to docs by @ryan953 in #108059
- Update the copy when selecting many/all Projects and Repos inside Seer settings by @ryan953 in #107999
- Add a link from Settings > Seer > Repos to Integrations by @ryan953 in #107996
- Update copy and link targets for the Seer Config Reminder by @ryan953 in #107811
- Rename "Agent Delegation" to "Coding Agent" in settings by @JoshFerge in #107813
- Add
Enable Code Generationto org-wide seer settings page by @ryan953 in #107377 - Update Seer settings so that PR Create toggles respect enableSeerCoding by @ryan953 in #107391
- Stop overriding enable_seer_coding when migrating from legacy to new seer plans by @ryan953 in #107363
- Iterate on Seer Setting tabs by @ryan953 in #107807
- Iterate on copy in the settings pages by @ryan953 in #107805
- Setup a flagpole flag to control the Seer Config Reminder by @ryan953 in #107798
- Use flagpole to control rendering the seer config reminder by @ryan953 in #107800
- Disable all the
Generate codebuttons in Seer UI by @ryan953 in #107454 - Add logging and metrics for Seer entrypoints by @leeandher in #107693
- Show the autofix Seer config step if the org needs a config reminder by @ryan953 in #107703
- Let api endpoint
/seer/onboarding-check/returnneedsConfigReminderby @ryan953 in #107702 - Capture errors when updating onboarding by @billyvg in #107683
- Highlight projects that have zero repos connected in Seer>Project list settings by @ryan953 in #107570
- Move the Connected Repos section in Seer Project Settings up by @ryan953 in #107571
- Reland trigger_at timestamps with backward compatibility by @vaind in #107525
- Show the enabled triggers in the Seer > Repo list page by @ryan953 in #107565
- Only remind people to setup Seer if the org has GitHub integration by @ryan953 in #107288
- Add source field to coding integration analytics and expand coverage by @JoshFerge in #107528
- Add analytics tracking for coding integration CTA buttons by @JoshFerge in #107513
- Support multiple slack threads per alert for autofix updates by @leeandher in #107280
- Add pre-autofix cache for slack workflow notifications by @leeandher in #107117
- Add a reminder for Seer orgs who have not completed onboarding by @ryan953 in #106931
- Allow superuser override for seer onboarding by @billyvg in #106689
- Remove "Next Button" on Connect GitHub step by @billyvg in #106680
- Add feedback buttons to the top of Seer settings pages by @ryan953 in #106649
- Return seer preference
automation_handofffrom the bulk endpoint by @ryan953 in #106615
Seer Explorer
- In
trigger_autofix_explorer, sendproject_idwhen callingstart_run()by @billyvg in #108056 - Link to conversations from feedback by @obostjancic in #107148
- Add fab by @roaga in #106604
Sentry Apps
- Add interaction methods to region RPC service by @leeandher in #106282
- Add service hook projects methods to region RPC service by @leeandher in #106281
Settings
- Refactor organization teams list to SimpleTable by @scttcper in #107636
- Add timestamp for discarded issues by @cvxluo in #107583
- Allow picking project when routing to settings by @scttcper in #107354
Spans
- Add GCP log analyzer tool for span buffer operations by @fpacifici in #107538
- Use float precision for sentry.duration_ms calculation by @phacops in #106992
- Create options for dual write and flusher reads by @lvthanh03 in #106712
Spans Buffer
- Disable write to ZSET default option value by @lvthanh03 in #107853
- Enable read from SET by default by @lvthanh03 in #107852
- Enable write to unsorted SET by default by @lvthanh03 in #107851
- Add stuck detector for span flusher subprocess by @lvthanh03 in #107281
- Use separate redirect table for SET implementation by @lvthanh03 in #107083
- Add metrics comparison between SET and ZSET implementations by @lvthanh03 in #106990
- Add dual write for ZSET to SET migration by @lvthanh03 in #106794
Toolbar
- Bump toolbar to 1.0.0-beta.23 from beta.22 by @ryan953 in #107087
- Use the CSRF token in headers and cookies when using the sentry API by @ryan953 in #106286
Trace
Tracemetrics
- Return units from aggregate in response by @narsaynorath in #107695
- Add units feature flag by @narsaynorath in #107849
- Expose metrics UI for dart projects by @narsaynorath in #107569
- Pull multiple aggregates into table by @nsdeschenes in #107352
- Add react-native to metrics constants by @narsaynorath in #107422
- Add iOS and other apple platforms by @narsaynorath in #107344
- Pull data into chart by @nsdeschenes in #107277
- Enable multi-select on aggregate dropdown by @nsdeschenes in #107163
- Consistently distribute space for metric toolbar by @narsaynorath in #106979
- Style changes for table and page by @narsaynorath in #106669
Ui
- Support logs+metrics bundle by @chargome in #107328
- Modernize Rubik font loading by @scttcper in #107140
Uptime
- Register uptime-ai-assertion-suggestions feature flag by @jaydgoss in #108178
- Increase uptime monitor limits from 100 to 500 by @gaprl in #108070
- Add user setting to disable response capture by @wedamija in #107113
- Add API endpoints to delete response captures by @wedamija in #107092
- Add UptimeResponseCapture to cleanup infrastructure by @wedamija in #107079
- Add API endpoint for response capture retrieval by @wedamija in #107033
- Include response capture in incident evidence by @wedamija in #106491
- Create response captures on check failures by @wedamija in #106462
- Display assertion compilation errors in form by @jaydgoss in #106922
- Add test monitor button to uptime configuration forms by @jaydgoss in #106832
- Add default status code assertion for verifications by @jaydgoss in #106811
- Add assertion to uptime config model and serializers by @klochek in #106626
- Add capture_response_on_failure to config production by @wedamija in #106405
- Add UptimeResponseCapture model by @wedamija in #106341
- Add drag-and-drop reordering for assertions by @evanpurkhiser in #106465
Uptime Assertion Failure Data
- Implementing tree model by @Abdkhan14 in #107065
- Adding to issue evidence data by @Abdkhan14 in #107268
- Adding trace-item-id to /checks/ endpoint response by @Abdkhan14 in #107191
Webhook
- Support skipping sending GitHub webhooks to Codecov by @armenzg in #107946
- Add tags and context to webhook delivery by @armenzg in #107937
Other
- (ai-conversation) Do not allow for querying more than 30d of data by @vgrozdanic in #107843
- (alerts) Add trace metric alerts by @k-fish in #107508
- (attribute-breakdown) Open in expanded modal by @nsdeschenes in #106559
- (attributes) Support fetching explicit boolean attributes by @nsdeschenes in #106820
- (auth) Add CSRF debug logging for login flow by @JoshFerge in #107153
- (code review) Remove existing reactions and add 👀 to PR by @srest2021 in #106544
- (console) Update request console sdk access modal and button by @alexsohn1126 in #105612
- (dashboards/insights) Allow >90 days pickable by @DominikB2014 in #106529
- (db) Add model name to EncryptedField metrics tags by @vgrozdanic in #106531
- (debug) Allow debug to be a string by @wmak in #107182
- (deletion) Add partition support to BulkDeleteQuery and cleanup command by @dashed in #107906
- (detectors) Add helper to filter Detector IDs to those currently snoozed by @kcons in #108104
- (dev) Post_fetch system dependencies by @joshuarli in #107462
- (dev-infra) Add local selective testing job by @rbro112 in #108052
- (devservices) Use Shared postgres by @hubertdeng123 in #107258
- (discover) Add conditional functions and tpm to allowed arithmetic functions by @DominikB2014 in #107958
- (dyanmic-grouping) New sort order, cluster stats refactor by @scttcper in #106750
- (dynamically-sampling) Remove Get Samples button from UI by @priscilawebdev in #106953
- (eap) Use last-seen in EAP tagstore by @thetruecpaul in #106826
- (encryption) Add EncryptedTextField for encrypting text fields by @vgrozdanic in #106765
- (enrichment) Check ancestors for agent name in gen_ai spans by @obostjancic in #107056
- (eslint) Add use-semantic-token rule with modular architecture by @natemoo-re in #106917
- (events-stats) Add log event for stats usage by @wmak in #107295
- (explorer) Add attribute comparisons rpc by @aliu39 in #106486
- (gitlab) Add inbound/outbound assignment & comment support by @iamrajjoshi in #105472
- (hybridcloud) Preserve Content-Encoding header for Objectstore by @lcian in #106660
- (identities) Add GitHub Copilot identity to account identities page by @JoshFerge in #107443
- (ingest-metrics) Only use the segment metric for tx usage by @Dav1dde in #106350
- (insights) Add feature flag for mobile session health migration by @DominikB2014 in #107086
- (issue-search) Support has on issue scalar conditions by @Zylphrex in #107563
- (issue-views) Add backend endpoint for AI-generated view titles by @JoshFerge in #105970
- (java) Pass exception to symbolicate request by @romtsn in #104851
- (logs) Fetch vis and group by attributes on search by @nsdeschenes in #106433
- (member merge) Set email_unique on User object save by @mifu67 in #92696
- (middleware) Add AI agent friendly responses for unauthenticated requests by @dcramer in #106485
- (models) Add extras JSONField to CommitComparison by @trevor-e in #108283
- (nav) Add feature flag logic to show/hide the Prevent nav item by @ryan953 in #105346
- (open-periods) Backfill event_id from GroupOpenPeriod to GroupOpenPeriodActivity by @wedamija in #107866
- (ownership) Migrate assignee existence cache invalidation to use timestamp versioning on ownership by @shashjar in #106479
- (perf-detectors) Make it possible to provide a Detector ID to a PerformanceDetector by @kcons in #106713
- (profiling) Allow changing slowest functions sorting by @Zylphrex in #108014
- (project-details) Link to mobile session health by @bcoe in #106520
- (quotas) Add has_usage_quota interface method for usage-based categories by @dashed in #106393
- (relay) Add trimming to project config by @loewenheim in #108017
- (rollout) Add sample rate option to
SafeRolloutComparatorto gate double reads by @shashjar in #107115 - (rollouts) Add "should_use_experimental" function by @thetruecpaul in #106595
- (search) Upgrade to peggy v5 by @scttcper in #107749
- (search-query-builder) Leave input value for number filters by @nsdeschenes in #107616
- (security) Allow collection of COOP reports by @oioki in #106565
- (slack) Add feature flag for seer explorer @mentions by @leeandher in #107778
- (stories) Cleanup categories by @natemoo-re in #106379
- (supergroups) Send embedding requests to seer by @cvxluo in #107819
- (symbolication) Show malformed errors as malformed by @Dav1dde in #107574
- (symbolicator) Add SteamOS / Proton debug symbol server by @mujacica in #107667
- (tempest) Handle invalid_scope error from Sony auth endpoint by @JoshuaMoelans in #107225
- (trace-detector) More error state logging by @ArthurKnaus in #108105
- (uptime-assertion-in-checks) Adding assertion_failure_data to the eap_converter by @Abdkhan14 in #106833
- (uptime-detector-ongoing-issues) Ignoring date selection for uptime ongoing issues by @Abdkhan14 in #108144
- (uptime-detectore-schedule-preview) Adding preview section to monitor creation form. by @Abdkhan14 in #106612
- (uptime-issue-assertions-section) Sending assertion failure data… by @Abdkhan14 in #107546
- (uptime-issue-trace-preview) Ensuring that uptime spans are queried by @Abdkhan14 in #107868
- (uptime-json-path-assertion) Splitting path string to value, operator and operand by @Abdkhan14 in #107512
- (uptime-traces) Always querying for uptime events when querying a trace by @Abdkhan14 in #108245
- (usageStats) Add new
ignoredclient discard reason by @Lms24 in #106251 - (view-hierarchy) Allow forcing absolute positioning by @timfish in #107507
- (workflow engine) Issue open duration condition handler (BE) by @mifu67 in #107030
- Rewrite account details to new form system by @TkDodo in #107264
- Add confirm for autoSaveField by @TkDodo in #108307
- Add parent_index and sample_count fields to stacktrace Frame by @noahsmartin in #107917
- Send org_id and project_id to Seer severity score endpoint by @JoshFerge in #107756
- Add insights-frontend-overview-dashboard-migration feature flag by @DominikB2014 in #107615
- Add metrics onboarding for Apple platforms by @philprime in #107170
- Seer repo improvements by @JoshFerge in #107233
- Hide try codecov subscription modal button by @calvin-codecov in #107020
- Add metrics onboarding for Go by @giortzisg in #106554
- Remove code-review-beta condition from eligibility guard by @ajay-sentry in #106600
- Show details when there are any for sending test notifications by @JPeer264 in #106362
- Add cron job to schedule indexer job by @shruthilayaj in #106377
Bug Fixes 🐛
Aci
- Update tests to use 'any-short' logic type for trigger conditions by @NicoHinderling in #108257
- Restrict trigger logic type by @ceorourke in #107548
- Alert form env selector should set initial data correctly by @malwilley in #108076
- Better handling for eventType when creating metric alert/monitor URLs by @malwilley in #108069
- Handle anomaly condition evaluated data by @malwilley in #107905
- Handle missing error detector in associate_new_group_with_detector by @kcons in #107938
- Add errors support for dataSources by @nikkikapadia in #107857
- Update sentry app installation receiver to disable Actions by @ceorourke in #107460
- Fix ability to save webhook actions in alert form by @malwilley in #107708
- Fix mistyped comparison by @kcons in #107719
- Update customer facing automation text to alert by @ceorourke in #107629
- Order metric issue timeline by most recent first by @malwilley in #107529
- Fetch_workflow_groups_paginated typing correction by @kcons in #107526
- Update receiver to delete orphaned Actions by @ceorourke in #107532
- Fix create workflow documentation by @ceorourke in #107468
- Look up sentry app id for Action in dual write by @ceorourke in #107436
- Redo sentry app action migration by @ceorourke in #107208
- Add option to disable issue stream detector for certain group types by @cathteng in #106801
- Add back outbox category by @ceorourke in #107197
- Add helper to ensure malformed IDs always result in 400s by @kcons in #106822
- Use open period to set query bounds on metric issue by @malwilley in #107131
- Handle fallthroughType in email action translator by @cathteng in #106633
- Don't treat deleted Detector as an error by @kcons in #106727
- Fix workflow environment field by @ceorourke in #106636
- Fix saving alert form with projects you are not a member of by @malwilley in #106394
- Report InvalidSearchQuery as a 400 from OrganizationDetectorIndex by @kcons in #106622
- Default alert builder action filters to 'all' by @malwilley in #106583
- Hide 'All environments' option in uptime detector form by @malwilley in #106578
- Add validation for detector trigger condition results by @mifu67 in #106330
- Disable the IssueType data condition by @saponifi3d in #106426
Admin
- Handle GitHub Copilot identity category in admin user page by @JoshFerge in #108051
- Fix customers api endpoint to respect new cells architecture by @shellmayr in #107927
Agent Insights
- Trace drawer open event fired too often by @ArthurKnaus in #106566
- Wrong error count in traces by @ArthurKnaus in #106546
Agents
- Parse input's message from OpenRouter by @priscilawebdev in #107487
- Correct pagination spacing by @shellmayr in #107241
Ai Conversations
- Tool message parsing by @obostjancic in #107846
- Query only spans in conversation timeframe by @obostjancic in #107501
- End timestamp by @obostjancic in #107584
- Sum tokens only from ai_client spans by @obostjancic in #107485
- Misaligned border in active message bubble by @obostjancic in #107482
- Ignore statsPeriod for conversation details endpoint by @vgrozdanic in #107411
- Flip conversation messages bubbles by @matejminar in #107161
- Support gen_ai.input.messages by @obostjancic in #107222
- Agent selector multi-selection by @obostjancic in #107223
- Use correct query params in converstaion details page by @vgrozdanic in #107146
- Drawer span selection by @obostjancic in #107045
- Use correct query params by @vgrozdanic in #106733
Ai Insights
- Prioritize span.description over span.name by @obostjancic in #108309
- Normalize explore params by @obostjancic in #107493
- Update onboarding instructions by @obostjancic in #106864
Alerts
- Consider all ESCALATING substatus transitions as 'has_escalated' in alerts by @kcons in #108084
- Fix disabled 'create alert' button for org owners by @malwilley in #107751
- Support trace metrics in anomaly detection alerts by @k-fish in #107610
- Open in Metrics for trace metrics alerts by @k-fish in #107606
- Ensure project_id is an int in OrganizationEventsAnomaliesEndpoint by @kcons in #107467
- Use tracemetrics dataset for TRACE_ITEM_METRIC alerts by @k-fish in #107420
- Improve alerts list UX for downgraded plans by @mifu67 in #107019
- Respect 24-hour clock preference in email notifications by @leeandher in #106884
- Clear Slack channel_id when channel name is modified by @leeandher in #106824
- Support AssignedToFilter in issue alert preview by @leeandher in #106783
- Validate targetIdentifier is an int before we try to query with it as one by @kcons in #106401
Auth
- Sync CSRF token on form submit for multi-tab scenarios by @JoshFerge in #107389
- Fix test cookie race condition in multi-tab login by @JoshFerge in #107453
- Fix CSRF token refresh for multi-tab auth scenarios by @JoshFerge in #107214
Autofix
- Use step metadata in autofix completion hook by @Zylphrex in #107942
- Only require repos for manual rca by @Zylphrex in #108003
- Gate repos_not_found log on non-empty set by @JoshFerge in #107952
- Only coerce projects autofix automation on to medium by @Zylphrex in #107607
- Truncate GitHub Copilot prompt to avoid API limit by @JoshFerge in #107202
- Stable drawer width by @roaga in #107203
- Missed one /autofix/update call site by @Zylphrex in #107123
- Pass organization id for autofix update by @Zylphrex in #107107
Autopilot
- Deduplicate repository configs in missing SDK integration detector by @ArthurKnaus in #108115
- Emit error metric for Seer instantiation and artifact retrieval failures by @ArthurKnaus in #108111
- Add GitHub provider filter and gen AI consent checks to detectors by @ArthurKnaus in #108107
- Ensure instrumentation issues are not triggering alerts by @ArthurKnaus in #107587
- Increase integration detector poll timeout by @ArthurKnaus in #107320
- Ensure repo structure awareness by @ArthurKnaus in #106786
- Monorepo awareness by @ArthurKnaus in #106659
- Ensure docs URL usage by @ArthurKnaus in #106652
Billing
- Fix feature flags for emerge categories on usage stats page by @dashed in #107196
- Hide issue fixes and scans in stats page for non-legacy Seer orgs by @brendanhsentry in #107078
Cells
- Update Invoices and Customers index urls to cell-based by @kcons in #107698
- Use cell endpoint for closing invoices by @evanpurkhiser in #106445
Code Mappings
- Display the modal from issue details for all platforms by @shashjar in #107894
- For platforms lacking supported extensions, fall back to default frame info by @shashjar in #107893
Code Review
- Add "Copilot" user login special case to bot check by @srest2021 in #107861
- Add cache to dedupe github webhook events by @suejung-sentry in #107734
- Determine if user is bot by checking user login suffix instead of user type by @srest2021 in #107622
- Add
github_rate_limit_sensitivefield to seer config model by @srest2021 in #107697 - Disable 🎉 for orgs with large repos by @srest2021 in #107357
- Add date_updated to update_fields by @srest2021 in #107129
- Pass org id and org integration id to fix metrics by @suejung-sentry in #106648
- Look only at code review beta list by @suejung-sentry in #106540
- Handle when both seat plan and beta flag by @suejung-sentry in #106532
- Check if org has disabled default code review triggers by @suejung-sentry in #106430
- Fix staged billing check for GA by @suejung-sentry in #106146
Codeowners
- Move AI conversation rules after endpoints catch-all by @vgrozdanic in #107664
- Assing telemetry experience as codeowners for files related to AI conversation page by @vgrozdanic in #107147
Cursor
- Handle empty branch_name when launching Cursor agent by @JoshFerge in #106933
- Validate API key when setting up Cursor integration by @JoshFerge in #106502
Dashboard
- Frontend overview can't be cloned by @DominikB2014 in #108169
- Add to Dashboard fails widget builder add when first visit by @narsaynorath in #106396
Dashboards
- Increase allowed limit to 25 for categorical bar charts by @narsaynorath in #108229
- Include yAxis equations in top events table query by @DominikB2014 in #108228
- Fix issue where initial widget library selection does not load properly by @edwardgou-sentry in #108171
- Add empty fields to rage/dead clicks and server tree widgets by @DominikB2014 in #108221
- Fix issue with Web Vitals prebuilt dashboard slideout not correctly linking to next prebuilt Page Summary dashboard by @edwardgou-sentry in #108168
- Move NUM_DESKTOP_COLS constant to avoid circular dependancy by @edwardgou-sentry in #108163
- Exclude is_starred_transaction from explore URLs by @DominikB2014 in #108126
- Fix gaps and errors in Mobile Vitals Dashboards by @gggritso in #108033
- Use equations for frontend overview table and fix equation field rendering by @DominikB2014 in #108045
- Add missing attribute in widget library definition by @gggritso in #108046
- Fix default filters for web vitals prebuilt dashboard by @edwardgou-sentry in #107950
- Update number suffixes to uppercase (K, M, B) by @nikkikapadia in #107878
- Handle empty widget data gracefully instead of throwing by @DominikB2014 in #107784
- Fix system activity avatar sizing and dark mode by @edwardgou-sentry in #107598
- Fix slideout panels in page summary not filtering based on global filter on transaction by @edwardgou-sentry in #107560
- Bring selected option to top of visualize dropdown by @nikkikapadia in #107355
- Backend overview should only show transactions by @DominikB2014 in #107541
- Respect fieldMeta overrides for timeseries widget types by @DominikB2014 in #107524
- Query limit not being applied on releases dataset by @DominikB2014 in #107505
- Show first and last category labels on categorical bar charts by @gggritso in #107448
- Fixes transaction field renderer overwriting linked dashboard config by @edwardgou-sentry in #107416
- Dashboard remounts on url changes by @DominikB2014 in #107346
- Revert legend icons from checkmarks to circles by @gggritso in #107297
- Mobile session health should show crash free rate by @DominikB2014 in #107271
- Open in X should allow for My Projects selection by @narsaynorath in #107162
- Select the first supported display type if unsupported by @trevor-e in #107125
- Always auto-increment dashboard titles on conflict by @gggritso in #107023
- Add message to logs count aggregate default by @narsaynorath in #107094
- Create widget queries for new mobile app size hooks by @trevor-e in #107128
- Ensure tracemetrics-enabled flag applies to dataset by @narsaynorath in #107100
- Trace metrics not grouping by @DominikB2014 in #106867
- Bump echarts-for-react to fix legend event listeners by @gggritso in #106678
- Properly read type and unit from response for spans by @narsaynorath in #106572
- Simplify deprecated transactions dataset option by @gggritso in #106227
- Fix dashboard widget crosshair overlay synchronization by @gggritso in #106336
- Clear message when dataset doesnt support >90 days by @DominikB2014 in #106534
- Update dashboard selects to use new TypeBadge by @nsdeschenes in #106376
- Check query ID before moving out of loading state by @narsaynorath in #106449
Data Forwarding
- Handle datetime serialization in SQS data forwarder by @sentry in #107455
- Disable CTAs for users without org:write permission by @leeandher in #107000
Eap
- Handle rate limits from rpc by @wmak in #107342
- Explicitly check for None in search operation resolution by @Zylphrex in #107272
- Include trace_filters in top events timeseries queries by @volokluev in #107256
- Default is_eap to True in test utilities by @phacops in #106943
- Insert bool values correctly in tests by @phacops in #106935
Explore
- Use hasOwn to avoid checking constructor by @narsaynorath in #108268
- Use unique keys for column editor by @nsdeschenes in #108136
- Prevent duplicate history entries in spans explore by @edwardgou-sentry in #107644
- Copy changes for saving widget, monitor, query by @narsaynorath in #107251
Explorer
Form
- Auto-save for switch field by @TkDodo in #108222
- Stabilize the SelectIndicatorsContainer component by @TkDodo in #108214
Forms
- Improve validation error display in uptime and cron monitor forms by @jaydgoss in #107650
- Make multiline field utilities safe for undo actions by @scttcper in #106983
Github Copilot
- Poll Copilot agents in Explorer autofix path by @JoshFerge in #107759
- GET task status returns unwrapped task by @JoshFerge in #107730
- Update models to match current API response structure by @JoshFerge in #107648
Grouping
- Remove mechanism type check for RxJava exception detection by @romtsn in #107634
- Prevent DiagnosticCoroutineContextException from determining issue title by @romtsn in #107224
- Always check both exception and threads for stacktrace by @cvxluo in #107189
Infra
- Fix bug with changed file detection by @rbro112 in #106807
- Fix config issue for selective testing by @rbro112 in #106686
Insights
- Fix wrong render order in backend overview page by @DominikB2014 in #107972
- Fix user misery bar chart by @scttcper in #106468
- Queries module system selector should match table by @DominikB2014 in #106443
Issue Details
- Prevent unnecessary refetch when changing time range on specific event by @malwilley in #107282
- Show Seer tour copy only when Seer is available by @jaydgoss in #107069
Issues
- Check hideAiFeatures flag in title gen by @scttcper in #108147
- Allow
org:readfor issue view title generation by @scttcper in #108086 - Use background color on project icons by @scttcper in #107913
- Assert user.id is not None before ORM filter by @JoshFerge in #107744
- Disable Export All CSV option without discover-query feature by @leeandher in #106363
Lint
- Address
theme.tokens.borderviolations by @natemoo-re in #107457 - Address
theme.tokens.backgroundviolations by @natemoo-re in #107451 - Expand matches, skip custom properties by @natemoo-re in #107519
- Address
theme.tokens.contentviolations by @natemoo-re in #107314
Logs
- Only show Set Up Logs button when applicable by @narsaynorath in #108048
- Convert count() to count(message) when opening in explore by @narsaynorath in #107012
- Apply enhanced privacy rules to activity notification emails by @wedamija in #108177
- Sanitize user display names in invite and integration request emails by @wedamija in #108165
- Sanitize user display names in team access request emails by @wedamija in #108154
Notifications
- Use plural form for QUOTA_SIZE_ANALYSIS enum value by @dashed in #107450
- Fix Size Analysis feature flag filter typo by @dashed in #107418
Objectstore
Onboarding
- Await project deletion before navigating back by @billyvg in #108155
- Restore opacity on PageCorners container by @jaydgoss in #107890
- Fix iOS Safari scroll position on welcome screen by @jaydgoss in #107539
- Correct "capture first error" onboarding link by @scttcper in #107706
- Platform Xamarin does not support logs by @Flash0ver in #107612
Preprod
- Use project id instead of slug in test assertion by @chromy in #108232
- Fix project slug/id confusion in a few places by @chromy in #107491
- Restrict attributes available on mobile builds page by @trevor-e in #107514
- Add back attributes to featureFilter by @chromy in #107337
- Settings button redirect by @chromy in #107488
- Add unique constraint to commit comparison by @trevor-e in #107371
- Remove redundant "apps analyzed" text when size checks … by @mtopo27 in #107292
- Remove ineffective retry logic for size status checks by @trevor-e in #107303
- Register snapshot models with Django to resolve migration drift by @NicoHinderling in #107302
- Use trace_id for EAP data deletion by @sentry in #107289
- Handle missing diff_type in treemap tooltip by @trevor-e in #107300
- Fix git metadata banner margin on small screens by @mtopo27 in #107270
- Update quota exceeded alert copy and link by @mtopo27 in #107279
- Fix URL length issue when "All Projects" selected in Mobile Builds by @runningcode in #107243
- Add NOT_STARTED state to frontend by @chromy in #107145
- Convert release_version to structured query for builds endpoint by @runningcode in #107157
- Disable Save Rule button when no unsaved changes by @mtopo27 in #107176
- Convert settings FF preprod-issues -> preprod-frontend-routes by @chromy in #107156
- Remove organization slug from legacy URL redirects by @runningcode in #106970
- Update SearchType enum on backend by @chromy in #106994
- Filter insight diff tabs by status by @mtopo27 in #106900
- Update build attributes to match search bar by @chromy in #106960
- Fix search project selection by @chromy in #106951
- Hide the discover button for mobile app size by @trevor-e in #106908
- Temporarily hardcode to neutral status checks by @trevor-e in #106699
- Show correct message on no size analysis by @chromy in #106705
- Use correct write keys for options by @chromy in #106691
- Use get_or_create to avoid duplicate comparison IntegrityError by @trevor-e in #106490
- Correctly attribute rate limiting errors by @trevor-e in #106580
- Add status check retry delay by @trevor-e in #106481
- Fix settings api bug for status checks by @NicoHinderling in #106480
Releases
- Return datetime from get_oldest_health_data_for_releases by @scttcper in #106997
- Exclude archived releases from "Resolve in Next Release" by @leeandher in #106674
- Add null checks for ECharts options in drawer by @seer-by-sentry in #106831
- Use mobile_app_info for preprod build count query by @cameroncooke in #106527
Replay
- Allow replay access to org tokens, superusers & SentryApps with granular permissions by @shellmayr in #107325
- Fix AI summary loading message randomization by @billyvg in #106723
Scraps
- Allow rendering Text as by @TkDodo in #108207
- Align leadingItems in compactSelect with check box/icon by @TkDodo in #106972
Seer
- Clarify Seer error message key in logs by @sentry in #108120
- SeerOperator fixes for explorer-autofix compatibility by @leeandher in #108271
- Fix Seer onboarding so that users get to the Code-Review step first when its needed by @ryan953 in #108183
- Fix seer onboarding to show the final summary step as the user progresses through the wizard by @ryan953 in #108164
- Fix label on Settings > Seer > Projects table to align with details page by @ryan953 in #108050
- Use provider.name for consistency by @billyvg in #107686
- Allow any seer-using org to get to the repo list page by @ryan953 in #107818
- Respect enable_seer_enhanced_alerts option in Slack entrypoint by @leeandher in #107624
- Fix links to seer settings by @scttcper in #107707
- Add aggregate field to anomaly detection api by @sehr-m in #107649
- RCA Onboarding step broken due to provider by @billyvg in #107680
- Various improvements to trace explorer setup endpoint by @JoshFerge in #107244
- Various improvements to anomaly detection endpoint by @JoshFerge in #107242
- Show repo owner/name in the list of seer connected repos by @ryan953 in #107177
- Remove empty Project column in Seer Settings > Repos by @ryan953 in #107134
- Settings was not splitting repo name and repo owner properly by @ryan953 in #107112
- Fix link to seer code-review docs by @ryan953 in #106683
- Update showNewSeer conditions to count the
code-review-betacohort as legacy orgs by @ryan953 in #106425 - Validate project permissions in trace explorer AI query by @oioki in #106432
Settings
- Add tooltip to explain Unknown Provider on repos page by @gaprl in #107816
- Prevent overflow from OpenTelementry yaml by @scttcper in #107804
- Update team modal design/copy by @scttcper in #107547
- When an org has a disabled github integration we incorrectly detected it as being setup by @ryan953 in #106910
- Handle stats API failure on Data Forwarding page by @leeandher in #106372
Span Buffer
- Add observability metrics to EVALSHA by @evanh in #106538
- Add debug logging option for span buffer subsegments by @lvthanh03 in #106539
Spans Migration
- Ensure validation of extrapolation mode on alert updates by @nikkikapadia in #107678
- Add validation to not update alerts to transactions or generic_metrics by @nikkikapadia in #107626
- Map span.module to span.category by @nikkikapadia in #107509
- Replace
parse_functionwith match and parse_arguments by @nikkikapadia in #107421 - Add spm translation and decimal apdex by @nikkikapadia in #107291
- Add event type check in migration function by @nikkikapadia in #106537
Stories
- Shadow by @natemoo-re in #107511
- Shorten component category labels by @natemoo-re in #107366
Tests
- Fix test pollution in CheckScopeTransactionTest by @joshuarli in #108284
- Prevent tests from producing real Kafka messages to taskbroker by @dashed in #107729
- Remove incorrect message.parameter.0 expectation by @phacops in #107339
- Add type annotations for mock_audit_logger parameters by @JoshFerge in #106849
- Update spans fields stats test for lastSeen field by @phacops in #106731
- Fix boolean conversion in scalar_to_any_value by @phacops in #106677
- Use
assert_any_callto address task severity flake by @kenzoengineer in #106623 - RenderWithOnboardingLayout utility shouldn't have a fix platformKey by @priscilawebdev in #106557
Top Issues
- Fix TopIssuesDrawer unconstrained width on long error messages in stacktrace by @yuvmen in #106332
- Swap Title and Subtitle in Drawer to match Cluster Card by @yuvmen in #106333
Trace Waterfall
- Span name panel was not taking into account scroll wheel by @bcoe in #108347
- Add cycle protections by @nsdeschenes in #106888
- Update chevron directions by @nsdeschenes in #106952
- Only check direct children by @nsdeschenes in #106874
Tracemetrics
- Add menu title to show loader by @nsdeschenes in #107586
- Metric Selector should pass along environment filter by @narsaynorath in #107440
- Align confidence footer with logs clarity by @narsaynorath in #107253
- Group by selector should allow clearing by @narsaynorath in #107250
- Switch to Aggregates mode when a group by is added by @narsaynorath in #107179
- Add timestamp to filterable fields by @narsaynorath in #106456
Typing
- Use cast for get_field return type in test_hybrid_cloud by @JoshFerge in #107793
- Rename detector_id annotation to avoid shadowing model field by @JoshFerge in #107791
- Fix order_by column type handling in base_query_set by @JoshFerge in #107790
- Move sentry.workflow_engine to strict mypy by @kcons in #107545
- Add missing type annotations to tests/sentry/users by @thetruecpaul in #106817
- Type tests.sentry.tempest by @thetruecpaul in #106795
Ui
- Wait for member store before id-based fetches by @scttcper in #108091
- Disallow body scroll while drawer is open by @TkDodo in #108027
- Add org slug to settings routes by @scttcper in #107722
- Wrap stacktrace link setup button on small screens by @scttcper in #107694
- Display specific API error messages for assignment failures by @geoffg-sentry in #107335
- Streamline colors for groupStatusChart by @TkDodo in #107044
- Delay checking frontend version for 10 minutes by @scttcper in #107016
Uptime
- Remove invalid select_related on ManyToManyField by @JoshFerge in #107738
- Allow disabled uptime monitors to be accessed via project endpoint by @jaydgoss in #107550
- Pass full subscription object to validator by @klochek in #107557
- Add failsafe to make sure we properly sync
capture_response_on_failureby @wedamija in #107380 - Backfill delete bad uptime checker assertion values by @klochek in #107359
- Preserve null assertions when editing monitors with feature flag off by @jaydgoss in #107365
- Handle overflow for long monitor names by @jaydgoss in #107116
- Use the first uptime region to run preview checks by @klochek in #106797
- Fix cURL snippet background leaking in alert form by @jaydgoss in #106722
- Allow typing intermediate values in status code input by @jaydgoss in #106487
- Fix bug where the data conditions for an uptime monitor aren't created correctly via the new ui by @wedamija in #106605
- Validator should not set null for body and related by @klochek in #106470
- Checker_api should not set null for body and related by @klochek in #106460
- Make verification section smaller in uptime monitor editor by @jaydgoss in #106402
Users
- Use project_id for HybridCloudForeignKey filter by @JoshFerge in #107746
- Assert user.id is not None before ORM get by @JoshFerge in #107745
Workflow Engine
- Remove unused has_reappeared from workflow event data by @kcons in #108082
- Add a cache for Workflows to reduce DB load by @saponifi3d in #106925
Other
- (agent) Parse JSON-stringified AI message content by @priscilawebdev in #107588
- (ai-drawer) Accomodate pretty/raw button in json viewer component by @priscilawebdev in #106549
- (ai-trace) List disappears on breakpoint change by @ArthurKnaus in #106548
- (api) Fix rate units not populating for equation fields by @DominikB2014 in #108043
- (api docs) Fix typo in API docs example by @shashjar in #108201
- (attribute-breakdown) Pass query instead of grabbing from context by @nsdeschenes in #108044
- (attributes) Set allowWildcards to false for project by @nsdeschenes in #108053
- (audit_log) Correct DetectorWorkflow audit log data by @seer-by-sentry in #106382
- (automation) Don't run automation on issues older than 2 weeks by @Mihir-Mavalankar in #107465
- (backend-overview) Render Laravel page before other platformized pages by @DominikB2014 in #108219
- (backup) Reorder imported models based on current canonical import order by @kcons in #106634
- (bug-prediction) Accept unprefixed provider by @kddubey in #107884
- (checkout) Reactive but debounced volume sliders by @isabellaenriquez in #106525
- (ci) Install uv in post_fetch for devenv ci by @joshuarli in #108265
- (code review) Create repo settings even if org's default code review toggle is false by @srest2021 in #106641
- (coding integration) Add short id for all cursor calls by @sehr-m in #106988
- (context) Redirect the user to the right page when a project was renamed by @shashjar in #106643
- (context-picker) Prevent layout shift when loading projects by @scttcper in #107463
- (conversations) Fix cache pollution during project transitions by @priscilawebdev in #107101
- (crons) Enable pointer events on incident indicator by @jaydgoss in #106319
- (darkmode) Code snippet background color by @shellmayr in #107397
- (debug) Putting debug on the same attribute breaks search by @wmak in #107278
- (debug-files) Extract query param to avoid passing None to ORM filter by @JoshFerge in #107740
- (deps) Address Dependabot security alerts for multiple packages by @BYK in #107908
- (detector-schedule-preview) Shouldn't overlay higher z-index comp… by @Abdkhan14 in #106753
- (detectors) Only render service incidents overlay on cron monitors by @jaydgoss in #106308
- (devservices) Update postgres container name by @hubertdeng123 in #107285
- (discover) Disable context menu for starred transaction cell by @DominikB2014 in #107362
- (dynamic-sampling) Transaction management error by @shellmayr in #108117
- (eap-spans) Handle None attribute with groupBy + topEvents by @DominikB2014 in #106875
- (eco) Fixes typing for integration debug data, reduces page size by @GabeVillalobos in #106472
- (encryption) Fix encrypted field metrics table_name tag by @vgrozdanic in #106957
- (eventstream) Use an arroyo producer for eventstream by @evanh in #104763
- (frontend) Include react config for our pipeline asset response by @trevor-e in #108157
- (github) Allow installing orphaned integrations from multi-org dropdown by @cathteng in #107130
- (hybridcloud) Use distribution metric for webhook delivery time by @armenzg in #108289
- (identities) Use GitHub logo for GitHub Copilot identity by @JoshFerge in #107497
- (integrations) Filter installed repos by organization in repo listing by @leeandher in #107677
- (issue owners) Allow updates when team membership is open by @lobsterkatie in #107895
- (issue-ownership) Stop codeowners matching suffixes by @cvxluo in #104398
- (issue-stream) Apply correct styles to waiting for error message by @priscilawebdev in #107839
- (jira) Add project search to issue sync config by @cathteng in #107865
- (killswitches) Always emit a metric if there is a match by @untitaker in #107068
- (llm-detection, seer-rpc) Return 429 on Snuba rate limit for Seer retry by @nora-shap in #107446
- (llm-detector) Add
org_slugto Seer request by @roggenkemper in #107630 - (metric alerts) Separate SubscriptionProcessor fetch phase from evaluation by @kcons in #106229
- (middleware) Skip OAuth endpoints in AI agent middleware by @dcramer in #106711
- (monitors) Typo Confirgure -> Configure by @chromy in #108013
- (perf) Avoid extra queries in MonitorEnvironmentSerializer by @kcons in #106428
- (perf-cli) Pass detector-specific settings in
sentry performancecommands by @roggenkemper in #108074 - (prevent) Improve redirects to pages that exist wrt the Prevent main nav button by @ryan953 in #106489
- (profiling) Fix pluralization of "samples" in flamegraph tooltip by @noahsmartin in #106381
- (project) Make org update and team cleanup atomic during project transfer by @yuvmen in #108153
- (prompts) Remove redundant organization_id from GET query params by @dcramer in #106413
- (redis) Cast Redis version to string before parsing by @shashjar in #107690
- (relay) Add back sessions EAP rollout rate by @noahsmartin in #108079
- (replay-summary) Pass org and proj id in state and delete requests by @aliu39 in #107089
- (sdk) Let the SDK instantiate MultiplexingTransport so that dsn is setup correctly by @sl0thentr0py in #107923
- (search) Handle currency as numeric by @nsdeschenes in #108224
- (searchQueryBuilder) Revert memo merge refs by @scttcper in #107206
- (security) IDOR in PromptsActivityEndpoint GET - scope project by organization by @dcramer in #104990
- (seer-explorer) Move seer-explorer FF check to endpoints by @vgrozdanic in #108108
- (seer-slack) Allow clicks on existing runs to handle gracefully by @leeandher in #108175
- (sentry-apps) Prevent race condition on service hook sentry app rpc by @leeandher in #106526
- (slack-seer) Simplify blocks, remove skipping steps and excess checks by @leeandher in #108063
- (snuba_rpc) Fix error handling for non-protofbuf responses for Snuba RPC by @yuvmen in #107995
- (spans) Add more observability for SpanFlusher.main timeout by @lvthanh03 in #106825
- (spans,logs) Adjust collapse buttons placement by @JPeer264 in #108022
- (storybook) Rendering without type-loader by @TkDodo in #108204
- (tags) Handle status tag by @wmak in #106056
- (theme) Dark chart palette by @natemoo-re in #106903
- (tokens) Add missing
asprop by @natemoo-re in #107712 - (trace) Improve trace performance by @wmak in #107358
- (trace-attrs) Assert organization_id is not None before ORM filter by @JoshFerge in #107741
- (trace-explorer) Handle empty baseline cohort in ranked attributes API by @seer-by-sentry in #106483
- (trace-items) Handle aliases by @wmak in #106607
- (traces) Use span.name instead of transaction by @wmak in #107543
- (type-coverage) Larger buffer & better summary by @TkDodo in #106862
- (unmerge) Explicitly set
first_seenvalues for each group-environment pair by @shashjar in #107907 - (uptime-ongoing-issues) Issue list errors when check-in timeline is zoomed by @Abdkhan14 in #107859
- (vercel) Check user_id is not None before ORM get by @JoshFerge in #107742
- (vsts) Guard identity_id is not None before ORM get by @JoshFerge in #107743
- (widget-builder) Prevent TypeError when sorting with equation-only yAxis by @seer-by-sentry in #106834
- (widget-viewer) Release test flaky by @narsaynorath in #107283
- Revert "Revert "ref(data-forwarding): Remove revamp-access feature fl… by @leeandher in #107933
- Revert "Revert "ref(data-forwarding): Remove revamp-access flag by @leeandher in #107934
- Improvements to seer preferences endpoints by @JoshFerge in #107257
- Improve seer automation endpoint by @JoshFerge in #107235
- Revert "fix(scraps): align leadingItems in compactSelect with check box/icon (#106167)" by @TkDodo in #106889
- Disallow custom CSS in marked by @oioki in #106368
Documentation 📚
- (agents) Consolidate critical instructions into main AGENTS.md by @armenzg in #106515
- Remove extras from installation instructions by @sentrivana in #107492
Internal Changes 🔧
Aci
- Remove unused RPC methods by @ceorourke in #108256
- Update sentry app installation outbox receiver's method call by @ceorourke in #108152
- Add 'new' RPC methods for updating action on sentry app installation deletion by @ceorourke in #108089
- Allow metric issue types to be enabled in the issue stream detector vis the
workflow-engine-metric-issue-uiflag by @wedamija in #108001 - Allow
MetricIssueui visibility to be controlled via multiple flags. by @wedamija in #107985 - Remove references to SentryAppIdentifier by @ceorourke in #107887
- Make sentry_app_installation_uuid optional by @ceorourke in #107879
- Remove support for legacy sentry app data in Actions by @ceorourke in #107174
- Unhook conditions from rules code by @mifu67 in #107754
- Clean up GA'd feature flags by @cathteng in #107739
- Add eventId to GroupOpenPeriodActivity serializer by @malwilley in #107464
- Migration to fix fallthrough_type on email Actions by @cathteng in #106902
- Search open period activity entries for event_id by @malwilley in #107431
- Start recording event_id field in GroupPeriodActivity by @malwilley in #107381
- Add event_id column to GroupOpenPeriodActivity model by @malwilley in #107305
- Add 'beta' warning to ACI endpoints by @ceorourke in #107008
- Use serializer responses as serialize response type by @ceorourke in #106747
- Rename _ensure_metric_detector by @kcons in #106720
- Delete dead detector processing code by @kcons in #106717
- Add feature flag for releasing metric issues by @malwilley in #106629
- Default test_post_process.py to workflow engine by @cathteng in #106598
- Default tests to workflow engine by @cathteng in #106589
- Add back subscription processor EAP test by @ceorourke in #105866
- Use rule test factory by @cathteng in #106431
- Create default detectors in tests by @cathteng in #106404
- Default tests to dual write by @cathteng in #106386
- Make latest workflow fire queries reliably fast by @kcons in #106400
- Remove unused detector workflow endpoints by @ceorourke in #106328
Agent
- Move node onboarding to its own file & clean-up by @priscilawebdev in #106946
- Create onboarding for client-side only by @priscilawebdev in #106758
Agents
- Prefetch and load drawer independently of trace's table by @priscilawebdev in #107663
- Remove ai-insights-generations-page feature flag by @priscilawebdev in #107481
- Add code comment with explanations by @priscilawebdev in #107319
Alerts
- Remove deprecatedRouteProps from metricAlertRuleDetails route by @ryan953 in #106348
- Migrate issue
AlertRuleDetailsview off ofdeprecatedRoutePropsby @shashjar in #106473 - Migrate
AlertsContainerand children views off ofdeprecatedRoutePropsby @shashjar in #106421 - Increase max rollup constants by @nikkikapadia in #106397
Api
- Deprecate last plugin webhook endpoints by @cvxluo in #107296
- Deprecate non-org-scoped accept-project-transfer endpoint by @cvxluo in #107209
- Remove deprecated crossdomain.xml endpoint by @cvxluo in #107293
- Deprecate non-org-scoped group external issue details endpoint by @roggenkemper in #106791
- Update group-details test mock URLs to org-scoped pattern by @roggenkemper in #106869
- Update group-event-details URLs to org-scoped pattern by @roggenkemper in #106871
- Update group-activities test mock URLs to org-scoped pattern by @roggenkemper in #106870
- Deprecate non-org-scoped group external issues endpoint by @roggenkemper in #106792
- Deprecate non-org-scoped group autofix endpoint by @roggenkemper in #106668
- Deprecate non-org-scoped group autofix update endpoint by @roggenkemper in #106666
- Deprecate legacy autofix setup endpoint URL by @roggenkemper in #106663
- Deprecate legacy ai summary endpoint URL by @roggenkemper in #106662
- Deprecate plugin endpoints by @roggenkemper in #106601
- Deprecate non-org-scoped group integration details endpoint by @roggenkemper in #106789
- Deprecate non-org-scoped group integrations endpoint by @roggenkemper in #106790
- Deprecate legacy group-note-details endpoint URL by @roggenkemper in #106608
- Deprecate non-org-scoped group-similar endpoint by @roggenkemper in #106684
- Deprecate non-org-scoped group-attachments endpoint by @roggenkemper in #106687
- Deprecate non-org-scoped group-user-reports endpoint by @roggenkemper in #106690
- Deprecate non-org-scoped group reprocessing endpoint by @roggenkemper in #106693
- Deprecate non-org-scoped group hashes endpoint by @roggenkemper in #106697
- Update frontend test to use org-scoped similar endpoint URLs by @roggenkemper in #106685
- Update group hashes mock URLs to org-scoped by @roggenkemper in #106696
- Deprecate non-org-scoped group-current-release endpoint by @roggenkemper in #106694
- Deprecate legacy group-notes endpoint URL by @roggenkemper in #106609
- Deprecate non-org-scoped similar-issues-embeddings endpoint by @roggenkemper in #106673
- Update suspect flags/tags tests to use org-scoped URLs by @roggenkemper in #106587
Autofix
- Add BQ analytics events for the automation tasks by @Mihir-Mavalankar in #107716
- Use low intelligence level for autofix by @Zylphrex in #107620
- Use low intelligence level for autofix by default by @Zylphrex in #107619
- Pass prompt metadata for explorer autofix by @Zylphrex in #107435
- Track issue age since first seen for new automation by @Mihir-Mavalankar in #107461
- Tweak prompts to always write the artifact by @Zylphrex in #107427
- Use random intelligence level for explorer autofix by @Zylphrex in #107353
- Hide solution option if coding already done by @roaga in #106409
- Less annoying five whys by @roaga in #106407
Autopilot
- Remove source_root from missing SDK integration detector by @ArthurKnaus in #108119
- Split tasks.py into separate detector modules by @ArthurKnaus in #107659
- Limit missing integration detector to JS and python by @ArthurKnaus in #107398
- Break trace propagation for spawned detector tasks by @vgrozdanic in #107323
- Split integration detector into per project tasks by @ArthurKnaus in #107239
- Use medium agent intelligence level by @ArthurKnaus in #107220
- Increase detector time interval by @ArthurKnaus in #107219
- Simplify missing integration detector prompt by @ArthurKnaus in #107060
Billing
- Removed prevent user and prevent review references(BIL-2092) by @krithikravi in #107567
- Remove deprecated performance promo frontend by @cvxluo in #107386
- Replace seer-user-billing with launch flag by @brendanhsentry in #107351
- Remove seer-user-billing flag by @brendanhsentry in #106982
- Rename "Size Analysis Uploads" to "Size Analysis Builds" by @dashed in #106813
- Add constants for emerge by @vbro in #106235
- Refactoring seat methods in quotas.py to not use data_category by @krithikravi in #106331
Cells
- Convert internal-project-config endpoint to internal by @cvxluo in #107301
- Convert relay endpoints to internal by @cvxluo in #107198
- Deprecate non-org-scoped related-issues endpoint by @cvxluo in #107180
- Update miscellaneous python tests to use org-scoped group endpoint URLs by @mifu67 in #106927
- Update remaining frontend tests to use org-scoped endpoint URLs by @mifu67 in #106928
- Deprecate group-tag-key-details endpoint by @mifu67 in #106920
- Deprecate group-tag-key-values endpoint by @mifu67 in #106904
- Update frontend group-tags code to use correct org-scoped URL by @mifu67 in #106730
- Deprecate group-tags endpoint by @mifu67 in #106728
- Deprecate group-stats endpoint by @mifu67 in #106719
- Deprecate group-event-details endpoint by @mifu67 in #106698
- Update frontend group-details tests to use correct org-scoped URL by @mifu67 in #106701
- Deprecate group-events endpoint by @mifu67 in #106644
- Deprecate group-details endpoint by @mifu67 in #106613
- Deprecate group-activities endpoint by @mifu67 in #106631
- Remove relay.public_keys.post capture message by @markstory in #106542
- Use isCellScoped for user customers endpoint by @evanpurkhiser in #106457
Ci
- Ignore
ruffreformatting commit in Git Blame by @shashjar in #108202 - Run tsgo (optional) in ci by @natemoo-re in #107433
Code Review
- Add date_updated and date_added columns to RepositorySettings by @srest2021 in #106977
- Reorder contributor seat check to avoid unnecessary seat-based-seer-enabled calls by @srest2021 in #106724
Code Review
- Log GH -> seer request time by @kddubey in #107834
- Add additional logging for sentry by @suejungshin in #107823
- Log code review request by @kddubey in #107445
- Remove non-validated payloads path by @armenzg in #107237
- Remove deprecated consent rpcs by @suejung-sentry in #107035
- Delete prevent ai configuration v0 table by @suejung-sentry in #107013
This changelog has been truncated. See the full changelog for all changes.