Feature26.4.0
Version 26.4.0
Sentry 26.4.0 introduces numerous features across alerts, workflows, autofix, and monitoring including created_by search filters, inline environment creation, improved alert UI, enhanced AI insights, and better agent monitoring support for Deno and Bun. The release also adds metric chart improvements, dashboard updates, and better handling of autofix phases and PR creation workflows.
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.
alertsworkflowsautofixmonitoringapiui
Source: original entry ↗