New Features ✨
Aci
- Require at least one connected monitor in the alert builder by @malwilley in #113246
- Add
MovedBanner and redirects toCronsandUptimenav items by @saponifi3d in #113340 - Send project slug with test fire action request by @malwilley in #113127
- Add empty states for Monitors / Alerts by @saponifi3d in #113126
Autofix
- Add copy button to artifact cards by @Zylphrex in #113549
- Show referrer InfoTip in Seer drawer header by @chromy in #113279
Claude Code
- Add frontend pipeline step for Claude Code integration setup by @evanpurkhiser in #113213
- Add API-driven pipeline backend for Claude Code integration setup by @evanpurkhiser in #113202
Cmdk
- Group project settings actions by @JonasBa in #112913
- Show hotkey label in search button tooltip for command palette by @JonasBa in #113382
- Improve issue detail actions by @JonasBa in #112982
Code Review
- Update backend so legacy seer orgs no code review by @suejungshin in #113578
- Disable code review feature for seer-added by @suejungshin in #113564
- Support Seer code review for GitHub Enterprise Server by @tnt-sentry in #112938
Cursor
- Add frontend pipeline step for Cursor integration setup by @evanpurkhiser in #113212
- Add API-driven pipeline backend for Cursor integration setup by @evanpurkhiser in #113203
Dashboards
- Store revision source for AI-assisted saves by @skaasten in #113670
- Add flag for dashboards widget unfurl by @DominikB2014 in #113469
- Add UI to view dashboard revisions by @skaasten in #113441
- Add endpoint to preview a dashboard revision by @skaasten in #113316
- Add endpoint to restore a dashboard revision by @skaasten in #113176
- Add endpoint to list dashboard revisions by @skaasten in #113084
- Store dashboard snapshot on PUT when revisions flag is enabled by @skaasten in #113065
- Redirect Insights pages to corresponding dashboards by @gggritso in #113201
- Use org option for widget query queue concurrency by @DominikB2014 in #113185
- Add AI-generated warning to edit chat panel by @edwardgou-sentry in #113055
Detectors
- Add connected line graph to mobile build visualization by @mtopo27 in #113012
- Add workflow filter to detector search query by @malwilley in #113115
Discord
- Add API-driven pipeline backend for Discord integration setup by @evanpurkhiser in #113102
- Add frontend pipeline step for Discord integration setup by @evanpurkhiser in #113098
Eslint
- Extend no-flag-comments to catch
=,*,_,#,~separators by @evanpurkhiser in #113594 - Bump eslint-plugin-unicorn to v64 by @JoshuaKGoldberg in #113207
- Enable unicorn/no-new-array by @JoshuaKGoldberg in #113204
- No-unnecessary-type-narrowing by @TkDodo in #113285
- Prefer-reduce-type-parameter by @TkDodo in #113193
Explore
- Accept crossEvents param on saved queries by @nsdeschenes in #113286
- Hide internal fields from search bars and scope attribute lookups to selected metric by @nsdeschenes in #113036
Explorer
- Updated drawer header with dropdown menu by @aliu39 in #113637
- Tab key returns focus to input by @aliu39 in #113641
- Migrate chat UI to global drawer by @aliu39 in #113481
- Use local storage for explorer override by @Zylphrex in #113475
- Expose export-indexes via public org seer RPC by @shruthilayaj in #113227
- Add Code Mode toggle to Explorer UI by @azulus in #112882
Integrations
- Update example integration for api pipeline by @evanpurkhiser in #113350
- Add direct link to GitLab user settings by @evanpurkhiser in #113558
- Prevent fetching thousands of commits by @armenzg in #113526
- Track cache hit ratio by API request type by @armenzg in #113463
- Route Claude Code and Cursor through API pipeline modal by @evanpurkhiser in #113326
- Remove feature flags for GAd pipelines by @evanpurkhiser in #113097
- GA all API Integration Pipelines by @evanpurkhiser in #113067
Issue Detection
- Add weighted project selection by @roggenkemper in #113466
- Add org-level scheduling for AI issue detection by @roggenkemper in #113060
Issues
- Tag issue stream analytics with AnalyticsArea by @scttcper in #113505
- Add project-level enable option for LLM issue detection by @roggenkemper in #112710
Logs
- Add ourlogs-modal-export flag by @JoshuaKGoldberg in #113363
- Switch needle-in-haystack auto-fetching from 5 tries to time-based by @JoshuaKGoldberg in #113219
Occurrences On Eap
- Make organization trace item stats API endpoint generic over trace item type by @shashjar in #112889
- Implement
run_stats_queryin Occurrences EAP RPC class by @shashjar in #112878
Onboarding
- Fire distinct analytics for SCM setup-docs events by @jaydgoss in #113552
- Update SCM onboarding styles to match updated designs by @jaydgoss in #113352
- Gate SCM_PROJECT_DETAILS step with feature flag by @jaydgoss in #113112
- Fire distinct analytics events for SCM welcome by @jaydgoss in #113364
- Register onboarding-scm-project-details-experiment flag by @jaydgoss in #113072
Opsgenie
- Add frontend pipeline step for Opsgenie integration setup by @evanpurkhiser in #113214
- Add API-driven pipeline backend for Opsgenie integration setup by @evanpurkhiser in #113174
Pagerduty
- Add frontend pipeline step for PagerDuty integration setup by @evanpurkhiser in #113173
- Add API-driven pipeline backend for PagerDuty integration setup by @evanpurkhiser in #113103
Perforce
- Add API-driven pipeline backend for Perforce integration setup by @evanpurkhiser in #113468
- Add frontend pipeline steps for Perforce integration setup by @evanpurkhiser in #113471
Pipeline
- Route additional integrations through API pipeline modal by @evanpurkhiser in #113302
- Optimistically render first step during initialization by @evanpurkhiser in #113307
Preprod
- Use images endpoint for snapshot diffs by @lcian in #113312
- Expose snapshot filters in search typeahead by @NicoHinderling in #113332
- Add snapshot and approval search filters by @NicoHinderling in #113331
Scraps
- Adopt GlobalDrawer component into design system by @natemoo-re in #113489
- Opinionated scrollbar styles by @natemoo-re in #113477
Seer
- Add per-issue Explorer button to workflow run drill-down by @trevor-e in #113620
- Clear Seer automation handoff preferences on integration deletion by @srest2021 in #113337
- Add user_id to SlackSeerAgentResponded analytics event by @alexsohn1126 in #113550
- Add timeout and reasoning params to LlmGenerateRequest by @ArthurKnaus in #113544
- Add get_metric_metadata RPC for Seer metrics agent by @isaacwang-sentry in #113462
- Add Night Shift workflows list page by @trevor-e in #113500
- Add workflows list endpoint for Night Shift runs by @trevor-e in #113491
- Update Seer Autofix settings table to match details page by @ryan953 in #113472
- Add feature flag for thinking blocks toggle by @chromy in #113437
- Add LLM context to widget builder page by @Mihir-Mavalankar in #112703
- Consolidate fields on the Autofix Project details page by @ryan953 in #113236
- Allow filtering the autofix settings table by agent name by @ryan953 in #113309
- Move the advanced seer settings to their own page by @ryan953 in #113248
- Gate Night Shift projects behind projects:seer-night-shift by @chromy in #113283
- Print Explorer URL after night shift trigger script runs by @trevor-e in #113239
- Allow bulk-editing Code Review triggers by @ryan953 in #113116
- Add max candidates input to admin night shift form by @trevor-e in #113223
- Allow max candidate override on admin night shift trigger by @trevor-e in #113222
- Add extras JSON column to SeerNightShiftRun by @trevor-e in #113178
- Add command palette action to resume night shift explorer chats by @chromy in #113161
- Implement sorting for the remaining columns on the Code Review settings table by @ryan953 in #112973
Slack
- Unfurl logs/metrics widget URLs by @DominikB2014 in #113577
- Unfurl spans dashboard widget URLs in slack by @DominikB2014 in #113478
Snapshots
- Show skipped count in status checks and PR comments by @NicoHinderling in #113007
- Add selective flag and rename all_image_names to all_image_file_names by @NicoHinderling in #113006
- Add images_skipped and is_selective columns for selective testing by @NicoHinderling in #113005
Spans
- Make salt deterministic for subsegments by @lvthanh03 in #113659
- Add flush_id to flushed segment messages by @untitaker in #113416
Tracemetrics
- Add equation support in old tracemetric alerts by @narsaynorath in #113665
- Open Alert in Explore by @narsaynorath in #113511
- Add updating functionality to alerts by @narsaynorath in #113487
- Implement read-only view for equations in alerts by @narsaynorath in #113446
- Add parser for resolved expressions by @narsaynorath in #113230
- Add equations in alerts flag by @narsaynorath in #113181
- Add PII scrubbing UI by @k-fish in #113078
- Add alert via dropdown in explore by @k-fish in #112963
- Disable Save As for equations by @narsaynorath in #113089
- Disable filter actions on equations/results by @narsaynorath in #113088
- Add filter bar to equation by @narsaynorath in #113057
Viewer Context
- Add observe() helper and instrument 3 chokepoints by @gricha in #113237
- Switch Seer API to JWT X-Viewer-Context header by @gricha in #112894
Vsts
- Add API-driven integration setup by @evanpurkhiser in #113073
- Add API pipeline frontend flow by @evanpurkhiser in #113095
Other
- (agent-monitoring) Refer to sentry ai skills instead of hardcoding agent instructions by @shellmayr in #113049
- (agents) Surface context utilization in AI span details by @obostjancic in #113407
- (alerts) Allow arithmetic in alert validation by @wmak in #113105
- (analytics) Tag integration install events with is_scm by @jaydgoss in #113225
- (api) Allow per-org rate limit overrides for project transfer by @cleptric in #113507
- (cells) Add organization avatar to control silo by @lynnagara in #113008
- (coding agent integrations) Move alerts into the drawer instead of as toasts by @sehr-m in #113306
- (compactSelect) Add menuMinWidth prop by @DominikB2014 in #113545
- (crons) Update onboarding empty state illustration by @evanpurkhiser in #112399
- (data-explore) Add new Query type for full export for simpler request validation by @manessaraj in #112953
- (data-export) Exported attributes in data export should have public names by @manessaraj in #112846
- (dev) Replace pre-commit with prek --quiet by @joshuarli in #110808
- (disclosure) Support HTML attributes in Disclosure.Content by @Zylphrex in #113572
- (errors) Create errors toolbar components by @nikkikapadia in #112526
- (hotkey) Add hotkey icons, update docs by @natemoo-re in #113465
- (identity) Add identity_ext_ids filter to identity RPC service by @alexsohn1126 in #113447
- (insights) Integrate conversation details into trace AI tab by @obostjancic in #112907
- (llm-detection) Add Seer budget pre-check before dispatching traces by @nora-shap in #113253
- (mcp) Add devinfra-mcp to dotagents by @kenzoengineer in #113367
- (navigation) Hide Insights sidebar behind feature flag by @gggritso in #112965
- (night-shift) Trigger autofix for fixable candidates and add dry run mode by @trevor-e in #113056
- (nightshift) Add tweaks option for prototyping nightshift by @chromy in #113675
- (objectstore) Add CLI rate limiting to Objectstore endpoint by @lcian in #111063
- (replay) Remove canvas recording by @billyvg in #113657
- (replays) Move timestamp and widget controls inline in page-frame mode by @JonasBa in #113694
- (seer agent) Add suggested question buttons to empty state by @sehr-m in #113636
- (seer-slack) Add analytics for Seer agent Slack responses by @alexsohn1126 in #113318
- (st) Install gcloud for local selective testing by @joshuarli in #113496
- (supergroup) Retry snuba batch query in supergroups lightweight backfill by @cvxluo in #113184
- (supergroups) Track drawer opens and add feedback button to header by @scttcper in #113497
- (ui) Add LLM issue detection toggle to performance settings by @roggenkemper in #112711
- (utils) Add PK caching and validate_item to CursoredScheduler by @roggenkemper in #113238
- (vercel) Add frontend pipeline step for Vercel integration setup by @evanpurkhiser in #113220
- (workflows) Restrict APIs based on metrics alert features by @kcons in #112600
Bug Fixes 🐛
Aci
- Don't allowe editing a project by @saponifi3d in #113355
- Only show gridline information, if we have data available by @saponifi3d in #113353
- Restrict percent sessions interval choices to supported values by @malwilley in #113313
Alerts
- Accept "default" as a valid PagerDuty severity by @malwilley in #113614
- Make everything vertical aligned by @priscilawebdev in #113532
- Don't log APIException as error in alert rule serializer by @malwilley in #113584
- More graceful handling of missing Detector in WorkflowEngineDataConditionSerializer by @kcons in #113575
Api
- Allow Bearer token auth for GET /api/0/auth/ by @BYK in #112853
- Serialize defaultCodingAgentIntegrationId as a string by @srest2021 in #113198
Auth
- Pin SSO setup identity link to the authenticated session by @michelletran-sentry in #113720
- Bypass SSO for viewer-context requests by @gricha in #113124
Automations
- Keep alert titles in page layout by @priscilawebdev in #113405
- Move detail header into the page-frame top bar by @priscilawebdev in #113270
Chartcuterie
- Reduce legend font size and truncation length by @DominikB2014 in #113180
- Stack grouped bar charts in unfurls by @DominikB2014 in #113177
Claude Code
- Use deterministic external_id scoped to organization by @sehr-m in #113256
- Convert workspace option to default-checkbox by @sehr-m in #113255
Conversations
- Normalize lastOutput array format to prevent .replace TypeError by @obostjancic in #113410
- Show when a conversation happened on detail page by @obostjancic in #112910
Dashboards
- Add telemetry and guard for non-string filter values by @gggritso in #113589
- Alignment and sizing of IntervalSelector on Dashboards by @TkDodo in #113642
- Bump react-grid-layout to fix maximize bug by @DominikB2014 in #113587
- Disable generate dashboard button when dashboard limit is reached by @edwardgou-sentry in #113301
- Restore release bubbles when thresholds are configured by @DominikB2014 in #113565
- Widget builder cut off when editing widget on page scroll by @nikkikapadia in #113479
- Guard getTimeseriesSortOptions call in widget builder by @edwardgou-sentry in #113467
- Apply prebuilt globalFilter to saved prebuilt dashboards by @DominikB2014 in #113454
- Add character limit to text widget content by @nikkikapadia in #113348
- Align embedded insights alerts by @priscilawebdev in #113271
- Reject new widgets with deprecated display types by @DominikB2014 in #113294
- Persist legend selection to URL for new chart widgets by @gggritso in #112974
- Remove "Insights" from breadcrumbs by @gggritso in #113209
- Enable search for filter values over 70 characters by @jameskeane in #113197
- Use scientific notation for small numbers in breakdown table by @gggritso in #113144
- Use dashboards as fallback secondary nav content for Insights pages by @gggritso in #113210
- Show no data message for details widget by @DominikB2014 in #113172
- Unescape alias lookup in visualizations by @narsaynorath in #113170
- Hide legend alias option for details widget type by @DominikB2014 in #112957
- Preserve page filters when navigating from prebuilt dashboard link by @edwardgou-sentry in #113070
Detectors
- Don't assume the Detector cache is limited to enabled by @kcons in #113627
- Bulk-fetch resolve thresholds in WorkflowEngineDataConditionSerializer by @kcons in #113347
Eco
- Updates external ID field length for integrations by @GabeVillalobos in #113308
- Improves domain checking for next URL in installation flow by @GabeVillalobos in #113118
- Re-adds the Complete Installation button to integration config pages" by @GabeVillalobos in #113076
Explorer
- Use new isDrawerOpen state for more accurate open/closed tracking by @aliu39 in #113639
- Move CM toggle after CE in top bar by @azulus in #113315
Insights
- Handle gen_ai.output.messages as JSON object by @obostjancic in #113537
- Fix empty txn summary when transaction.op is default by @mjq in #113099
Integrations
- Cache missing GitHub repo tree lookups by @armenzg in #113113
- Read dataset-specific query params in explore unfurls by @DominikB2014 in #113304
Issue Details
- Align content with page-frame top bar by @priscilawebdev in #113519
- Update unassign assignee action by @JonasBa in #113510
- Keep sticky event nav below page frame by @priscilawebdev in #113401
Issue Detection
- Filter to early adopter orgs by @roggenkemper in #113559
- Use 'AI Detected' label by @roggenkemper in #113310
- Don't use "Other" as title for uncategorized AI issues by @roggenkemper in #113311
Issues
- Apply issue search conditions to next/prev event buttons on issue details page by @shashjar in #113234
- Include group type id in AI-detected fingerprint by @roggenkemper in #113289
- Forward message query in project events endpoint in EAP conditions by @shashjar in #113250
- Prevent descender cutoff in GroupMetaRow annotations by @scttcper in #113243
- Include event property fields in has: suggestions by @scttcper in #113231
- Skip duplicate issue attachments query when possible by @scttcper in #113085
Migrations
- Prevent modifying the type of a column that is part of an index during migrations by @wedamija in #113370
- 0007 had the wrong migration dependency by @wmak in #113451
Onboarding
- Scm onboarding reuse project on back-nav when nothing changed by @jaydgoss in #113111
- Emit scm_platform_selected on auto-detection by @jaydgoss in #113351
Ourlogs
- Pipe case sensitivity through Highlight component by @JoshuaKGoldberg in #113448
- Enable notMerge option for time series ECharts by @JoshuaKGoldberg in #113434
Page Frame
- Move primary actions into local page controls by @JonasBa in #113612
- Remove empty headers and move breadcrumbs by @priscilawebdev in #113654
- Constrain replay and feedback layouts by @priscilawebdev in #113266
Pageframe
- SubscriptionHeader by @TkDodo in #113648
- Render settings layout subtitle by @TkDodo in #113518
- Integration layout header by @TkDodo in #113406
- Remove muted variant from InfoTip by @TkDodo in #113403
- Render replay actions into TopBarSlot by @TkDodo in #113164
Releases
- Remove unused statsPeriod query parameter by @scttcper in #113482
- Move feedback to top bar slot by @JonasBa in #113378
- Move page-frame breadcrumbs into the top bar by @priscilawebdev in #113042
Replays
- Hide trace ID in replay waterfall by @nsdeschenes in #113535
- Move replay actions into the page-frame top bar by @priscilawebdev in #113148
Repos
- Call repo sync batch tasks by @wedamija in #113132
- Fix vsts sync error by @wedamija in #113136
- Have repo sync batch up the work by @wedamija in #113131
Seer
- Bill seat-based autofix based on Seer project preferences instead of code mappings and tuning by @srest2021 in #113700
- Use count(value) in tracemetrics query for metric metadata by @isaacwang-sentry in #113616
- Trigger night shift autofix end-to-end and persist Seer run ids by @trevor-e in #113619
- Render all root nodes in snapshot_to_markdown by @Mihir-Mavalankar in #113607
- Remove code mappings fallback when configuring Seer for existing org by @srest2021 in #113582
- Remove code mappings fallback from has_project_connected_repos by @srest2021 in #113509
- Correct coding agent docs links by @nikolovlazar in #113546
- Clean up SeerProjectRepository after Seer API call succeeds on integration disabled and repo hidden/disabled by @srest2021 in #113345
- Handle SeerApiError in Explorer chat endpoint by @Mihir-Mavalankar in #113458
- Add kwargs to Seer cleanup tasks for safe arg change deploy by @srest2021 in #113449
- Linkify short IDs with multi-hyphen project slugs by @JoshFerge in #113431
- Extract clean message from coding agent HTTPError bodies by @sehr-m in #113305
Settings
- Move primary actions inline in settings pages (page-frame) by @JonasBa in #113626
- Avoid duplicate dynamic sampling title by @JonasBa in #113383
- Add spacing above notification alert on emails page by @scttcper in #113123
Slack
- Apply dashboard-stored filters when unfurling widget URLs by @DominikB2014 in #113711
- Add slack-staging to a list of of new oauth pipeline providers by @alexsohn1126 in #113464
- Use only first chart when unfurling multi-aggregate Explore URLs by @DominikB2014 in #113303
- Restrict trace unfurling to /traces links by @DominikB2014 in #113218
Spans
- Enable better_backpressure in span buffer RunTask by @untitaker in #113692
- Avoid unpack() crashes when merging sets by @untitaker in #113442
Supergroups
- Fallback to limited query on large supergroups by @scttcper in #113573
- Hoist stream issues to the first page of the drawer by @scttcper in #113192
- Add backfill referrer to Referrer enum by @cvxluo in #113092
Tracemetrics
- Disable multi select for aggregations field in alerts by @narsaynorath in #113712
- Samples table UI tweaks by @nsdeschenes in #113650
- Styling on visualize field for alerts by @narsaynorath in #113704
- Metric panel padding fixes by @nsdeschenes in #113581
- Flaky metrics tab test by @narsaynorath in #113625
- Pass project and env in alerts by @narsaynorath in #113551
- PII tooltip should appear in metrics samples by @k-fish in #113339
- Make metric option search case insensitive by @nsdeschenes in #113188
- Metric panel title should use equation with label by @narsaynorath in #113143
- Resolve all equations at once when subcomponents update by @narsaynorath in #113117
- Prep for stats flip by @k-fish in #113114
- Disable recent searches until ready by @narsaynorath in #113091
- Allow sorting on all aggregate tab columns by @narsaynorath in #113090
Ui
- Add tooltips to icon-only header actions by @priscilawebdev in #113151
- Track topbar offset for sticky headers by @natemoo-re in #113298
- Adjust placeholder height for DashboardGrid by @TkDodo in #113160
Workflows
- Delete workflows when the Rule is deleted by @kcons in #113588
- Handle duplicated AlertRuleWorkflow entries for a Workflow more gracefully by @kcons in #113138
- Don't reuse existing workflow in create_priority_workflow by @kcons in #113133
- Cache integration lookups, and pass the cache to render_label by @kcons in #112976
Other
- (api-docs) Add missing spaces in stats endpoint help text by @sentry-junior in #113529
- (assisted-query) Apply Seer visualizations and sort to metrics page by @isaacwang-sentry in #113232
- (autofix) Remove unconfigured projects gate and remove code mapping repos fallback by @srest2021 in #113077
- (billing) Account for gifted quantities in productIsEnabled check by @dashed in #113142
- (button) Map button size="zero" to icon size "xs" by @TkDodo in #113646
- (ci) Prevent shell injection in setup-devservices action by @fix-it-felix-sentry in #113400
- (cmdk) Do not fire selections on Tab key press by @JonasBa in #113381
- (dashoards) Fix table widget column widths snapping after user resize by @edwardgou-sentry in #112960
- (drawer) Match responsive header height on small screens by @priscilawebdev in #113016
- (dropdowns) Match focused item mask to overlay background token by @cvxluo in #113354
- (eslint) Used extends for remaining plugin configs by @JoshuaKGoldberg in #113365
- (explore) Handle nullable aggregations in equations by @wmak in #113456
- (feature-flags) Add Node.js support to feature flag onboarding by @scttcper in #112745
- (grouping) Remove redundant time regex by @lobsterkatie in #113601
- (issue-views) Render editable title in topbar slot for page-frame layout by @JonasBa in #113488
- (iswf) Surfaces linked issues for Sentry Apps with no UI components by @GabeVillalobos in #113372
- (logs) Remove duplicate main element on logs page by @priscilawebdev in #113649
- (mcp) Sync .cursor/mcp.json with dotagents output by @hubertdeng123 in #113512
- (metrics) Prevent page scroll when opening metric selector by @nsdeschenes in #113460
- (monitors) Move edit breadcrumbs into the top bar by @priscilawebdev in #113272
- (mypy) Fix issues with test_scm_onboarding.py by @kcons in #113598
- (night-shift) Remove poll timeout that aborted Explorer runs by @trevor-e in #113137
- (paginator) Replace f-string with % formatting to avoid SQL injection false positive by @fix-it-felix-sentry in #113402
- (performance) Support continuous profiling in sampled events table by @mjq in #113183
- (pipeline) Fix GitHub setup_action=install breaking API pipeline popup flow by @evanpurkhiser in #113240
- (replay) Add tooltip to timestamp settings button by @JonasBa in #113377
- (repositories) Properly set
external_idinorganization_code_mappings_bulkby @wedamija in #113618 - (scraps) Propagate drf field validation errors in autoSaveForm by @TkDodo in #113644
- (search) Return empty result on disjoint group_id intersection by @yuvmen in #113320
- (search-query-builder) Escape literal asterisks in filter values by @nsdeschenes in #113404
- (selective-testing) Update to fix import gap raised in getsentry by @rbro112 in #113357
- (stack-trace) Show for frames with no filename by @scttcper in #113108
- (tests) Stabilize flaky React Native metrics onboarding test by @JoshuaKGoldberg in #112000
- (trace) Keep loading breadcrumbs in the page-frame top bar by @JonasBa in #113384
- (tracemetric) Change metric selector syntax by @k-fish in #113206
- (traces) Add md gap in explore content section by @nsdeschenes in #113333
- (typing) Annotate group_status parameters as int by @JoshFerge in #113424
- (uptime) Fix cron monitor incident timing inconsistency by @klochek in #112692
- (viewer-context) Populate org after request resolution by @gricha in #113139
- (views) Standardize Save as buttons by @priscilawebdev in #113655
- (workflow_engine) Manually add date_updated/added timestamps for detectorstate commits by @klochek in #113480
- (workflowEngine) Use primary border color by @TkDodo in #113560
- Revert "feat(integrations): Send SLO lifecycle metrics to Sentry via SDK (#112839)" by @getsentry-bot in 7e3195c1
- Don't use type as a variable by @wmak in #113080
Documentation 📚
- (agents) Forbid customer info in PRs, commits, and code by @JoshFerge in #113300
Internal Changes 🔧
Aci
- Replace multiple flag usage with single flag by @ceorourke in #113461
- Add single flag to control metric alert backwards compatible endpoints by @ceorourke in #113228
- Split connected detectors into projects and monitors lists by @malwilley in #113205
- Roll out DELETE metric alert endpoint flag by @klochek in #113215
- Roll out DELETE issue alert endpoint flag by @klochek in #113216
- Report more used legacy models by @ceorourke in #113233
Alerts
- More efficient GroupOpenPeriod query by @kcons in #113556
- Migrate rule node fields to JsonFormAdapterFieldConfig by @priscilawebdev in #112779
Api
- Remove single trace summary backend endpoint by @nsdeschenes in #113666
- Add collapse=organization to project details endpoint by @scttcper in #113140
Billing
- Bumped protos version to 0.8.15 by @krithikravi in #113699
- Renamed metrics to application metric counts(BIL-2237) by @krithikravi in #113580
Cells
- Update field definitions on BaseRelocationTransfer by @lynnagara in #113000
- Remove deprecated get_region_for_organization alias by @lynnagara in #113003
- Remove dead SiloMode.CELL check from ReactPageView by @lynnagara in #113001
Ci
- Tolerate action-download flakes on collect-test-data by @mchen-sentry in #113453
- Wait.py, add healthcheck logging by @joshuarli in #113361
- Add import analysis to selective testing by @rbro112 in #113247
Cmdk
- Add Seer actions to command palette by @JonasBa in #113490
- Add missing secondary nav items to command palette by @JonasBa in #113155
Commits
- Remove "Unable to Fetch Commits" email by @leeandher in #113445
- Simplify main loop, extra logging & CODEOWNERS update by @armenzg in #113418
- Refactor fetch_commits task by @armenzg in #113293
- Improve fetch commit task observability by @armenzg in #113282
Dashboards
- Normalize error responses to use detail key by @gggritso in #113606
- Use Dashboard router hint in revision restore by @gggritso in #113605
- Reorder primary actions by @JonasBa in #113443
- Remove Dashboard Templates feature by @gggritso in #113343
- Remove dashboards-interval-selection flag declaration (backend) by @gggritso in #113290
- Remove dashboards-interval-selection feature flag (frontend) by @gggritso in #113288
- Migrate widget type selector to CompactSelect by @DominikB2014 in #112927
Explore
- Add header hints and update explore headers by @nsdeschenes in #113571
- Normalize ExploreControlSection padding to md xl by @JonasBa in #113579
- Use paste instead of type for spans tab query input by @scttcper in #113349
- Move attribute key fetching to apiOptions utility by @nsdeschenes in #113047
- Add dev features flag by @k-fish in #113081
Explorer
- SwitchToRun should be a no-op for same runId by @aliu39 in #113262
- Rename global context provider + use it for close button and external opens by @aliu39 in #113264
- Reorg directory structure by @aliu39 in #113263
- Update hook to use useMutation by @aliu39 in #113146
Flags
- Remove dead projects:data-forwarding flag by @wedamija in #113374
- Remove 5 dead feature flag registrations by @wedamija in #113373
Grouping
- Add MAC address parameterization regex by @lobsterkatie in #113129
- Make ip regex stricter by @lobsterkatie in #112995
Integrations
- Make GitHub compare-commits caching default by @armenzg in #113536
- Remove totally unused
claude-code-environment.htmlby @evanpurkhiser in #113317 - Request recent GitHub commits with explicit page size by @armenzg in #113217
- Clarify which endpoints gets called by @armenzg in #113196
- Halting events to be logged as warning by @armenzg in #113104
- Gate disabling repositories behind a separate flag by @wedamija in #113071
Issue Detection
- Increase tick frequency to 5 min, reduce cycle to 1 hour by @roggenkemper in #113621
- Hide search and settings behind
hideAiFeaturesby @roggenkemper in #113542 - Make AI issue types searchable when feature flag by @roggenkemper in #113470
- Set
api_exposeto True by @roggenkemper in #113093
Issues
- Extract shared search + serialize helpers by @cvxluo in #113562
- Removing option registration no longer needed by @shashjar in #113597
- Use boolean option for application of issue search conditions to prev/next event navigation by @shashjar in #113555
- Migrate similar stack trace to react-query by @scttcper in #113344
- Consolidate duplicate issue tags requests into one by @scttcper in #113079
Iswf
- Uses repository URL by default when linking external repos by @GabeVillalobos in #113360
- Adds Repository URL to organization_integration_repos endpoint by @GabeVillalobos in #113358
Nav
- Simplify setting breadcrumbs by @natemoo-re in #113101
- Extract header actions, use pageframe slots by @natemoo-re in #113083
Nightshift
- Expose seer-night-shift flag to UI by @chromy in #113543
- Log agent_run_id in night shift logs by @chromy in #113171
Onboarding
- Persist project details form state in onboarding context by @jaydgoss in #113128
- Move less common SCM providers into a More dropdown by @jaydgoss in #112730
- Clean up useCallback in firstEventFooter, rm project.org by @scttcper in #113134
Pipeline
- Remove missed pipeline reference from rspack by @evanpurkhiser in #113438
- Remove unused react_pipeline template and render_react_view by @evanpurkhiser in #113439
- Remove now unused legacy integrationPipeline views by @evanpurkhiser in #113328
- Extract shared test helpers from pipeline integration specs by @evanpurkhiser in #113224
- Use getApiUrl for type-safe API URL construction by @evanpurkhiser in #113226
Preprod
- Revert odiff CLI-mode workaround after v4.3.8 fix by @NicoHinderling in #113335
- Move Snapshots tab to standalone settings subpage by @NicoHinderling in #113175
Seer
- Make chat and copy primary buttons by @JonasBa in #113719
- Filter LLM context to widget-builder on builder routes by @Mihir-Mavalankar in #113623
- Split structured context routes by feature flag by @Mihir-Mavalankar in #113485
- Reapply JWT proxy_headers for Seer callbacks by @gricha in #113499
- Remove duplicate useFetchAgentOptions, replaced by useCodingAgentSelectQueryOptions by @ryan953 in #113498
- Accept **kwargs on night_shift instrumented tasks by @chromy in #113284
- Refactor Seer Autofix Project table to remove internal abstractions by @ryan953 in #113459
- Retire the seer-overview feature flag by @ryan953 in #113249
- Filter private fields from explorer chat API response by @trevor-e in #113199
- Refactor Code Review table to better optimistically update by @ryan953 in #112979
Selective Testing
- Add selective testing instructions to agents.md files by @rbro112 in #113334
- Re-add make test-selective command by @rbro112 in #113265
Supergroups
- Always use lightweight RCA read path by @cvxluo in #113583
- Extract helper for get-by-group-ids Seer call by @cvxluo in #113492
- Remove id from drawer breadcrumb by @cvxluo in #113179
- Make backfill tuning params configurable via options by @yuvmen in #113074
Tracemetrics
- Remove refresh ui flag by @nsdeschenes in #113669
- Mark test as known flake by @narsaynorath in #113484
- Remove legacy metrics UI by @nsdeschenes in #113278
- Extract state keeping from state changes in provider by @narsaynorath in #113211
Tsc
- UsageHistory endpoint to apiOptions by @TkDodo in #113672
- Invoices endpoint to apiOptions by @TkDodo in #113548
- UsageLogs endpoint to apiOptions by @TkDodo in #113647
- Billing-seats endpoint to apiOptions by @TkDodo in #113685
- CheckIns endpoint to apiOptions by @TkDodo in #113273
- Trace item stats to apiOptions by @TkDodo in #113299
- Projects endpoint to apiOptions by @TkDodo in #113045
- Ai-conversations endpoint to apiOptions by @TkDodo in #113287
- :key and :key/values endpoint to apiOptions by @TkDodo in #113275
- Explore saved queries endpoint to apiOptions by @TkDodo in #113292
- Group-search-views endpoint to apiOptions by @TkDodo in #113280
- Replays endpoint to apiOptions by @TkDodo in #113158
- Profile events endpoint to apiOptions by @TkDodo in #113163
- Open-period endpoint to apiOptions by @TkDodo in #113167
- Dashboards endpoint to apiOptions by @TkDodo in #113068
- Keys endpoint to apiOptions by @TkDodo in #113053
- Repos endpoint to apiOptions by @TkDodo in #112926
- Members endpoint to apiOptions by @TkDodo in #113023
- Teams endpoint to apiOptions by @TkDodo in #113033
- ProjectTeams endpoint to apiOptions by @TkDodo in #113063
Ui
- Change bulk delete modal text from 'automations' to 'alerts' by @souredoutlook in #113631
- Scope
isDrawerOpentouseDrawercallsite by @natemoo-re in #113629 - Add jest/swc transform cache to frontend-optional workflow by @scttcper in #113086
- Prefer InfoTip for page title help by @JonasBa in #113026
Viewer Context
- Remove legacy header fallback by @gricha in #113592
- Switch observe helper to sentry_sdk.metrics.count by @gricha in #113260
Other
- (agents) Remove Gen AI cost warning captureMessage calls by @obostjancic in #113653
- (aws-lambda) Remove legacy pipeline views by @evanpurkhiser in #113075
- (bitbucket) Remove legacy pipeline views by @evanpurkhiser in #113327
- (chartcuterie) Restrict browser imports in chartcuterie files by @DominikB2014 in #113187
- (claude-code) Remove legacy pipeline views by @evanpurkhiser in #113329
- (cursor) Remove legacy pipeline views by @evanpurkhiser in #113330
- (deps) Bump taskbroker-client from >=0.1.8 to >=0.1.9,<1 by @untitaker in #113603
- (discord) Remove legacy pipeline views by @evanpurkhiser in #113323
- (discover) Remove dead saved query delete code by @priscilawebdev in #113156
- (drawer) Add
shouldLockScrolloption by @natemoo-re in #113245 - (eslint) Directly extend from tseslint preset configs by @JoshuaKGoldberg in #113189
- (fetch_commits) Unify commit fetch interfaces by @armenzg in #113281
- (github) Remove legacy pipeline views by @evanpurkhiser in #113338
- (gitlab) Remove legacy pipeline views by @evanpurkhiser in #113322
- (incidents) Add serializer parity test for incident activity by @kcons in #113010
- (insights) Remove starfish-view feature flag by @gggritso in #113435
- (issue-details) Use shared Sticky for event nav by @priscilawebdev in #113514
- (logs) Use primary button variant for Save As action by @JonasBa in #113380
- (metrics) Update Android and Java onboarding to require SDK 8.34.0 by @markushi in #113150
- (opsgenie) Remove legacy pipeline views by @evanpurkhiser in #113324
- (page-frame) Compact editable titles in topbar for dashboards and monitors by @JonasBa in #113574
- (pageFrame) Move texts into subTitle of SettingsPageHeader by @TkDodo in #113521
- (pagerduty) Remove legacy pipeline views by @evanpurkhiser in #113325
- (pagination) Reduce unnecessary overquerying in CombinedQuerysetPaginator by @kcons in #113200
- (perforce) Add gdx as integration owner by @Dav1dde in #113689
- (profiling) Remove differential flamegraph page flag by @mjq in #113014
- (project-detail) Use relative period params for previous period queries by @gggritso in #113100
- (projects) Use collapse=organization on project details fetches by @scttcper in #113186
- (replays) Use generic /events/ endpoint in useReplayData by @mjq in #113346
- (repositories) Default
is_rate_limited_errorto False by @wedamija in #113366 - (scm) Implement sentry-scm dependency by @cmanallen in #112969
- (sdk) Allow to disable threading integration by @gi0baro in #113154
- (seer-slack) Move organization resolution to control by @leeandher in #113107
- (slack) Remove legacy pipeline views by @evanpurkhiser in #113321
- (snapshots) Bump sentry-cli to 3.4.0 by @lcian in #113409
- (stories) Automatic categories via index by @natemoo-re in #113506
- (theme) Migrate shadows by @natemoo-re in #112997
- (trace) Remove new trace summary tab by @nsdeschenes in #113663
- Upgrade sentry-scm to 0.5.0 for GitLab token refresh fix by @billyvg in #113658
- Fix 'occured' -> 'occurred' typos across sentry_apps, UI, and loader templates by @SAY-5 in #113145
- Bump protos to 0.8.13 by @noahsmartin in #113476
- Bump devservices to 1.3.1 by @joshuarli in #113393
- Bump new development version by @sentry-release-bot[bot] in 3136d52d
Other
- ref(seer) remove seer border by @JonasBa in #113710
- devenv: optional gcloud by @joshuarli in #113709
- feature(seer agent): change styling of input bar and message bubbles by @sehr-m in #113630
- feature(seer agent): icon changes by @sehr-m in #113632
- styles(scraps): Subtract top from SlideOverPanel height by @Zylphrex in #113610
- styles(autofix): Format autofix message content as markdown by @Zylphrex in #113433
- ref(cmdk) improve nesting structure by @JonasBa in #113152
- enh(code-mappings): Improve bulk code mappings validation error message for wrong mappings format by @romtsn in #113296
- types: Move sentry.search.events.filter from mypy ignore to stronglist by @kcons in #113191
- Add logger warnings for display name filter action by @geoffg-sentry in #113168
- Display name validation and filtering for apps and orgs by @geoffg-sentry in #113106
- Fix/monitors UI copy by @souredoutlook in #113050
- Add project auth checks in external issue creation and deletion by @geoffg-sentry in #112709
- Restrict allowed values in sentry.conf.py for feature-flags by @geoffg-sentry in #112980