Sentry 26.4.0

26.4.0
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_expires column 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-generate flag 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_message fingerprint 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 externalId from 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_events by @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_repositories webhook by @wedamija in #112226
  • Add framework for scheduling tasks from a queryset on a recurring basis by @wedamija in #111958
Scm
  • Add get_git_commit and get_tree for 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_link to 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_data to see what spans report span.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_id as 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.Slot in Layout.Title by @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.isKnownFlake for 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_span client 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-support feature 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 Rule was 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

View original

Upgraded? How did it go?

Discussion