New Features ✨
Aci
- Implement created_by search filter in Alerts by @malwilley in #112950
- Add created_by search filter to workflow index endpoint by @malwilley in #112873
- Modify test action endpoint to accept a project slug by @malwilley in #112859
- Add onboarding banner by @malwilley in #112737
- Register workflow engine onboarding banner prompt by @malwilley in #112615
- Add ability to create envs inline by @saponifi3d in #112558
- Add ability to create new environments in the API by @saponifi3d in #112537
- Update connected alerts empty state by @malwilley in #112397
- Add 'moved' badge to old alerts nav item by @malwilley in #112392
- Add markdown icon to monitor description input by @malwilley in #112295
- Update all monitor forms use more consistent wording and a combined assign/describe section by @malwilley in #112205
- Add issue preview to uptime monitor form by @malwilley in #112224
- Add issue preview to cron monitor form by @malwilley in #112237
- Update new alert UI copy to make it a bit easier to unders… by @malwilley in #112051
- Add numbers to monitor and alert form sections by @malwilley in #111898
- Add types for DetectorInput and DataSourceInput by @saponifi3d in #112050
- Add/update workflows to a detector in DetectorValidator by @ceorourke in #111925
- Move monitor project/environment fields from the header to the form body by @malwilley in #111762
- Release rule stats and group history wfe endpoints by @ceorourke in #111737
- Add feature flag for combined rules endpoint by @ceorourke in #111677
- Align metric chart data points with open period markers by @malwilley in #111595
- Schedule sentry.workflow_engine.tasks.cleanup.prune_old_fire_history every 2min by @kcons in #111550
- Add issue preview to the metric monitor form by @malwilley in #111420
- Make rule stats and group history endpoints backwards compatible by @ceorourke in #111159
- Add owner to workflow serializer response by @ceorourke in #110817
Admin
- Add gsAdmin action to adjust dashboard parallel query limit by @DominikB2014 in #111889
- Replace startup program notes field with program dropdown by @rahulchhabria in #111701
- Add "Add to Startup Program" customer action by @rahulchhabria in #111266
Agents
- Improve AI span presentation with tool input preview and response model by @obostjancic in #112579
- Use CurrencyCell in Agent Monitoring dashboards and handle negative costs by @obostjancic in #111986
- Fall back to gen_ai.function_id for agent name resolution by @obostjancic in #111608
- Add agent monitoring onboarding for Deno by @priscilawebdev in #111282
- Add agent monitoring onboarding for Bun by @priscilawebdev in #111281
Ai Insights
- Add param change analytics event by @obostjancic in #111392
- Update dashboard widgets by @obostjancic in #111069
- Ai content renderer by @obostjancic in #110847
Ai Issues
- Add new AI detected issue types to frontend by @roggenkemper in #112971
- Maps issue titles to new groups by @roggenkemper in #112972
Alerts
- Add per-method workflow engine flags for project alert rule endpoints by @kcons in #112827
- Set up prune_old_open_period_activity by @kcons in #112243
- Report in Sentry and headers whether legacy models were used by @kcons in #110954
- Add pure Detector/Workflow version of OrganizationCombinedRuleIndexEndpoint by @kcons in #110700
Api
- Make InvalidParams a ParseError by @kcons in #112542
- Track camelCase vs snake_case parameter key usage in CamelSnakeSerializer by @michelletran-sentry in #111120
Assisted Query
- Add AI search bar to metrics tab by @isaacwang-sentry in #111797
- Add metrics search feature flag and forward options by @isaacwang-sentry in #112240
- Add tracemetrics built-in fields to _get_built_in_fields by @isaacwang-sentry in #111587
Attachments
- Backfill EventAttachment.date_expires by @jan-auer in #111980
- Write date_expires when saving attachments by @jan-auer in #111983
- Add a
date_expirescolumn by @jan-auer in #111881
Autofix
- Pass reasoning_effort=medium for explorer autofix RCA by @JoshFerge in #112928
- Change default intelligence level from low to medium by @JoshFerge in #112920
- Add Seer project preference getters to Seer RPC by @srest2021 in #112624
- Thread insert_index through explorer API for step retry by @isaacwang-sentry in #112287
- Add copy PR URL button and open icon to pull request card by @chromy in #112358
- Add analytics events for autofix phase start and completion by @chromy in #112098
- Add copy PR URL button to v3 pull request card by @chromy in #112356
- Add root cause as valid stopping point under feature flag by @srest2021 in #112055
- Add seerDrawer to location by @Zylphrex in #112048
- Replace ghost with loading text by @Zylphrex in #112014
- Remove empty file patches from autofix by @Zylphrex in #111961
- Use autofix endpoint for PR creation by @Zylphrex in #111888
- Pass PR description suffix for explorer autofix by @Zylphrex in #111814
- Support optional repo name when creating PRs by @Zylphrex in #111804
- Update seer explorer autofix last triggered on completion by @Zylphrex in #111663
- Autotrigger root cause if legacy autofix ran by @Zylphrex in #111718
- Handle PR creation in group ai autofix endpoint by @Zylphrex in #111565
- Track below_occurrence_threshold as a filtered skip reason by @trevor-e in #111669
- Remove agent handoff from solution step by @Zylphrex in #111653
- Break down not_eligible skip reasons for seer automation by @trevor-e in #111638
- Use new seer explorer autofix last triggered column by @Zylphrex in #111484
- Add metrics and logging for filtered-out seer automation issues by @trevor-e in #111486
- Add explorer autofix fields by @Zylphrex in #111367
- Render full coding agent result text as markdown in card by @sehr-m in #111365
- Support agent handoff after root cause by @Zylphrex in #111164
- Better loading and error states for autofix in sidebar by @Zylphrex in #111144
- Support autofix configurations in redesigns by @Zylphrex in #111081
- Support coding agents in redesigns by @Zylphrex in #110900
- Handle when autofix generates no artfacts by @Zylphrex in #110797
Aws Lambda
- Add frontend pipeline steps for AWS Lambda integration setup by @evanpurkhiser in #112736
- Add API-driven pipeline backend by @evanpurkhiser in #112626
Billing
- Add checkout tooltip for metrics by @brendanhsentry in #112951
- Display a customer's managed status in _admin by @swartzrock in #112757
- Add notification setting for trace metric bytes by @brendanhsentry in #112282
- Gate trace metric bytes notification behind feature flag by @brendanhsentry in #112285
- Select single project usage CSV by @brendanhsentry in #112044
- Implement ClickHouse backend for UsageService by @dashed in #111799
Bitbucket
- Add API-driven pipeline backend for Bitbucket integration setup by @evanpurkhiser in #112396
- Add frontend pipeline step for Bitbucket integration setup by @evanpurkhiser in #112418
Cells
- Compare locality not cell name in fork locality restriction by @lynnagara in #112883
- Add GET path for /organization list on control silo by @lynnagara in #112622
- Remove legacy non-org-scoped accept invite API route by @lynnagara in #112767
- Remove the legacy org invite route by @lynnagara in #112634
- Create the projectkey endpoint for synapse by @lynnagara in #112047
- Support multi-cell jira integration by @lynnagara in #111696
- Migrate clear_region_cache to clear_cell_cache by @lynnagara in #111681
- Wire projectkeymapping to the control silo by @lynnagara in #110231
- Cell architecture and migration skill by @lynnagara in #111563
- Locality configuration should specify cell for new orgs by @lynnagara in #111241
Chartcuterie
- Support multiple display types in Explore chart rendering by @DominikB2014 in #112610
- Add explore line chart render descriptor by @DominikB2014 in #112584
Ci
- Backend selective via unified coverage db by @joshuarli in #110792
- Xdist backend test workflow by @mchen-sentry in #110776
Cmd K
- Add 'superuser' keyword to admin actions by @JonasBa in #112298
- Add comprehensive analytics for the new command palette by @jshchnz in #111684
- Add Amplitude analytics instrumentation to command palette by @JonasBa in #111553
Cmdk
- Add default limit=4 for async resource actions by @JonasBa in #112649
- Add admin actions group for staff users by @JonasBa in #112244
- Add Project Settings group to command palette by @JonasBa in #111659
Code Mappings
- Handle Java monorepo source roots in auto-derivation task by @romtsn in #112655
- Allow multiple source roots per stack root by @romtsn in #111704
Codecov
- Remove Codecov webhooks and TA feature flag by @calvin-codecov in #109844
- Remove Test Analytics UI and Prevent tokens by @calvin-codecov in #109291
Codeowners
- Optimize DB query construction for building CODEOWNERS associations by @shashjar in #111693
- Add data-browsing and streaming owners for spans scripts by @lvthanh03 in #111735
- Allow a dirty baseline file as long as code has CODEOWNERS coverage by @mikejihbe in #111491
- Add codeowners enforcement by @mikejihbe in #110578
Coding Integrations
- Add github copilot as an integration (frontend) by @sehr-m in #111851
- Github copilot integration backend by @sehr-m in #111850
Context Engine
- Only search orgs with SCM integration for index by @Mihir-Mavalankar in #111537
- Index scheduling job changes by @Mihir-Mavalankar in #111035
Conversations
- Show [Filtered] in conversation list for scrubbed data by @obostjancic in #112786
- Add conversation detail page with new design by @obostjancic in #112571
Dashboards
- Add DashboardRevision model and migration by @skaasten in #112929
- Add organizations:dashboards-revisions feature flag by @skaasten in #112923
- Add insights-to-dashboards-ui-rollout feature flag by @gggritso in #112916
- Add performance_score and opportunity_score to Explore by @DominikB2014 in #112146
- Add thresholds support to generated dashboard widgets by @edwardgou-sentry in #112682
- Track metrics for Seer dashboard create and edit flows by @edwardgou-sentry in #112595
- Add beta badge to dashboard chat panel and minor style changes by @edwardgou-sentry in #112539
- Support dashboard editing via Seer chat session by @edwardgou-sentry in #112489
- Add ESC key to dismiss widget builder slideout by @NicoHinderling in #112186
- Allow dashboard generation to filter for project and env by @edwardgou-sentry in #112150
- Add text widget support to generated dashboards by @edwardgou-sentry in #112132
- Use new loader visual in dashboard generation loading page by @edwardgou-sentry in #112365
- Add flag to manage editing existing dashboards with ai by @edwardgou-sentry in #112394
- Apply widget defaults to generated widgets by @edwardgou-sentry in #112036
- Update /dashboard/generate endpoint to accept edit prompts by @edwardgou-sentry in #111957
- Track seer session errors on generating dashboards by @edwardgou-sentry in #111827
- Adds
dashboards-ai-generateflag to Seer Explorer access list by @edwardgou-sentry in #111667 - Add tableWidths to backend overview transactions table by @DominikB2014 in #111790
- Add async queue parallel limit org option by @DominikB2014 in #111615
- Blocks http_error_count function from dashboard generation by @edwardgou-sentry in #111637
- Generated dashboards artifact schema improvements by @edwardgou-sentry in #111533
- Adds more description context to artifact schema by @edwardgou-sentry in #111417
- Redesign dashboard generation initial prompt step by @edwardgou-sentry in #111377
- Disable lazy loading generated dashboards by @edwardgou-sentry in #111402
- Use theme tokens for dashboard widget previews by @obostjancic in #110963
- Updates initial loading page design for Dashboard generation by @edwardgou-sentry in #111327
- Add category params to SeerExplorerClient in dashboard generate by @JoshFerge in #111301
- Improvements to Dashboard generation tracking by @edwardgou-sentry in #111199
- Moves dashboard generation metric to after polling reaches settled state + small fixes by @edwardgou-sentry in #111138
- Add tooltips explaining dashboard linking by @DominikB2014 in #111139
- Support linked dashboards in timeseries widgets by @DominikB2014 in #111078
- Text widget add to dashboard flow by @nikkikapadia in #111019
- Linkify replay.id and profile.id columns in table widgets by @gggritso in #111029
- Adds serializer check to dashboards generation on completion hook by @edwardgou-sentry in #111059
- Updates dashboard chat to continue polling after completion in case of validation errors resuming seer run by @edwardgou-sentry in #111027
- Text widget in widget builder + edit flows by @nikkikapadia in #110800
- Adds interval to dashboard artifact schema by @edwardgou-sentry in #110999
- Add legendType configuration to widget builder by @DominikB2014 in #110906
- Track dashboard generation validation success and fail metrics by @edwardgou-sentry in #110958
- Dashboards generation chat panel improvements by @edwardgou-sentry in #110960
- Adds validation completion hook to generate dashboards endpoint by @edwardgou-sentry in #110903
- Tighten generated dashboard artifact model and improvements by @edwardgou-sentry in #110881
Data Export
- Add exponential back off in case of rate limit errors from snuba by @manessaraj in #112813
- Add synchronous in-browser download for small log exports by @manessaraj in #112688
- Add logging for data-export-failure by @JoshuaKGoldberg in #112169
Errors
- Main body content sections by @nikkikapadia in #112139
- Add page filters and search bar UI by @nikkikapadia in #112003
- Add sidebar item and routes for new Errors ui by @nikkikapadia in #111786
Eslint
- No-unnecessary-use-callback by @TkDodo in #112689
- Add no-flag-comments rule to disallow section separator comments by @evanpurkhiser in #112836
- Enable @typescript-eslint/no-unnecessary-type-parameters by @JoshuaKGoldberg in #112404
- Expand no-default-exports rule to all static default exports by @JoshuaKGoldberg in #111070
- Expand no-default-exports rule to files with other named exports by @JoshuaKGoldberg in #110860
Experiments
- Add useExperiment hook for flagpole experiments by @evanpurkhiser in #112001
- Populate org serializer experiments dict from flagpole by @wedamija in #110814
Explore
- Add 1 day interval option for durations >= 14 days by @gggritso in #112919
- Enlarge chart size for explore Slack unfurls by @DominikB2014 in #112697
- Add issue post processor on occurrences dataset by @manessaraj in #111724
- Validate trace item search keys asynchronously by @nsdeschenes in #111189
- EAP occurrences: resolve issue in query string via group_id by @manessaraj in #111101
- Prioritize known fields in group by dropdown by @nsdeschenes in #109957
- Allow skipping attribute type by @wmak in #110916
- Add drag-and-drop reordering to Visualize toolbar by @JoshuaKGoldberg in #110842
Flagpole
- Register onboarding-scm-experiment feature flag by @jaydgoss in #112157
- Add experiment_mode field to Feature dataclass by @wedamija in #110806
Github
- Handle installation_repositories webhook by @wedamija in #112227
- Add missing test for githubIntegrationPipeline + cleanup by @evanpurkhiser in #112116
- Add frontend implementation for GitHub integration pipeline by @evanpurkhiser in #111996
- Add API-driven GitHub integration setup by @evanpurkhiser in #111728
Gitlab
- Add frontend implementation for GitLab integration pipeline by @evanpurkhiser in #112153
- Add API pipleine flag by @evanpurkhiser in #112367
- Add API-driven GitLab integration setup by @evanpurkhiser in #111999
- Add task to upgrade project webhooks by @iamrajjoshi in #111388
- Add
get_access_token()to GitLab integration by @billyvg in #111001
Grouping
- Add replacement callback option to parameterizer by @lobsterkatie in #111352
- Add
raw_messagefingerprint variable by @lobsterkatie in #111172
Hybridcloud
- Propagate ViewerContext through cross-silo RPC by @gricha in #112248
- Async apigateway by @gi0baro in #111307
Insights
- Remove Projects from Insights navigation by @gggritso in #112535
- Navigate to prebuilt dashboards from trace view and span summary by @DominikB2014 in #110739
- Add banner to Mobile Overview page linking to Mobile Vitals Dashboard by @DominikB2014 in #110880
Integrations
- Log integration_id and endpoint in integrations.http_response by @armenzg in #112961
- Increase compare-commits cache by @armenzg in #112922
- Add metrics to pipeline advancer and pipeline API endpoints by @evanpurkhiser in #112935
- Pass initialData through to initialize by @evanpurkhiser in #112851
- Support initial data binding during pipeline initialization by @evanpurkhiser in #112849
- Send SLO lifecycle metrics to Sentry via SDK by @trevor-e in #112839
- Log as warning when failed http.response by @armenzg in #112665
- Propagate ViewerContext in MS Teams webhook by @gricha in #112414
- Propagate ViewerContext in VSTS webhook by @gricha in #112413
- Propagate ViewerContext in Jira Server webhook by @gricha in #112411
- Propagate ViewerContext in Jira Cloud webhook by @gricha in #112412
- Genericise repository syncing task by @wedamija in #112519
- Return
externalIdfrom OrganizationIntegrationReposEndpoint by @wedamija in #112529 - Add bitbucket, gitlab, slack to api mode features by @evanpurkhiser in #112501
- Add flags for slack + bitbucket API pipelines by @evanpurkhiser in #112497
- Add API driven pipeline for Slack by @evanpurkhiser in #112315
- Set ViewerContext on webhook handlers by @gricha in #112284
- Add API pipeline flag for github by @evanpurkhiser in #112280
- Add on-demand source context fetching from SCM integrations by @mujacica in #110324
- Add API mode support to IntegrationPipeline by @evanpurkhiser in #111454
- Add lightweight RPC method to fetch org IDs by providers by @Mihir-Mavalankar in #111528
Intercom
- Separate chat per org by @sentaur-athena in #112551
- Closing intercom session on org change by @sentaur-athena in #112549
Issue Details
- Add android native tombstones onboarding banner by @romtsn in #112478
- Add analytics for similar and merged issues drawers by @cvxluo in #112618
- Show supergroup in issue details sidebar by @scttcper in #112543
Issues
- Use new stack trace in stack trace preview by @scttcper in #111592
- Deduplicate replay-count API requests in issue stream by @scttcper in #112323
- Refactor SuspectCommits layout, clean up types by @scttcper in #111818
- Prefetch supergroup data and add stats columns to rows by @scttcper in #111719
- Simplify shared issue event rendering by @scttcper in #111769
- Recent issues with autofix view by @Zylphrex in #111617
- New stack trace component by @scttcper in #109428
Logs
- Moved LogsInfiniteTable inline with expand/contract button by @JoshuaKGoldberg in #109819
- Move continue scanning into full button by @nsdeschenes in #112351
- Add ourlogs-table-expando feature flag by @JoshuaKGoldberg in #112031
- Add inline JSON syntax highlighting for log attributes by @JoshuaKGoldberg in #111730
- Add JSON pretty-printing for log attributes by @JoshuaKGoldberg in #111077
Metrics
- Add drag-and-drop reordering to metric panels by @nsdeschenes in #112671
- Improve metrics refresh UI on narrow displays by @nsdeschenes in #112787
- Add equation support to tracemetrics by @wmak in #112609
- Add a metrics if-combinator by @wmak in #111837
- Default trace metrics aggregate to sum by @nsdeschenes in #111516
- Add refreshed trace metrics toolbar by @nsdeschenes in #111066
- Refresh metrics panels behind tracemetrics-ui-refresh flag by @nsdeschenes in #110986
- Add last seen, times seen, and attributes to metric dropdown by @nsdeschenes in #110879
- Add canary metrics for HMAC failures and unsigned Seer requests by @tnt-sentry in #110640
Monitors
- Add onboarding modal for the new alerts/monitors pages by @malwilley in #112694
- Add info hint for diff-based issue detection by @mtopo27 in #111698
Nav
- Adjust system alert layout by @natemoo-re in #112821
- Improve What's New panel and primary nav overlays by @JonasBa in #112292
- Add icon-only Feedback button to top navigation bar by @JonasBa in #111647
- Improve mobile navigation by @JonasBa in #111549
- Add cmd/ctrl+b nav toggle hotkey by @JonasBa in #111503
Notifications
- Hook into the platform in the slack send_alert step for metric laerts by @Christinarlong in #112189
- Add notification data and renderer for metric alerts by @Christinarlong in #111674
- Add threading to notification service by @Christinarlong in #110951
Np
- Adds Discord metric alert renderer by @GabeVillalobos in #112420
- Adds Discord issue renderer, updates Slack renderer tagging extraction by @GabeVillalobos in #112079
- Adds rough notification renderer for issue alerts, as a thin wrapper by @GabeVillalobos in #110929
- Adds notification platform skill for creation of new notifications, providers, and renderers by @GabeVillalobos in #109754
Occurrences On Eap
- Implement EAP query for eventstore
get_eventsby @shashjar in #112423 - Implement tagstore EAP query for group tag value iter by @shashjar in #112122
- Implement tagstore EAP query for group list tag value by @shashjar in #111963
- Implement tagstore EAP query for release tags by @shashjar in #111952
- Implement EAP query for tagstore group tag value count by @shashjar in #111868
- Implement EAP query for tagstore groups user counts (issue platform) by @shashjar in #111863
- Implement EAP query for tagstore groups user counts (errors) by @shashjar in #111861
- Implement errors EAP query for organization events tracing by @shashjar in #111093
- Implement tracing errors query by @shashjar in #110720
- Implement performance issues query for organization events tracing by @shashjar in #110723
Onboarding
- Pre-populate repo selector with full repo list by @jaydgoss in #112685
- Add onboarding docs for Vercel AI ToolLoopAgent by @constantinius in #112333
- Gate SCM onboarding flow with useExperiment hook by @jaydgoss in #112206
- Add animated Sentry logo to SCM onboarding steps by @jaydgoss in #112386
- Add Litestar as a Python onboarding platform (FE) by @sentrivana in #111607
- Added Metrics to Unity by @bitsandfoxes in #108118
- Add Litestar as a Python onboarding platform (BE) by @sentrivana in #111522
- SCM project details step UI polish and analytics by @jaydgoss in #111623
- SCM platform features step UI polish and analytics by @jaydgoss in #111529
- Add logs onboarding for Elixir by @sl0thentr0py in #110038
- SCM connect step UI polish and analytics by @jaydgoss in #111478
- Sync feature selections from context to SetupDocs URL params by @jaydgoss in #111334
- Implement SCM project details step by @jaydgoss in #111306
- Implement SCM platform & features step by @jaydgoss in #111160
- Implement SCM_CONNECT step with provider connection and repo selection by @jaydgoss in #110883
Pipeline
- Add completion view support to pipeline definitions by @evanpurkhiser in #112603
- Detect API-driven pipelines in existing callback URL by @evanpurkhiser in #111455
- Add OrganizationPipelineEndpoint for API-driven pipelines by @evanpurkhiser in #111539
- Add shared OAuth login step and redirect popup hook by @evanpurkhiser in #111577
- Add frontend pipeline framework by @evanpurkhiser in #111423
- Add API mode support to base Pipeline by @evanpurkhiser in #111422
Preprod
- Add artifact_type field to Explore UI (EME-874) by @cameroncooke in #113034
- Add settings link to snapshot PR comments by @runningcode in #112909
- Store metrics artifact type as string in EAP [backend] (EME-874) by @cameroncooke in #112905
- Auto-filter installable:true when switching to Distribution view by @mtopo27 in #112533
- Add snapshot PR comments toggle to project settings by @runningcode in #112362
- Include authToken in ProjectPreprodUploadOptions by @lcian in #112466
- Add snapshot PR comment templates by @runningcode in #112353
- Check for actual build data when showing mobile builds tab by @NicoHinderling in #112525
- Sort insight diff by total potential savings by @mtopo27 in #112476
- Add snapshot details to admin info endpoint by @NicoHinderling in #112482
- Upgrade admin panel's "rerun analysis" action to support batch (up to 100) by @NicoHinderling in #112481
- Add snapshot auto-approval for repeated PR builds by @NicoHinderling in #112421
- Add settings link to build distribution PR comments by @runningcode in #112366
- Add installable attribute to EAP alias mappings by @mtopo27 in #112363
- Split Mobile Builds settings into tabbed interface by @mtopo27 in #112151
- Register feature flag and project option for snapshot PR comments by @runningcode in #112100
- Add snapshot approval UI in header by @NicoHinderling in #111977
- Add approval API endpoint and approval info in snapshot response by @NicoHinderling in #111976
- Filter settings page builds by display type by @NicoHinderling in #112046
- Create NEEDS_APPROVAL records in status check tasks by @NicoHinderling in #111975
- Delete snapshot objectstore data on artifact deletion by @NicoHinderling in #111972
- Add app identifier to size analysis alert notifications by @mtopo27 in #111994
- Add triggered condition section for size analysis issues by @mtopo27 in #111978
- Add value, conditions, and config to size analysis evidence_data by @mtopo27 in #111923
- Add shadow taskbroker dispatch for launchpad integration by @NicoHinderling in #110602
- Use sequential (n-1) comparisons for size analysis diff monitors by @mtopo27 in #111482
- Improve Slack alert messages for size analysis monitors by @mtopo27 in #111660
- Add preprod_artifact webhooks to frontend settings UI by @cameroncooke in #111475
- Add build_distribution.completed webhook for Sentry Apps by @cameroncooke in #111474
- Add Insight Diff section to issue detail by @mtopo27 in #111357
- Add size_analysis.completed webhook for Sentry Apps by @cameroncooke in #111473
- Register preprod_artifact webhook resource and event types by @cameroncooke in #111472
- Show detector section in sidebar for size analysis issues by @mtopo27 in #111583
- Add auto-expansion of a section on arrow key navigation by @rbro112 in #111536
- Link artifact ID tags to build detail page by @mtopo27 in #111383
- Support absolute detectors from single-build path by @chromy in #111141
- Show processing state for snapshot comparisons by @NicoHinderling in #111355
- Show original filename tooltip on renamed snapshots by @NicoHinderling in #111325
- Add solo/diff toggle button to snapshot dev tools by @NicoHinderling in #111318
- Add group support to snapshots frontend by @rbro112 in #110942
- Reduce snapshots retention to 30 days by @lcian in #110988
- Add Datadog metrics for snapshot upload and diff lifecycle by @NicoHinderling in #111024
- Add group_id to all autofix.* events by @chromy in #110943
- Add git metadata and artifact IDs as tags for size analysis issues by @mtopo27 in #110854
Profiling
- New stack trace in span profile details by @scttcper in #112559
- Use spans data source for profiles search bar in EAP mode by @mjq in #111772
Repos
- Activate repo webhook and syncing task for GHE by @wedamija in #112247
- Add audit logs when auto syncing repositories take 2 by @wedamija in #112378
- Add task to periodically sync repos from github by @wedamija in #112043
- Add routings for github
installation_repositorieswebhook by @wedamija in #112226 - Add framework for scheduling tasks from a queryset on a recurring basis by @wedamija in #111958
Scm
- Add
get_git_commitandget_treefor GitLab by @billyvg in #111363 - Allow GitLab repos to be selected for Seer by @billyvg in #111446
- Show repos from other/unknown providers in the treeview component by @ryan953 in #111280
- Move static facade to module level and dynamically construct the SCM type from the provider's capabilities by @cmanallen in #111113
- Add
get_archive_linkto SCM API by @billyvg in #110987
Scraps
- Add slot component by @JonasBa in #112032
- Add indeterminate loader (again) by @natemoo-re in #112138
- Add hotkey module by @natemoo-re in #111444
- Add StatusIndicator component by @JonasBa in #110878
Search
- Add experimental "recommended" issue sort by @mrduncan in #111043
- Switch filter operator from contains to is on dropdown selection by @nsdeschenes in #111668
Seer
- Replace LLM triage with Explorer agent in night shift by @trevor-e in #112984
- Add Sentry metrics to night shift pipeline by @trevor-e in #112967
- Add ViewerContext authentication for Seer callbacks by @azulus in #112844
- Add seer-run-id-in-slack feature flag by @alexsohn1126 in #112918
- Add run ID to Seer Explorer Slack footer by @alexsohn1126 in #112835
- Add Seer admin page with night shift trigger by @trevor-e in #112822
- Re-land night shift run record writes during triage by @trevor-e in #112769
- Re-land night shift run tracking models with db_constraint=False by @trevor-e in #112768
- Add lightweight supergroups backfill task by @yuvmen in #112507
- Read Seer project preferences from Sentry DB in Sentry endpoints by @srest2021 in #111594
- Thread short-lived API token to Explorer MCP tools by @azulus in #112179
- Add dual-read helpers for Seer project preferences from Sentry DB by @srest2021 in #111591
- Distinguish legacy vs explorer autofix in agent_handoff initiator by @JoshFerge in #112575
- Add candidate issue selection to night shift by @trevor-e in #112521
- Record agent_handoff analytics in launch_coding_agents_for_run by @JoshFerge in #112516
- Add rca_source to supergroup queries with feature flag gating by @yuvmen in #112436
- Show the Seer settings link even when hideAiFeatures is enabled by @ryan953 in #112510
- Add coding_agent field to agent handoff analytics by @JoshFerge in #112491
- Add Night Shift nightly autofix cron scaffolding by @trevor-e in #112429
- Add lightweight RCA clustering endpoint integration by @yuvmen in #112229
- Enable sorting seer autofix project list by @ryan953 in #112250
- Add widget-level LLM context to dashboard widgets by @Mihir-Mavalankar in #112267
- Setup Agent bulk-edit on the Seer Autofix list page, and bring back Create PR bulk edits by @ryan953 in #112249
- Add the stopping-point field to project-specific seer settings by @ryan953 in #112232
- Wrap the seat-based wizard in a feature flag by @ryan953 in #112212
- Add preamble to structured page context markdown by @Mihir-Mavalankar in #112235
- Fall back to contextvar ViewerContext for Seer requests by @gricha in #112221
- Implement the dropdown to save defaultAutomatedRunStoppingPoint by @ryan953 in #112211
- Send structured LLMContext JSON as on_page_context by @Mihir-Mavalankar in #112200
- Improve the loading state of the Seer SCM overview area by @ryan953 in #112054
- Convert structured LLMContext JSON to markdown for on_page_context by @Mihir-Mavalankar in #112181
- Add feature flag and register Dashboard in LLM context tree by @Mihir-Mavalankar in #111973
- Send page_name in explorer chat requests from frontend by @Mihir-Mavalankar in #112124
- Send page_name in explorer chat requests by @Mihir-Mavalankar in #112065
- Add issue summary experimental flag by @JoshFerge in #112115
- Add structured LLM context system for Seer Explorer by @Mihir-Mavalankar in #111554
- Add org-level default stopping point and wire coding agent defaults into project creation by @srest2021 in #111697
- Seer Autofix Settings Overview page by @ryan953 in #110758
- Update default triggers for Code Review by @ryan953 in #111911
- Add RPC interface for retrieving the installation_id by @cmanallen in #111893
- Update Seer Settings to let people pick their preferred default agent for Autofix by @ryan953 in #111366
- Add trigger_explorer method to SeerOperator by @alexsohn1126 in #109675
- Seer Code Review Overview section by @ryan953 in #111593
- Seer SCM Overview by @ryan953 in #111343
- Rename SCM seer settings tab to Repositories by @ryan953 in #111538
- Add dual-write for Seer project preferences to ProjectOptions and SeerProjectRepository by @srest2021 in #110704
- Add feature-flags to control seer onboarding pages by @ryan953 in #111277
- Iterate on the Seer Trial page styles by @ryan953 in #111275
- Add SeerExplorerResponse notification data and Slack renderer by @alexsohn1126 in #109317
- Add SeerOperatorExplorerCache for completion hook payloads by @alexsohn1126 in #109238
- Show Upgrade Banner when on Legacy/Beta Seer by @ajay-sentry in #111056
- Add Explorer methods to SeerEntrypoint protocol by @alexsohn1126 in #109231
- Use Seer model_used response field for seer_model on GroupHashMetadata by @yuvmen in #111047
- Expose defaultCodingAgent and defaultCodingAgentIntegrationId org fields by @ryan953 in #111051
- Schedule context engine indexing hourly with load spreading by @Mihir-Mavalankar in #110886
- Add a message to seer settings when Gen AI Features are disabled by @ryan953 in #110947
- Add logging to lightweight RCA trigger flow by @yuvmen in #110930
- Add links to provider integration pages from scm treeview by @ryan953 in #110890
Settings
- Move Repositories sidebar link into the new Integrations section by @ryan953 in #112718
- Add Integrations nav section with MCP & CLI page by @dcramer in #111419
Slack
- Support unfurling Explore Metrics URLs in Slack by @DominikB2014 in #112706
- Add Slack Agent DM and assistant thread support for Seer Explorer by @leeandher in #112493
- Support unfurling Explore Logs URLs in Slack by @DominikB2014 in #112677
- Pass display type from Explore URL to chartcuterie by @DominikB2014 in #112620
- Pass timeseries data directly to chartcuterie for Explore unfurls by @DominikB2014 in #112585
- Unfurl Explore Traces URLs with chart previews by @DominikB2014 in #112020
- Add frontend pipeline step for Slack integration setup by @evanpurkhiser in #112417
- Add tags to Slack event endpoint for observability by @DominikB2014 in #112023
- Implement process_mention_for_slack task for Explorer by @alexsohn1126 in #109733
- Add Explorer support to SlackEntrypoint by @alexsohn1126 in #109569
- Add SlackMentionHandler for parsing @mentions by @alexsohn1126 in #109384
- Handle app_mention events for Seer Explorer by @alexsohn1126 in #109335
- Add staging app install button to Slack integration page by @alexsohn1126 in #110787
- Add slack api methods for thread history and reactions by @leeandher in #107785
- Add slack-staging-app feature flag and options by @alexsohn1126 in #110766
Snapshots
- Add snapshots list table to Releases page by @NicoHinderling in #112819
- Show diff_threshold in snapshot detail header by @NicoHinderling in #112740
- Run snapshot comparisons when uploads received out-of-order by @rbro112 in #112474
- Add deletion path for endpoint by @NicoHinderling in #111974
- Set nice UI for left side of header by @NicoHinderling in #111822
- Wire up status check setting fields into snapshot status_check task by @NicoHinderling in #111798
- Add status check settings frontend and flag saving by @NicoHinderling in #111794
- Backend changes to make renames use SnapshotDiffPair by @NicoHinderling in #111332
- Add L/R arrow key support for navigating variants by @rbro112 in #111227
- Make snapshots support group param by @rbro112 in #110941
Snuba
- Add a metric in
query_trace_datato see what spans reportspan.status"ok" but have an associated error by @constantinius in #112090 - Add metric for Snuba RPC read timeout errors by @kylemumma in #111215
Source Map Config Issues
- Filtering out config issues from default issues stream by @Abdkhan14 in #113031
- Adding stats to group row ui by @Abdkhan14 in #113048
- Updating title and subtitle by @Abdkhan14 in #112952
- Adding copy markdown button to troubl… by @Abdkhan14 in #112943
- Making source map doc links platform … by @Abdkhan14 in #112828
- Adding Sentry Configuration nav item under issues by @Abdkhan14 in #112811
- Implementing Impact section in issue details by @Abdkhan14 in #112782
- Implementing problem, diagnosis and troubleshooting section designs by @Abdkhan14 in #112393
- Logging extra data on occurrence trigger for UI validation by @Abdkhan14 in #112091
Source Map Issues
- Supporting count_unique aggregation on eap processing errors by @Abdkhan14 in #112385
- Adding group id and title as attr to processing error trace item by @Abdkhan14 in #112387
Spans
- Enforce max segment bytes during ingestion by @lvthanh03 in #112561
- Skip enrichment when message contains skip_enrichment=True flag by @lvthanh03 in #112024
- Flush oversized segments in chunks by @lvthanh03 in #111820
Stacktrace
- Wire SCM source context into new stack trace by @scttcper in #111770
- Add frontend hook and UI for on-demand SCM source context by @mujacica in #110327
Supergroups
- Supergroup -> issue group by @cvxluo in #112990
- Use issues search to highlight supergroup drawer issues by @scttcper in #112640
- Add checkbox to supergroup rows for bulk selection by @scttcper in #112301
- Filter supergroups to unresolved issues by @scttcper in #112383
- Show filtered vs total events in supergroup chart by @scttcper in #112215
- Add status filter to supergroups by-group endpoint by @scttcper in #112216
- Smarter group loading and match highlighting by @scttcper in #111927
- Add feedback component and experimental badge to drawer by @scttcper in #111859
- Add group id to supergroup lookup endpoint by @cvxluo in #111265
Support
- Add Intercom support widget frontend integration by @sentaur-athena in #108409
- Add Intercom backend for identity verification by @sentaur-athena in #108408
Taskworker
- Add ViewerContext propagation via context hooks by @gricha in #112217
- Update Taskbroker / Taskworker Client to Support Push Mode by @george-sentry in #112629
Text
- Add render prop pattern to Text component by @JonasBa in #110926
- Add variant="inherit" to Text primitive by @JonasBa in #110945
Tracemetrics
- Add group by selector to equations by @narsaynorath in #113051
- Enable aggregate panel to show equation result by @narsaynorath in #112966
- Do not allow deletion of metrics used in equations by @narsaynorath in #112893
- Disable the samples panel for equations by @narsaynorath in #112959
- Use reference map to render equations by @narsaynorath in #112817
- Add column sorting to samples table by @nsdeschenes in #112577
- Allocate stable labels for metric queries by @narsaynorath in #112675
- Add skeleton for equation builder in Explore by @narsaynorath in #112504
- Bypass metric field validation for equations by @narsaynorath in #112479
- Refresh the metrics refresh by @nsdeschenes in #111920
- Add new and reorder columns by @nsdeschenes in #112027
- Add feature flag for equations in metrics explorer by @narsaynorath in #112025
- Update ArithmeticBuilder to allow for REFERENCE tokens by @narsaynorath in #111956
- Display metric name in aggregates table when no group by selected by @nsdeschenes in #111513
- Add trace metric bytes DataCategory to stats page by @k-fish in #111431
- Show approximation for tracemetrics total count by @narsaynorath in #111356
- Add unreal, unity to supported platforms by @narsaynorath in #111361
- Add referrer for raw count normal extrapolated request by @narsaynorath in #111335
- Show all attributes in group by for multi metrics by @narsaynorath in #111012
- Add tracemetrics to dashboard global filters by @k-fish in #110781
Ui
- Migrate jest from babel-jest to @swc/jest by @scttcper in #112895
- Port eslint-plugin-sentry to this repo by @scttcper in #112081
Viewer Context
- Restore ViewerContext from JWT in middleware by @gricha in #112875
- Add JWT encode/decode for ViewerContext propagation by @gricha in #112765
Workflow
- Add index on GroupOpenPeriodActivity.date_added by @kcons in #111968
- Make OrganizationIncidentDetailsEndpoint.get support single-written workflows by @kcons in #111588
- Add flag to enable workflow engine version of ProjectRulesEndpoint.get by @kcons in #111230
Workflow Engine
- Add pagination captions to list views by @malwilley in #112857
- Only link workflows to the IssueStream by @saponifi3d in #112276
- Action Filter cache invalidation by @saponifi3d in #111060
- Add a cache for ActionFilters by @saponifi3d in #110507
Workflows
- Start using the action filters cache by @klochek in #111817
- Make thresholds in prune_old_fire_history options by @kcons in #111575
- Add periodic WorkflowFireHistory backlog clean-up task by @kcons in #111458
- Add flag to enable workflow engine version of ProjectRuleDetailsEndpoint.get by @kcons in #111330
- Add index on WorkflowFireHistory.date_added by @kcons in #111026
- Add doc to clarify the current implementation strategy of the API backport project by @kcons in #111006
Other
- (ai-detected-issues) Add new AI detected issue group types by @roggenkemper in #112848
- (ai-monitoring) Fetch model context size and rename task to fetch_ai_model_info by @constantinius in #112656
- (auto-save) Restore focus to field after auto-save completes by @TkDodo in #110834
- (claude) Default workspace_name to 'default' by @sehr-m in #110950
- (claude integration) Return full text block alongside URL by @sehr-m in #110953
- (command-palette) Add feedback button and preload image in empty state by @JonasBa in #111555
- (core-ui) Add ClearButton to CompositeSelect by @nsdeschenes in #111706
- (dashboard) Adds warning messages on generated dashboard errors when caught in the frontend by @edwardgou-sentry in #111531
- (data-forwarding) Migrate setup form to useScrapsForm by @JonasBa in #108805
- (debug-files) Show console symbol sources for orgs with console access by @JoshuaMoelans in #109781
- (deletions) Add CLI command to list and run scheduled deletions by @leeandher in #112018
- (dynamic-grouping) Show supergroup membership on issues stream by @scttcper in #111249
- (eventstore) Implement
get_event_by_idas EAP query by @shashjar in #110925 - (explorer) Add relevant repos to explorer by @sehr-m in #111046
- (feature-showcase) Redesign and rewrite FeatureTourModal as FeatureShowcase by @malwilley in #112532
- (features) Add data browsing widget unfurl feature flag by @DominikB2014 in #111897
- (feedback) Redirect to the feedback details page when given a projectName & eventId by @ryan953 in #111931
- (github-enterprise) Route installation_repositories to control silo by @wedamija in #112245
- (identity) Add OAuth2ApiStep for API-driven OAuth2 flows by @evanpurkhiser in #111578
- (incidents) Add is_metric_subscription_allowed; use it by @kcons in #112241
- (issue-detection) Register ai-issue-detection feature flag by @roggenkemper in #113062
- (issueList) Add group_ids to issues.viewed by @mrduncan in #111551
- (llm-detection) Accept additional_attributes param in get_trace_waterfall by @nora-shap in #112239
- (llm-detector) Add beta badge for AI detected issues by @roggenkemper in #112686
- (metrcis) Add formula -if combinators by @wmak in #112016
- (metric-issues) Use placeholder loaders for attribute comparison… by @malwilley in #111676
- (middleware) Enable viewer context middleware by default by @gricha in #112293
- (native) Log symbolicator response on empty thread list by @jjbayer in #110976
- (notificaitons) Add threading to platform providers by @Christinarlong in #109248
- (notification) Simplify renderer and data to be already processed text by @Christinarlong in #112182
- (oauth) Show public app device flow URLs by @dcramer in #111655
- (objectstore) Enable token generator in objectstore client by @matt-codecov in #105707
- (pageframe) Adopt
TopBar.SlotinLayout.Titleby @natemoo-re in #112515 - (perforce) Implement get_file() for source context by @mujacica in #111768
- (performance) Add search support to EAP txn summary sample events by @mjq in #111349
- (project) Increase securityTokenHeader max_length from 20 to 64 by @sentry-junior in #112483
- (prompts) Register android tombstones onboarding prompt by @romtsn in #112477
- (refactor) Move common exceptions out of the discover db by @manessaraj in #111713
- (releases) Cache calls to compare-commits by @armenzg in #112494
- (replay) Add a button to toggle the replay-details layout between the default & video-only by @ryan953 in #111944
- (replays) Make bulk delete API endpoints public by @billyvg in #111679
- (searchbar) Sort value suggestions by fuzzy match relevance by @scttcper in #111037
- (seer agent) Add integration button to handoff dropdown by @sehr-m in #111499
- (seer-slack) Check channel type for correct history scope before API call by @alexsohn1126 in #112371
- (sentry apps) Add circuit breaker into webhook code by @Christinarlong in #111723
- (spans-migration) Add a flag bypass for self hosted migrations by @nikkikapadia in #111150
- (symbolicator) Pass objectstore token to symbolicator by @matt-codecov in #112058
- (test) Add
it.isKnownFlakefor opt-in stress-testing flaky Jest fixes by @JoshuaKGoldberg in #111860 - (timeseries) Add 6h interval by @wmak in #112678
- (trace) Make trace ID clickable in span attributes table by @matejminar in #111395
- (uptime) Move suggest assertions button to verification section by @jaydgoss in #109106
- (usageStats) Add new
no_parent_spanclient discard reason by @Lms24 in #112937 - (utils) Add ContextPropagatingThreadPoolExecutor and S016 lint rule by @gricha in #111451
- (wmak) Use non strings in group by by @wmak in #111753
- Add referrer tag to snuba timeout metric by @kylemumma in #112826
- Add repo indexing job by @shruthilayaj in #112136
- Add ViewerContext middleware for API requests by @gricha in #112172
- Add ViewerContext dataclass and contextvar module by @gricha in #112156
- Add EAP double read for release health data by @noahsmartin in #111229
- Let SCM platform support self-hosted GitLab by @jacquev6 in #111061
- Remove Legacy Seer toggle BE code and update preflight checks by @ajay-sentry in #111049
- Add
seer-gitlab-supportfeature flag by @billyvg in #110659
Bug Fixes 🐛
Aci
- Serialize activities correctly by @ceorourke in #112998
- Add Slack Staging action type to new alert builder by @malwilley in #112886
- Link to issue page instead of specific event in automation history by @malwilley in #112942
- Negative margin was too large by @saponifi3d in #112946
- Handle missing resolve condition in serializer by @kcons in #112760
- Surface API errors for alert form test notifications by @malwilley in #112818
- Fix bug with github action settings by @saponifi3d in #112742
- Fix issue where we showed the first triggered condition by @saponifi3d in #112746
- Add support for an empty conditionGroup in the API for the Error detector by @saponifi3d in #112641
- Change response from 404 to 400 when there's an issue with billing metric alerts by @saponifi3d in #112614
- Fix issue with manual cron monitor selected project by @malwilley in #112602
- Selected project state should react to form changes by @malwilley in #112484
- Gracefully handle missing actions in Alerts UI by @malwilley in #112070
- Handle missing sentry app installation by @ceorourke in #112192
- Handle invalid project IDs in monitor form by @malwilley in #112220
- Preselect current detector type when clicking create monitor by @malwilley in #112178
- Standardize monitor/alert form behavior on save by @malwilley in #111490
- Link from legacy alerts should go to /monitors/alerts by @malwilley in #111962
- Show empty state in Alerts list projects column when no detectors are connected by @malwilley in #111732
- Include project alerts on monitor list page by @malwilley in #111690
- Invalidate Connected Alerts query cache on drawer changes by @scttcper in #111590
- There was a bug that
Rulewas being used, but only imported as a type by @saponifi3d in #111646 - Translate percent threshold value correctly for metric monitors by @malwilley in #111259
- Increase test coverage and fix inconsistencies by @ceorourke in #110825
- Fix detection_type in the serializer for detectors which have conflicting properties by @malwilley in #111170
- Parse and persist owner field by @ceorourke in #110807
Agents
- Make negative cost tooltip hoverable for clickable link by @obostjancic in #111991
- Clarify token counting in LLM onboarding instructions by @obostjancic in #111989
- Scope enrichment query to gen_ai spans only by @obostjancic in #111614
- Enable horizontal scroll in trace drawer on mobile by @priscilawebdev in #110734
Ai Conversations
- Improve XML tag rendering in AI span details by @obostjancic in #112346
- Escape conversation IDs in query strings by @vgrozdanic in #112455
- Use all projects for shared conversation links by @obostjancic in #112343
Ai Insights
- Token types widget by @obostjancic in #111403
- Update agent monitoring onboarding snippets by @obostjancic in #111310
- Use AIContentRenderer for conversation table tooltips by @obostjancic in #111285
- Token input/output count by @obostjancic in #111284
- Sort conversation spans by start timestamp by @obostjancic in #111185
- Traces table by @obostjancic in #111064
Alerts
- Fallback to transactions dataset for performance alerts by @nikkikapadia in #112802
- Fix trigger ordering in workflow-based AlertRule serializer by @kcons in #112727
- Make ProjectRuleStatsIndexEndpoint 400 on a bad date range by @kcons in #112505
- Better messaging for missing snoozeCreatedBy by @kcons in #112506
- Reject EAP alerts with invalid time windows by @kcons in #112322
- Incorporate EventsAnalyticsPlatform into our downgrade checking by @kcons in #112061
- Fix alert link unfurling URL by @malwilley in #111033
Apigateway
- Don't count cancelled requests as failures by @gi0baro in #112089
- Async/sync flow patches by @gi0baro in #111993
Attachments
- Use NOW() + 30 days as db_default for date_expires by @jan-auer in #112342
- Pass attachment retention_days to objectstore by @jan-auer in #111879
Auth
- Add diagnostic logging to ViewerContextAuthentication by @azulus in #113015
- Block token creation/modification during impersonation by @michelletran-sentry in #110654
Autofix
- Filter out autofix code mappings with bad repos (inactive, no integration, etc.) by @srest2021 in #112825
- Remove autofixEnabled check from project setup guard by @chromy in #112792
- Check preference repositories instead of tuning for Seer autofix onboarding check by @srest2021 in #112726
- Show Add Integration CTA when no coding agents installed by @JoshFerge in #112625
- Dual-delete Seer preferences for disabled repositories by @srest2021 in #112503
- Validate Seer-supported SCM providers for Seer project preferences by @srest2021 in #112518
- On repo hide, delete corresponding SeerProjectRepository rows by @srest2021 in #112266
- Only write handoff.auto_create_pr ProjectOption if not default by @srest2021 in #112208
- Handle NoneType project preferences from Seer API by @sentry in #112009
- Restarting root cause from error should use new run by @Zylphrex in #111995
- Github webhook analytics for explorer autofix by @Zylphrex in #111913
- Remove broken docs link from GitHub Copilot CTA by @JoshFerge in #111298
- Better loading states for agent handoffs by @Zylphrex in #111107
Billing
- Updated name to application metrics and fixed tests(BIL-2235) by @krithikravi in #113002
- Subscription UI misalignment by @brendanhsentry in #112485
- Fix flaky paymentForm test by awaiting button enabled state by @hubertdeng123 in #112188
- Update ent trial copy by @brendanhsentry in #110904
Cells
- Invalid invitation token or context always 404s by @lynnagara in #112633
- Update controlsiloUrlPatterns by @evanpurkhiser in #111751
Chartcuterie
- Scale up font sizes for larger Explore chart canvas by @DominikB2014 in #112785
- Format y-axis labels in Explore unfurl charts by @DominikB2014 in #112719
- Avoid plottable imports that break Node VM sandbox by @DominikB2014 in #112668
Ci
- Use fixed restrict key in migrations drift pg_dumpall by @trevor-e in #112731
- Bandaid fix flaky "Event loop was closed" in CI by @kenzoengineer in #112133
- Use ephemeral ports for relay xdist to avoid port conflicts by @mchen-sentry in #112026
- Let precommit format json files by @TkDodo in #111874
- Prevent kafka consumer teardown hang with xdist by @mchen-sentry in #111261
- Retry relay container start on port conflict by @mchen-sentry in #111041
Claude Integration
- Update to newest claude headers by @sehr-m in #112715
- Use installation path for Claude Code in explorer handoff by @sehr-m in #110952
Cmdk
- Tie-break equal search scores by length by @JonasBa in #112845
- Filter out async resource actions with 0 results by @JonasBa in #112613
Codeowners
- Add coverage for markdownTextArea and clean baseline by @chromy in #112339
- Show all owner names in avatar stack tooltip by @scttcper in #110946
- Stringify owner IDs and add typed schema structures by @scttcper in #110604
Coding Integrations
- Allow model specification based on api key by @sehr-m in #112856
- Fix add integration button on safari by @sehr-m in #112176
- Add catching for integration not found error by @sehr-m in #111691
Conversations
- Move detail breadcrumbs to page frame top bar by @priscilawebdev in #113035
- Prevent onboarding from reappearing on empty time ranges by @obostjancic in #112789
- Handle [Filtered] values in conversation bubbles by @obostjancic in #112092
- Sort list by timestamp in frontend by @shellmayr in #111785
- Paginate conversation details to fetch all spans by @obostjancic in #111605
Dashboards
- Use null instead of undefined for widget limits on TABLE/BIG_NUMBER by @gggritso in #112921
- Show breadcrumb separator in page frame by @priscilawebdev in #113041
- Skip dashboard API requests when user has no project access by @edwardgou-sentry in #112855
- Disable Open in Explore for multi-query logs widgets by @DominikB2014 in #112832
- Rebalance chart interval options and defaults by @gggritso in #112562
- Surface lastVisited field in API response by @narsaynorath in #112796
- Send current dashboard state on Seer follow-up messages by @edwardgou-sentry in #112601
- Add context logging for widget mismatch errors by @edwardgou-sentry in #112608
- Apply filters correctly navigating between dashboards by @mjq in #112586
- Add http_error_count_percent to function blocklist by @edwardgou-sentry in #112470
- Update AI prebuilt dashboards to use response model instead of request model by @edwardgou-sentry in #112498
- Improve wrapping of global filter triggers by @gggritso in #112471
- Send null legendType when legend breakdown is disabled by @DominikB2014 in #112467
- Align sortable widget builder visualize ghost field to original field by @nikkikapadia in #111934
- Render star icon header for is_starred_transaction column by @DominikB2014 in #111885
- Numeric literal not registering in equations builder by @nikkikapadia in #111793
- Stop passing list page query params to dashboard details by @DominikB2014 in #111815
- Preserve saved global filters when URL has other filter params by @DominikB2014 in #111800
- Hide prebuilt dashboards from All Dashboards list by @DominikB2014 in #111709
- Copy page filters when duplicating prebuilt dashboards by @gggritso in #111534
- Text widget unknown code block language by @nikkikapadia in #111621
- Gate 'View span samples' cell action behind visibility-explore-view by @skaasten in #111620
- Disable edit button for pre-built dashboard widgets in fullscreen by @DominikB2014 in #111616
- Blank visualize fields on tables/big numbers from text widgets by @nikkikapadia in #111440
- Allow number-typed tags in categorical bar X-axis by @gggritso in #111466
- Fix global filter showing "All" instead of selected value by @gggritso in #111514
- Ensure consistent casing in pre-built dashboard widget titles by @gggritso in #111515
- Clean up column aliases and chart legends in prebuilt dashboards by @gggritso in #111449
- Align backend overview queries widget filters with queries dashboard by @DominikB2014 in #111433
- Use first-appearance order for chart axis assignment by @DominikB2014 in #111411
- Skip conflict warning for inactive global filters by @mjq in #111385
- Fix performance score widget layout and sizing by @gggritso in #111258
- Handle null/undefined at top level in toPythonString by @DominikB2014 in #111297
- Replace ugly red dashboard widget error states by @gggritso in #111140
- Cap global filter trigger width to prevent layout shifts by @gggritso in #111238
- Set breakdown legend widget limit to 3 in prebuilt configs by @DominikB2014 in #111291
- Default to 10 dashboards when planDetails is null by @DominikB2014 in #111200
- Fixes Create Dashboard with Seer button styling clashing with experimental badge by @edwardgou-sentry in #111196
- Fix double nested query param when creating dashboard by @edwardgou-sentry in #111197
- Pass widget and dashboardFilters to getFieldRenderer in all dataset configs by @DominikB2014 in #111194
- Stop table rows inflating to fill widget by @priscilawebdev in #111182
- Show hidden dashboards in linked dashboards list by @DominikB2014 in #111108
- Populate linked dashboard in widget builder edit modal by @DominikB2014 in #111085
- Copy saved filters when duplicating prebuilt dashboards by @gggritso in #111017
- Prevent double HTML-escaping in chart tooltips by @gggritso in #111022
- Widget footer table errors on missing value by @DominikB2014 in #111016
- Fix empty interval in generated dashboards by @edwardgou-sentry in #110998
- Disambiguate unaliased filters in widget legends by @gggritso in #110908
- Prevent long dashboard names from overflowing in list view by @gggritso in #110828
- Use firstTransactionEvent for overview onboarding conditions by @gggritso in #110913
- Use normalizeUrl when navigating after pre-built dashboard duplication by @gggritso in #110920
- Skip flakey widget builder test by @nikkikapadia in #110980
- Preserve group-by when saving logs query as widget by @JoshuaKGoldberg in #110855
- Reduce max fractional digits for number type to 4 by @DominikB2014 in #110858
- Consolidate HTTP status code queries into single query by @DominikB2014 in #110884
Deletions
- Delete GroupEnvironment before Environment during org deletion by @swartzrock in #112868
- Avoid DoesNotExist crash when FK target is already deleted by @swartzrock in #112375
Demo Mode
- Restrict GroupAi endpoints to demo orgs only by @obostjancic in #111509
- Block demo users from creating organizations by @obostjancic in #111507
Detectors
- Surface API error messages for cron detector creation by @malwilley in #112630
- Make AlertRuleDetector.objects filter out pending deletion Detectors by default by @kcons in #112550
- Ensure metric Detector deletion cleans up the AlertRule by @kcons in #112425
Docs
- Replace generic_metrics dataset with events_analytics_platform by @ceorourke in #112480
- Fix workflow target type unassigned API docs by @ceorourke in #111166
Eap
- Handle contexts in trace-item attributes by @wmak in #112524
- Declare http.response_status_code as integer attribute by @DominikB2014 in #111232
- Replace exclusive time as attribute for count functions by @mjq in #111176
Explore
- Increase logs infinite query maxPages when we don't have many rows locally by @JoshuaKGoldberg in #112691
- Fix attribute breakdowns tooltip caching stale params and losing values by @nsdeschenes in #112590
- Add !has filter when drilling down into no value group by @SafinMahmud in #110404
- Derive default chart type for explore Slack unfurls by @DominikB2014 in #112717
- Pass sort param for group-by explore Slack unfurls by @DominikB2014 in #112704
- Disable metric selector highlight scrolling by @nsdeschenes in #111233
- Contain traces table overflow by @nsdeschenes in #111183
- Gate explore links behind visibility-explore-view by @skaasten in #111523
- Always show selected metric first in metric selector by @nsdeschenes in #111448
- Confidence footer messages should pluralize zero by @narsaynorath in #111436
- Try catch the entire migration by @wmak in #111321
- Try catch the snuba call by @wmak in #111214
- Migration bug by @wmak in #111149
- Remove empty field params from Explore URL by @nsdeschenes in #110655
Grouping
- Fix ip parameterization tests by @lobsterkatie in #112637
- Fix IPv6 parameterization by @lobsterkatie in #111979
- Handle callback false positives in parameterization by @lobsterkatie in #111948
- Fix and expand hex parameterization by @lobsterkatie in #111969
- Fix git sha parameterization test by @lobsterkatie in #111964
- Fix int parameterization bugs by @lobsterkatie in #111870
- Fix kitchen time regex bugs by @lobsterkatie in #111807
Incidents
- Compute resolution correctly in metric issue detector by @kcons in #112623
- Fix 60x resolution inflation when switching to DYNAMIC detection without explicit time_window by @kcons in #112695
Insights
- Handle null span.group in Backend Insights widgets by @gggritso in #112379
- Link trace table on AI agent dashboard to trace view by @DominikB2014 in #111438
- Show <0.0001 for very small numeric values instead of 0 by @gggritso in #111228
- Right-align perf score empty state in transactions table by @gggritso in #111222
- Use span.duration in HTTP and FE dashboards by @mjq in #111153
- Use span.duration in Queries dashboards by @mjq in #111125
- Respect usePlatformizedView=0 query param by @DominikB2014 in #111094
- Filter SDK update alert by package name by @priscilawebdev in #110968
- Fix agents trace table horizontal overflow and empty state layout by @priscilawebdev in #110843
Integrations
- Hide Fix with Seer button on Slack unfurls by @leeandher in #112940
- Set sample_rate=1.0 on repo sync metrics by @wedamija in #112861
- Fix security vulnerabilities in Jira by @ceorourke in #112409
- Handle null items in organization integrations serialization by @leeandher in #112391
- Disallow modifying a repo's integration by @cmanallen in #111739
- Handle forbidden errors in integration proxy by @chromy in #111123
- Handle unauthorized and rate-limited errors in integration proxy by @chromy in #111030
Issues
- Hide line numbers on non-in-app stack trace frames by @scttcper in #112885
- Remove unsed group prop from ContextCard by @scttcper in #112816
- Exclude gen_ai ops from consecutive HTTP detector by @mrduncan in #112517
- Prevent double fetch of group search view endpoint by @scttcper in #112324
- Guard against NaN in supergroup row stats during loading by @scttcper in #112294
- Include exception header in copy-as-text for new stack trace by @scttcper in #111965
- Redesign new stack trace grid by @scttcper in #112059
- Avoid supergroup refetches on row removal by @scttcper in #111865
- Add stack trace column gap between coverage border and source code by @scttcper in #111556
- Move coverage legend above stack trace by @scttcper in #111494
- Apply issue.id filter to postgres queryset candidates by @scttcper in #110757
Logs
- Adjust back-to-top containers to window width resize by @JoshuaKGoldberg in #112374
- Don't render numbers with >13 digits using commas by @JoshuaKGoldberg in #112354
- Port log detail buttons to Button priority=transparent by @JoshuaKGoldberg in #111824
- Prevent cell action menu clicks from toggling row visibility by @JoshuaKGoldberg in #111717
Metrics
- Debounce metric selector attribute queries by @nsdeschenes in #112834
- Prevent metric selector hover from stealing search input focus by @nsdeschenes in #111292
Modal
- Avoid modal shift by @natemoo-re in #111666
- Restore focus to trigger element when modal closes by @JonasBa in #111542
Nav
- Match secondary page-frame nav link :active color to primary by @JonasBa in #111664
- Replace aria-selected with aria-current on navigation links by @JonasBa in #111278
- Cap list item height for page-frame secondary nav variants by @JonasBa in #111195
- Update stale route links causing unexpected navigation redirects by @JonasBa in #110498
Notifications
- Handle null provider in organization integrations filter by @mtopo27 in #112368
- Update alert rule URLs to use /issues/alerts/ prefix by @JonasBa in #110499
Np
- Updates issue notification data factory to select correct handler class by @GabeVillalobos in #112892
- Adds attachment to Slack render type, updates metric renderer by @GabeVillalobos in #112312
- Updates IssueNotificationData, render logic to correctly extract action data by @GabeVillalobos in #111689
Onboarding
- Add step for OpenAI based framework for conversation ID sources by @constantinius in #112781
- Change agent monitoring empty state to use openai instead of openai-agents by @constantinius in #112344
- Pass accessibleOnly to SCM repo search by @jaydgoss in #111895
- Wrap connected tag in Container to constrain width by @jaydgoss in #111936
- Handle repo selection race with background link_all_repos by @jaydgoss in #111716
- Reset downstream state when repository changes by @jaydgoss in #111479
Performance
- Restore feature parity on EAP Sampled Events tab by @mjq in #111891
- Bring back user column on segment span tables by @mjq in #111351
- Use spans dataset for EAP txn summary search bar by @mjq in #111299
Pipeline
- Redirect to org picker when API pipeline is active during GitHub install by @evanpurkhiser in #112941
- Handle pipeline error responses in usePipeline hook by @evanpurkhiser in #112932
- Add CSP nonce to trampoline inline script by @evanpurkhiser in #112149
- Typing in oauth2 by @evanpurkhiser in #111754
- Handle deleted provider model in unpack_state by @evanpurkhiser in #111680
Preprod
- Hide approve button on status check when snapshots already approved by @NicoHinderling in #112978
- Reapply snapshot PR comment task with TASKWORKER_IMPORTS fix by @runningcode in #112900
- Use odiff CLI mode to work around server-mode false match bug by @NicoHinderling in #112829
- Log when PR comment is skipped due to no installable artifacts by @runningcode in #112780
- Allow branch ref ellipsis in mobile builds table (EME-882) by @cameroncooke in #112774
- Add organization_slug to snapshot log statements by @NicoHinderling in #112499
- Add tab=size to size status check settings URL by @mtopo27 in #112352
- Use RPC service for cross-silo user lookup in snapshot endpoint by @NicoHinderling in #112129
- Use recompare endpoint and add user-facing status check rerun by @NicoHinderling in #112084
- Speed up error page on snapshots and improve error UI by @NicoHinderling in #112076
- Exclude snapshot artifacts from size status check (EME-962) by @runningcode in #111981
- Post NEUTRAL status check when all artifacts are skipped by @mtopo27 in #111811
- Prefer display_name for snapshot sidebar labels by @runningcode in #111779
- Align relative_diff extract_value with frontend percentage convention by @mtopo27 in #111682
- Differentiate snapshot status check when base_sha is unset by @NicoHinderling in #111658
- Show total image count in snapshot sidebar sections by @NicoHinderling in #111576
- Use content_hash as canonical image key for deduplication by @NicoHinderling in #111467
- Fix typecheck errors from monitor filters reland by @chromy in #111142
Profiling
- Render flamechart title only in top bar by @JonasBa in #113018
- Query
spansinstead ofdiscoveron landing page by @mjq in #112251
Releases
- Support environment filter in the query param by @skaasten in #112805
- Validate project access in release details endpoint by @michelletran-sentry in #112831
- Prevent false positive regressions when
follows_semverflips after resolution by @shashjar in #111584 - Add gap between release detail header action groups by @scttcper in #111581
Replays
- Use Dataset enum instead of string comparisons in replay counts by @scttcper in #111954
- Update stats link to new path by @priscilawebdev in #111778
Repos
- Make it clearer when repos are disabled or connected properly by @ryan953 in #111764
- Filter null integrations in useScmIntegrationTreeData by @ryan953 in #110868
Scraps
- Status indicator layering by @natemoo-re in #112197
- Omit
typefromSVGIconPropsby @natemoo-re in #111353
Search
- Clarify is:linked/is:unlinked filter descriptions by @cvxluo in #111224
- Render negated multi-value filters with and by @nsdeschenes in #111203
- Assign return value of date.replace() in parse_iso_timestamp by @karesansui-u in #110504
Seer
- Use standard hotkey for minimize behavior, remove
tabhijacking by @natemoo-re in #112993 - Feature flag Seer RPC preference reads by @srest2021 in #112865
- Dont show the Seer subscription banner to orgs with managed subscriptions by @ryan953 in #112810
- Set a min height for the virtual scrolling Code Review settings table by @ryan953 in #112814
- Prevent horizontal scrollbar flash on block entry animation by @aliu39 in #112823
- Clear cache for /seer/onboarding-check/ api response, and iterate on seer config reminder by @ryan953 in #112643
- Decouple create-pr setting from stopping point by @ryan953 in #112646
- Convert Seer Repo Details form to new form system, clear onboarding-check cache by @ryan953 in #112645
- Add links to manage your agent integrations, by @ryan953 in #112642
- Populate referrer field in agent_handoff analytics from launch path by @JoshFerge in #112523
- Make widget conditions readable for the Seer Explorer agent by @Mihir-Mavalankar in #112502
- Fix spacing on the Seer overview page by @ryan953 in #112407
- Dual-delete Seer project preferences on integration uninstall by @srest2021 in #112296
- Add dual-write when project preference doesn't exist, and pass full preference to autofix request by @srest2021 in #111966
- Don't read from org defaults when creating default project preference by @srest2021 in #111967
- Align project grouping record deletion with Seer API by @sentry in #111756
- Fix a typo, no dash by @ryan953 in #111558
- Render explorer panel when page-frame feature is enabled by @JonasBa in #111502
- Fix race condition in Seer settings dual-write to Sentry DB by @srest2021 in #111477
- Fix tab normalization so Seer Settings tab hrefs are correct by @ryan953 in #111279
- Remove noisy capture_exception for expected ObjectDoesNotExist by @aliu39 in #111257
- Handle missing OrganizationMember in collect_user_org_context by @aliu39 in #111255
- Rename Autofix Handoff option to be: No Handoff by @ryan953 in #111118
- Handle enum deserialization in autofix tasks by @sentry in #110959
Seer Explorer
- Display correct label for metrics queries by @isaacwang-sentry in #111810
- Prevent optimistic state clearing on rethink with ame message by @Mihir-Mavalankar in #111721
- Keep optimistic thinking block until assistant responds by @Mihir-Mavalankar in #111685
Settings
- Portal SettingsPageHeader action to TopBar in page frame layout by @priscilawebdev in #112771
- Surface slug validation errors on org settings form by @cvxluo in #112556
- Invalidate cache in notification settings by @natemoo-re in #112161
- Widen teams table actions column by @cvxluo in #111683
Slack
- Update explore unfurl chart size to 1200x400 by @DominikB2014 in #112842
- Include y-axis aggregate in Explore unfurl title by @DominikB2014 in #112693
- Pass interval param through Explore unfurl URL parsing by @DominikB2014 in #112676
- Cast user id to string in set_user call by @DominikB2014 in #112534
- Use set_user for user context in Slack event webhook by @DominikB2014 in #112530
Snapshots
- Fix staff auth blocking initial size comparison selection by @NicoHinderling in #112739
- Disable CSS animations for snapshot testing by @rbro112 in #111485
- Use explicit HEAD rather than merge commit for frontend snapshots by @rbro112 in #111202
Stories
- Adjust search scroll behavior by @natemoo-re in #112045
- Avoid circular dependencies on
Buttonby @natemoo-re in #112039
Supergroups
- Supergroup drawer checkbox, closing fixes by @scttcper in #112999
- Improve backfill task resilience and observability by @yuvmen in #112968
- Scope matched groups query to current page by @scttcper in #112864
- Filter resolved groups from Seer response by @scttcper in #112403
- Use placeholder data to avoid loading flash on group changes by @scttcper in #112202
Test
- Stabilize flaky ResultsSearchQueryBuilder spec by @JoshuaKGoldberg in #111916
- Stabilize flaky allMonitors select all query results test by @JoshuaKGoldberg in #111901
- Stabilize flaky EventsSearchBar has: dropdown test by @JoshuaKGoldberg in #111903
- Stabilize flaky SpansSearchBar onSearch test by @JoshuaKGoldberg in #111904
- Stabilize flaky EventReplay inline onboarding test by @JoshuaKGoldberg in #111902
- Stabilize flaky useReplaysFromIssue assertion test by @JoshuaKGoldberg in #111899
- Open overlays immediately when in test mode by @JoshuaKGoldberg in #112196
- Upgrade framer motion, Disable animations in tests by @scttcper in #112270
- Stabilize flaky EventGroupingInfo rendering test by @JoshuaKGoldberg in #111906
Tests
- Fix flaky AI conversations tests exceeding Snuba retention by @mchen-sentry in #112612
- Fix flaky homepage_query bucket count assertion by @mchen-sentry in #111148
Trace
- Preserve EAP transaction parentage by @nsdeschenes in #112492
- Remove trace spans format by @wmak in #111088
- Retry trace endpoints with wider window when response is empty by @nsdeschenes in #110634
- Improve mobile experience for AI spans view by @priscilawebdev in #111181
- Add sentry dependency to the explore migration by @wmak in #111013
Tracemetrics
- Pass draggable attributes to drag button by @narsaynorath in #112981
- Prevent header text wrapping in samples table during loading by @nsdeschenes in #112576
- Allow delete for big number when more than 1 field by @narsaynorath in #111791
- Prevent widget builder from querying before ready by @narsaynorath in #111665
- Update aggregate defaults in dashboards by @narsaynorath in #111521
- Check type and unit objects for yAxis by @narsaynorath in #111132
- Legend labels should be labelled uniquely with different aggs by @narsaynorath in #111114
- Open in explore for multi metrics opens each by @narsaynorath in #110993
- Update filter bar to handle multiple metrics by @narsaynorath in #111011
- Support multi metric selection in y-axes by @narsaynorath in #110983
Typing
- Type post-process by @thetruecpaul in #112203
- Codemod
-> Noneto a bunch of tests by @thetruecpaul in #111812
Ui
- Fix the logs page divider by @priscilawebdev in #113024
- Fix "Missing queryFn" error in useAggregatedQueryKeys by @scttcper in #112488
- Remove overflow hidden from GuidedSteps StepDetails by @priscilawebdev in #112336
- Increase node memory limit locally, decrease ci by @scttcper in #112066
- Prevent code block overflow in GuidedSteps onboarding by @nikolovlazar in #111657
- Use design system Text components for organization role field by @JonasBa in #111624
- Preserve Seer paths in URL normalization by @scttcper in #111317
- Preserve seer paths in url normalization by @scttcper in #111322
- Fix ScrollCarousel story crash in production by @priscilawebdev in #111184
Workflow
- Replace
getSantrywith dedicated GH app for api schema workflow by @Jeffreyhung in #111720 - Prevent IndexError when serializing workflows without WDCGs by @kcons in #110915
Workflows
- Don't return Workflows while they're being deleted by @kcons in #112541
- Rule.status derived from snooze, not Workflow.status by @kcons in #112302
- Add detector group caching in ensure_association_with_detector by @klochek in #111714
- Add single-written workflow engine support to ProjectAlertRuleDetailsEndpoint by @kcons in #111379
- Make TTL a definitional part of CacheMapping rather than an optional param by @kcons in #111376
- Don't crash when no action filter are provided by @kcons in #110905
Other
- (_admin) Dedupe GroupSubscription conflicts during user merge by @billyvg in #111566
- (admin) Use supported Sentry app badge variant by @dcramer in #112086
This changelog has been truncated. See the full changelog for all changes.