New Features ✨
Aci
- Add inline alert creation to monitor details page by @malwilley in #114395
- Hide team metric alerts triggered component in workflow engine UI by @ceorourke in #114504
Admin
- Add admin audit log tab to customer details view by @swartzrock in #113943
- Add legacy Seer migration action to customer admin by @swartzrock in #114126
Autofix
- Open autofix evidence in new tab by @Zylphrex in #114562
- Add re-run button to artifact cards by @Zylphrex in #114204
- Add evidence buttons for git_search tool by @Zylphrex in #113983
- Move evidence props resolver earlier by @Zylphrex in #113936
- Render tool calls as autofix evidence by @Zylphrex in #113832
- Conform to seer quotas for autofix by @Zylphrex in #113604
Billing
- Add product trial banners for trace metrics by @k-fish in #114078
- Add prev/next navigation to receipt details page by @swartzrock in #113688
Cmdk
- Improve search recall with people/team/project actions and keyword synonyms by @JonasBa in #114762
- Add bulk issue actions to command palette by @JonasBa in #114278
- Add settings field search to command palette on settings pages by @JonasBa in #114274
- Add copy stack trace action to issue details by @JonasBa in #114275
- Surface current project Client Keys (DSN) in Project Settings by @JonasBa in #114196
- Improve no-result query recall by @JonasBa in #114236
- Add Tab shortcut to open Seer Explorer from command palette by @JonasBa in #114119
- Treat Escape as back button by @JonasBa in #114118
- Add assigned-to-me alias to issue filter actions by @JonasBa in #114088
- Add Switch Organization action to command palette by @JonasBa in #114084
- Add keyboard shortcut hints footer to command palette by @JonasBa in #114055
- Add filter-by and sort actions to issues feed command palette by @JonasBa in #113981
- Add usage & billing settings actions to command palette by @JonasBa in #113964
- Add sort and save-view actions to Issues Feed command palette by @JonasBa in #113938
- Add docs/documentation keywords to Help > Open Documentation action by @JonasBa in #113935
- Add agent skill for implementing command palette actions by @JonasBa in #113874
- Add icons to project and org settings actions by @JonasBa in #113867
- Reset palette state on route change by @JonasBa in #113862
- Add project settings actions by @JonasBa in #113828
- Always render help search last; fix empty state during fetch by @JonasBa in #113771
Dashboards
- Add Node.js runtime metrics prebuilt dashboard UI by @chargome in #113517
- Backfill deprecated widget display types to area by @DominikB2014 in #114560
- Add Copy Widget URL icon to the widget card header by @DominikB2014 in #114594
- Default to table view on dashboards landing page by @gggritso in #114182
- Display avatarUrl in revision list item by @skaasten in #114199
- Return avatarUrl in dashboard revision createdBy response by @skaasten in #114186
- UI to preview a revision before restoring it by @skaasten in #113566
- Pass revision source for AI-assisted saves by @skaasten in #113671
- Register Node.js runtime metrics prebuilt dashboard by @chargome in #113516
Discover
- Move build query button to filters row by @priscilawebdev in #113776
- Move primary actions to filter bar in page-frame mode by @JonasBa in #113634
Dynamic Sampling
- Add per-org configuration by @shellmayr in #114837
- Add per-org activity check by @shellmayr in #114285
- Add org fan-out using buckets in redis & improve instrumentation by @shellmayr in #114042
- Add per-org scheduler telemetry gates by @shellmayr in #114031
- Add inert per-org scheduler cron by @shellmayr in #114030
Eslint
- Enable @typescript-eslint/no-unnecessary-boolean-literal-compare by @JoshuaKGoldberg in #113681
- Enable unicorn/no-useless-undefined by @JoshuaKGoldberg in #113667
- Enable @typescript-eslint/non-nullable-type-assertion-style by @JoshuaKGoldberg in #113676
- Enable @typescript-eslint/no-useless-default-assignment by @JoshuaKGoldberg in #113678
- Enable unicorn/escape-case by @JoshuaKGoldberg in #113677
- Enable unicorn/no-typeof-undefined by @JoshuaKGoldberg in #113682
- Rule that disallows explicit type parameters on getQueryData and setQueryData by @TkDodo in #113917
- Enable unicorn/no-useless-collection-argument by @JoshuaKGoldberg in #113683
- Enable @typescript-eslint/prefer-return-this-type by @JoshuaKGoldberg in #113684
- No-calling-components-as-functions by @TkDodo in #113673
Explore
- Enable column editor drop downs to search the API by @nsdeschenes in #114061
- Short circuit attribute value requests by @nsdeschenes in #114338
- Add data-browsing-heat-map-widget feature flag by @gggritso in #114717
- Save cross-event spans queries by @nsdeschenes in #113417
- Add a prebuilt-query for AI Spans by @constantinius in #111883
- Short-circuit attribute fetches when a shorter prefix returned empty by @nsdeschenes in #113295
- Add support for arrays in Occurrences dataset by @manessaraj in #113567
- Move to a sticky header layout by @nsdeschenes in #113780
- Accept metrics as a cross-event type on saved queries by @nsdeschenes in #113788
Explorer
- Stop polling on api error and show status code in empty state by @aliu39 in #114273
- Implement chat links for drawer by @aliu39 in #113849
Integrations
- Add
enabledfield to missing-members endpoint response by @evanpurkhiser in #114462 - Drop SCM toggle fields from the organization details endpoint by @evanpurkhiser in #113925
- Expose SCM toggles in integration config UI by @evanpurkhiser in #113923
- Add SCM_INTEGRATION_CONFIG_BACKFILL outbox category by @evanpurkhiser in #114160
- Read SCM toggles from OrganizationIntegration config behind feature flag by @evanpurkhiser in #113864
- Add migration to backfill SCM toggles onto OrganizationIntegration config by @evanpurkhiser in #113841
- Dual-write SCM org-option toggles onto OrganizationIntegration config by @evanpurkhiser in #113842
Issues
- Pass active thread id to raw apple crash report by @scttcper in #114258
- Allow prioritizing a thread in the Apple crash report by @scttcper in #114231
- Render referenced-in-commit activity by @JoshFerge in #114299
- Record per-branch timings for issue feed EAP double-read by @shashjar in #113876
- Wire EAP double-read into issue feed search by @shashjar in #112996
- Implement EAP group search for issue feed queries by @shashjar in #112985
- Apply issue search conditions to prev/next event navigation by default by @shashjar in #114063
- New stack trace on shared issues by @scttcper in #111686
Minidump
- Add feature for uploading minidumps to object store by @tobias-wilfert in #114851
- Add feature and option for uploading attachments to objectstore by @tobias-wilfert in #113679
Night Shift
- Hand triage findings to autofix as user_context by @trevor-e in #114276
- Add custom issue-details tool for agentic triage by @trevor-e in #113982
- Add custom event-details tool for agentic triage by @trevor-e in #113870
Nightshift
- Reorganize settings by @chromy in #114171
- Stay on page when opening explorer by @chromy in #113895
- Make table responsive by @chromy in #113896
- Hook up button to manually trigger night-shift by @chromy in #113804
- Add endpoint to manually trigger nightshift by @chromy in #113803
Notifications
- Instrument killswitch mechanism for notifications by @hobzcalvin in #114505
- Add sentry-app-webhook-disabled notification template by @Christinarlong in #114114
Onboarding
- Refine SCM connect copy and visuals for legal review by @itsdangold in #114655
- Add platform kind for SCM card display labels by @jaydgoss in #114596
- Enforce display order for SCM feature cards by @jaydgoss in #114481
- Force session replay for SCM onboarding flow by @jaydgoss in #114329
- Add SCM-specific analytics variants to SetupDocs and back actions by @jaydgoss in #113880
Ourlogs
- Switch table expando to visualizations, with collapsed chart previews by @JoshuaKGoldberg in #114433
- Add trackAnalytics calls for new export modal by @JoshuaKGoldberg in #113611
- Add export modal with row limit by @JoshuaKGoldberg in #112674
- Add trackAnalytics for logs.explorer.continue_searching_clicked by @JoshuaKGoldberg in #113668
Preprod
- Add per-category controls for snapshot PR comments (EME-1046) by @runningcode in #114302
- Add Amplitude analytics to snapshot detail page by @mtopo27 in #114767
- Add scroll wheel navigation in single snapshot view by @NicoHinderling in #114565
- Add size status check rules API by @cameroncooke in #114414
- Configure higher rate limits for image endpoint by @NicoHinderling in #114559
- Add settings link to snapshot status checks by @NicoHinderling in #114449
- Pare down snapshot search bar filters (EME-1071) by @runningcode in #114316
- Update snapshot header with approval actions by @NicoHinderling in #113959
- Complete the new snapshot viewer toolbar and controls by @NicoHinderling in #113994
- Add view mode toggle between single and list views by @NicoHinderling in #113993
- Add SnapshotListView virtualized list component by @NicoHinderling in #113992
- Surface snapshot status check toggles in project settings by @mtopo27 in #114220
- Surface install URL expiration via installInfo by @mtopo27 in #114072
- Add fail_on_changed and fail_on_renamed snapshot status check options by @mtopo27 in #114214
- Register git_* attributes in EAP attribute registry (EME-1047) by @runningcode in #114153
- Track snapshots tab and row clicks by @mtopo27 in #114067
- Add only-if-diff toggle for snapshot PR comments (EME-1046) by @runningcode in #114035
- Add snapshot types and path helper by @NicoHinderling in #113955
- Add app_info to snapshot response with prefetch by @NicoHinderling in #113960
- Add granular installable app error codes (EME-883) by @runningcode in #113440
Projects
- Remove Project Details removal banners by @gggritso in #114600
- Add create_project_key, delete_project_key, delete_project RPCs by @BYK in #113596
Releases
- Add activities for auto release resolutions by @JoshFerge in #114443
- Add referenced-in-commit activity by @JoshFerge in #114298
Replays
- Add bulk mark-as-viewed button by @JoshuaKGoldberg in #113805
- Track event and video event counts on replay load by @gggritso in #114001
- Accept events and transactions data_source on replay count by @mjq in #113557
- Add replays as an events dataset by @wmak in #113723
Repos
- Always show uninstall button, disabled without access in repos v2 by @evanpurkhiser in #114751
- Add SCM repositories v2 page behind feature flag by @evanpurkhiser in #114591
- Register scm-repositories-v2 feature flag by @evanpurkhiser in #114558
- Add ScmRepositoryTable component and useRepoSearch hook by @evanpurkhiser in #113570
- Add ConnectProviderDropdown component by @evanpurkhiser in #113568
- Add NoIntegrationsEmptyState component by @evanpurkhiser in #113569
- Track last_sync on OrganizationIntegration config by @evanpurkhiser in #113686
Search
- Add userCount filter for issue search by @isaacwang-sentry in #114814
- Add recommended sort to SortOptions enum by @mrduncan in #113740
Seer
- Add ui_tools pass-through for client-side tool definitions by @JonasBa in #114778
- Add seer-explorer-ui-tools feature flag by @JonasBa in #114779
- Hide unconfigured Autofix projects by @ryan953 in #114455
- Add structured LLM context for issue detail page by @Mihir-Mavalankar in #114743
- Add projectSlug to the response of /autofix/automation-settings/ by @ryan953 in #114457
- Add structured LLM context for issue list page by @Mihir-Mavalankar in #114493
- Expose DSN lookup through public RPC by @JoshFerge in #114514
- Allow admin night shift trigger to fan out to all orgs by @trevor-e in #114496
- When repo is disabled, keep the Seer preference but filter it out in all read spots by @srest2021 in #114326
- Open repo details in a GlobalDrawer by @ryan953 in #113878
- Add project modal for Autofix by @ryan953 in #113751
- Tag night_shift.triage_action with fixability threshold by @trevor-e in #114404
- Show more workflow detail and add Autofix shortcut by @chromy in #114340
- Default Night Shift to enabled by @chromy in #114341
- Update Night Shift "default" label to on-by-default by @chromy in #114342
- Plumb reasoning_effort through trigger_autofix_explorer by @trevor-e in #114357
- Add structured LLM context for traces explorer page by @Mihir-Mavalankar in #114347
- Log successful Slack agent triggers with referrer by @alexsohn1126 in #114264
- Trigger explorer index if missing by @shruthilayaj in #114219
- Code mode slash commands (off/on/only) by @azulus in #114074
- Accept tri-state code mode (off/on/only) in explorer chat by @azulus in #114259
- Add structured LLM context for trace details page by @Mihir-Mavalankar in #114093
- Replay deferred Slack @-mentions after identity link by @alexsohn1126 in #113940
- Allow manual night shift runs to be dry runs by @chromy in #114036
- Add experiment tweaks to NightShiftTweaks model by @chromy in #114034
- Apply night shift tweaks to org and project runs by @chromy in #113905
- Add thinking blocks toggle to explorer chat by @chromy in #113182
- Add seer-night-shift-settings feature flag by @chromy in #113909
- Add get_dsn RPC method for Seer explorer agent by @JoshFerge in #113881
- Parse night shift tweaks with a pydantic model by @chromy in #113898
- Add SeerRun and SeerAgentRun mirror tables by @trevor-e in #113483
- Add Alpha badge to Night Shift settings by @chromy in #113787
- Add organization_id to Slack Seer agent analytics by @alexsohn1126 in #113708
- Scaffold Night Shift settings section by @chromy in #113697
- Add hotkey to global Ask Seer button by @natemoo-re in #113759
- Add global
AskSeerButtoncomponent by @natemoo-re in #113727
Seer Explorer
- Add size="md" prop to TextArea components in inputSection by @aliu39 in #113873
- Disable 'New chat' button when in empty state by @aliu39 in #113840
Seer Slack
- Parse legacy attachments by @alexsohn1126 in #114212
- Add hand-off button to slack autofix triggers by @leeandher in #114089
Sentry Apps
- Enforce is_disabled at the endpoint layer by @Christinarlong in #114469
- Add is_disabled field to SentryApp model by @Christinarlong in #114263
- Expose creator_label on RpcSentryApp by @Christinarlong in #114113
Slack
- Apply dashboard global filters when unfurling widgets by @DominikB2014 in #114435
- Request extended OAuth scopes on production install by @alexsohn1126 in #114091
- Unfurl issue dashboard widgets by @DominikB2014 in #113941
- Unfurl mobile-build dashboard widgets by @DominikB2014 in #113939
- Unfurl error-events dashboard widgets by @DominikB2014 in #113937
- Add preferred organization stage for resolution by @leeandher in #113854
- Add link parsing org esolution for multi-org seer events by @leeandher in #113846
Snapshots
- Add scroll progress indicator to snapshot list toolbar by @NicoHinderling in #114484
- Add Cmd/Ctrl+Arrow shortcuts to jump to first/last image by @NicoHinderling in #114475
- Add Build Metadata modal to snapshot actions menu by @NicoHinderling in #114470
- Show tooltip on truncated sidebar item names by @NicoHinderling in #114460
Source Map Config Issues
- Switching to sentry metrics to measure cross-project impact by @Abdkhan14 in #114461
- Filtering processing errors by source… by @Abdkhan14 in #113809
Spans
- Detach subsegment when parent set is being flushed by @lvthanh03 in #114580
- Add redis lock at flush time to not produce duplicate spans by @lvthanh03 in #113850
Supergroups
- Track total supergroups viewed by @cvxluo in #114606
- Sync drawer state to a query param by @scttcper in #114116
- Add assignee summary to supergroups endpoint by @cvxluo in #113856
- Add issues-with-supergroups endpoint by @cvxluo in #113563
Tracemetrics
- Add feature flag for equations in dashboards by @narsaynorath in #114720
- Change beta flags to new flags by @narsaynorath in #114157
- Link Explore to Alerts/Detectors by @narsaynorath in #113738
- Strip equation prefix from occurrence title by @narsaynorath in #114038
- Hide special metrics keys in scrubbing dropdown by @narsaynorath in #113807
Users
- Add suspension UI to gsAdmin user details by @dashed in #114354
- Enforce account suspension across all auth paths by @dashed in #114349
- Add is_suspended field to User model by @dashed in #114328
Other
- (ai) Add output messages field renderer by @obostjancic in #114412
- (ai-agents) Show estimated cost on AI agents overview by @obostjancic in #114702
- (alerts) Add integration footer to alert action dropdown by @souredoutlook in #113944
- (analytics) Track metrics widgets on dashboards for engagement by @bcoe in #114195
- (api-docs) Document collapse query param on issue detail and short ID endpoints by @MathurAditya724 in #114279
- (broadcasts) Add sync_locked to protect admin edits from changelog sync by @rahulchhabria in #113633
- (chunk-upload) Add zstd compression support for sourcemap uploads by @BYK in #113760
- (ci) Report backend test failures cleans up stale comments by @joshuarli in #113963
- (code-review) Forward repo deletion to seer by @suejungshin in #114117
- (conversations) Show tool input params in chat tool call lines by @matejminar in #113888
- (cross-events) Support metric cross event querying by @nsdeschenes in #113703
- (data-export) Render export_format extension in button text by @JoshuaKGoldberg in #113591
- (detectors) Cache disabled Detectors in the source-based Detector cache by @kcons in #114193
- (devserver) Auto-detect free port for dev-ui by @JonasBa in #113961
- (errors) Add chart content and export/settings buttons by @nikkikapadia in #113693
- (export) Support arrays in TraceItemDetailsEndpoint by @manessaraj in #114353
- (github-enterprise) Support GitHub Enterprise Cloud (GHE.com) webhooks and API by @tnt-sentry in #113966
- (hotkey) Add
modas alternative tocmd-on-mac, elsectrlby @natemoo-re in #114198 - (issue-details) Show detector settings link for AI-detected issues by @roggenkemper in #114062
- (issue-detection) Filter projects to those with transaction data by @roggenkemper in #114716
- (llm-issue-detection) Forward plan_tier to seer budget check by @roggenkemper in #114314
- (np) Warn, don't fail on missing test email configuration by @hobzcalvin in #114506
- (oauth) Add age column to application settings by @dcramer in #114736
- (organizations) Add find_organization_id_by_option_value RPC by @dashed in #114203
- (profiling) Support span streaming on continuous profile page by @mjq in #114184
- (repositories) Add api to expose auto sync for repositories by @wedamija in #114396
- (scm) Get permissions from the GitHub App installation by @jacquev6 in #114163
- (search-query-build) Force cmd + del to reset query builder by @nsdeschenes in #114305
- (search-query-builder) Add highlighted text by @nsdeschenes in #114472
- (seer agent) Add esc as a way to stop thinking by @sehr-m in #113734
- (sentry apps) Send email when circuit breaker flips for webhook disabling by @Christinarlong in #114115
- (skills) Add django-models agent skill by @trevor-e in #113837
- (snuba) Add sample rate option for span with errors tracking by @constantinius in #113785
- (taskworker) Accept Pod Name Argument for Push Taskworker by @george-sentry in #114358
- (tokens) Make org:ci a first-class token scope by @dcramer in #113394
- (trace-waterfall) Update empty state copy by @nsdeschenes in #113815
- (uptime) Use get_detectors_by_data_source for cache by @kcons in #114216
Bug Fixes 🐛
Aci
- Change the issue stream query filter from detector to monitor by @saponifi3d in #114796
- Re-land GitHub ticket action validation (#114095) with schema and selective test fix by @joshuarli in #114500
- Surface API error detail in edit form save toast by @malwilley in #114444
- Make ACTION_TARGET_TYPE_TO_STRING complete by @kcons in #114482
- Don't show deactivated user id for detector created by by @ceorourke in #114361
- Add an extra guard to legacy alert matching when executing an action by @malwilley in #113990
- Preserve additional_data keys when serializing ticket actions by @malwilley in #113770
- Rename automation to alert by @ceorourke in #113865
- Fix bug in detector query filter when using workflow_ids by @saponifi3d in #113768
Ai Conversations
- Extract gen_ai.output.messages when value is a string by @obostjancic in #114151
- Ignore page filters on conversation detail by @obostjancic in #114148
- Order conversation messages by span start/end by @obostjancic in #114129
Alerts
- Stop writing rule environment into the metric alert URL by @malwilley in #114206
- Skip orphaned triggers during detector serialization by @kcons in #113772
Api
- Sync email_unique when primary email changes by @michelletran-sentry in #114085
- Tighten project scoping on release-thresholds index by @michelletran-sentry in #114049
- Add ViewerContextAuthentication to DRF default auth classes by @azulus in #113985
- Catch OverflowError for out-of-range timestamp params by @mrduncan in #113920
Autofix
- Handle errors in code generation better by @Zylphrex in #114423
- Fix navigating to stale location in onClose by @aliu39 in #113877
- Poll autofix state slower by @Zylphrex in #114218
- Close drawer when navigating outside of current issue by @natemoo-re in #113814
Ci
- Use current base commit to calculate type coverage by @natemoo-re in #114739
- Fix snapshots to force usage of merge-base by @rbro112 in #114519
Cmdk
- Restore Zendesk index to help search by @JonasBa in #114368
- Remove extra virtualizer padding from command palette by @JonasBa in #114257
- Preserve mouse-leave selection state by @JonasBa in #114254
- Keep virtualized keyboard focus stable by @JonasBa in #114202
- Prevent leading icon flash when clearing the input by @JonasBa in #113975
- Show flat project settings list in browse mode by @JonasBa in #113872
- Defer state reset until close animation completes by @JonasBa in #113833
Conversations
- Keep detail panels independently scrollable by @obostjancic in #114306
- Only show preview tooltips on overflow by @obostjancic in #114294
- Collapse long traces list into '+N more' dropdown by @obostjancic in #114041
- Improve trace view conversation panel UX by @obostjancic in #113661
Dashboards
- Dashboard card preview misalignment by @nikkikapadia in #114628
- Show last editor instead of creator on current version by @skaasten in #114471
- Detect text widget content changes in revision diff by @skaasten in #114479
- Use avatarType from API to render correct avatar in revision list by @skaasten in #114336
- Remove checks needed for old pre-built dashboard handling by @gggritso in #114249
- Return avatarType and correct avatarUrl in revision createdBy by @skaasten in #114221
- Filter prebuilt dashboards server-side in add to dashboard modal by @DominikB2014 in #114210
- Remove dashboard redirects to old pre-built dashboard by @gggritso in #113758
- Allow wheel widgets to save with null limit by @DominikB2014 in #114094
- Adds stacked_area to display type blocklist for generated dashboards by @edwardgou-sentry in #113934
- Add validator in dashboard generation to enforce multiqueries having the same aggregates, columns, fields, and orderby by @edwardgou-sentry in #113922
Detectors
- Clear out owners fields when transfering Detectors to a new org by @kcons in #114333
- Propagate environment to metric issue occurrences by @malwilley in #114201
- Clarify Detector status vs enabled; update code accordingly by @kcons in #113761
Discover
- Remove my /result page redirect hacks by @nikkikapadia in #113921
- Skip homepage query when discover-query is disabled by @evanpurkhiser in #113911
- Add in redirect for discover-basic homepage by @nikkikapadia in #113904
- Nav item has no redirect for discover basic users by @nikkikapadia in #113847
- Render query name inside breadcrumb by @priscilawebdev in #113656
Drawer
- Extend panel background past right edge by @evanpurkhiser in #113919
- Tighten Seer Explorer header spacing by @JonasBa in #113729
Experiments
- Skip exposure for non-experiment features by @jaydgoss in #113698
- Close Amplitude race on experiment exposure by @jaydgoss in #113635
Explore
- Avoid rendering empty Layout.Header on traces page by @nsdeschenes in #113952
- Reduce repeated trace metric requests by @nsdeschenes in #113660
Explorer
- Ensure discover errors tool link has fields by @Zylphrex in #114573
- Conversation_url should always redirect to organizationSlug subdomain by @aliu39 in #114344
- Fix slide in animation by @aliu39 in #114250
- Move tool call status to text tooltip, differentiate failed vs empty by @aliu39 in #113965
- Fix broken runId state by @aliu39 in #113748
Hotkey
- Guard against undefined event.key and skip IME composition events by @sentry in #114371
- Migrate
useHotkeystoevent.key|codeby @natemoo-re in #114192
Integrations
- Register missing GitHub project management feature flag by @kcons in #114789
- Match SCM repos by externalId by @jaydgoss in #113949
- Support multiple provider values in organization-integrations endpoint by @Christinarlong in #114393
- URL-safe quote project_id by @cmanallen in #114418
- Route Perforce install through API pipeline modal by @mujacica in #114312
- Switch SCM backfill migration to emit cell outboxes by @evanpurkhiser in #114167
- Scope serialize_repository RPC by organization_id by @michelletran-sentry in #114179
- Retry SCM backfill as a region-silo true-only scan by @evanpurkhiser in #114046
- Use cell RPC for SCM backfill option reads by @evanpurkhiser in #113908
- Return existing repo on concurrent create race by @jaydgoss in #113813
- Match installed repos by external_id by @evanpurkhiser in #113593
Issues
- When navigating issue groups, reset stack trace by @scttcper in #114801
- Use tag-aware condition resolver for seen stats badge & sparkline by @shashjar in #114245
- Use Heading in sentry app external issue modal title by @evanpurkhiser in #114748
- Load member store on issue details page by @scttcper in #114508
- Preserve clipped box reveal state by @scttcper in #114489
- Route adjacent-event lookups to Events dataset by @yuvmen in #114474
- Improve issue view title generation prompt by @scttcper in #114391
- Persist stack trace display options by @scttcper in #114256
- Thread selector dropdown order on event navigation by @scttcper in #113946
Metrics
- Stabilize metric selector hover panel by @nsdeschenes in #114162
- Use default value instead of hack by @wmak in #113731
Notifications
- Filter organization-integrations to only allowed providers by @Christinarlong in #114394
- Don't assume context.replay is not None by @kcons in #114370
- Don't use None when a dict is expected by @kcons in #114247
- Recursively serialize datetime in task arguments by @untitaker in #114048
Onboarding
- Swap to variant prop on btn by @nsdeschenes in #114842
- Add upgrade suffix to SCM metrics tooltip by @jaydgoss in #114518
- Sync SCM context with product toggles on setup-docs by @jaydgoss in #113763
Options
- Limit option logging by @klochek in #114187
- Fix system options allowlist checks by @klochek in #114181
Ourlogs
- Use default yAxisSplitNumber behavior for TimeSeriesWidgetVisualization by @JoshuaKGoldberg in #113741
- Handle collapsing row heights in infinite table measurements by @JoshuaKGoldberg in #113602
Preprod
- Derive sidebar highlight from selection state in list view by @NicoHinderling in #114744
- Stabilize scroll position in Split mode snapshot list by @NicoHinderling in #114589
- Keep snapshot group headers visible by @mtopo27 in #114468
- Show total image count in snapshot status pills by @NicoHinderling in #114561
- Detect renames when multiple files share the same content hash by @NicoHinderling in #114497
- Stabilize snapshot toolbar controls by @runningcode in #114409
- Keep snapshot diff toggle visible by @runningcode in #114415
- Enforce has_project_access on snapshot detail GET and DELETE by @michelletran-sentry in #114169
- Handle 404 gracefully in install details (EME-883) by @runningcode in #113149
Replays
- Ignore issue stream sort on issue replays by @scttcper in #114654
- Require project:write or project:admin to delete a replay by @michelletran-sentry in #114159
- Constrain logs layout with ViewportConstrainedPage by @JoshuaKGoldberg in #113899
- Disable the dataset by @wmak in #113824
Repositories
- Silence github errors when performing auto-sync by @wedamija in #114650
- Silence bitbucket errors when performing auto-sync by @wedamija in #114651
- Fix some more VSTS repository errors by @wedamija in #114643
- Silence gitlab errors when performing auto-sync by @wedamija in #114647
- Don't raise errors for broken scms in repo sync task by @wedamija in #113769
- Make sure that the repo-sync only disables tasks that haven't had any related activity for 30 days by @wedamija in #114005
- Fix repo syncing to skip deletions if we hit the pagination limit when fetching repositories by @wedamija in #113978
- Make sure we write
external_idduring auto source code mapping by @wedamija in #113695
Search
- Don't assume non-empty projects in get_teams_for_users by @kcons in #114517
- Map bare
durationtotransaction.durationin search parser by @BYK in #114473
Search Query Builder
- Cmd del not clearing free text by @nsdeschenes in #114577
- Fix semver issues and enable limiting keys to single selects by @nsdeschenes in #114290
Seer
- Honor project stopping point preference in night shift runs by @trevor-e in #114735
- Route seat-based-seer-enabled check per-org in night shift cron by @trevor-e in #114590
- Tidy up the workflows table by @trevor-e in #114545
- Persist night shift agent_run_id as soon as the run starts by @trevor-e in #114544
- Pre-filter night-shift schedule by SeerProjectRepository by @trevor-e in #114451
- Branch trigger_handoff on autofix-on-explorer flag by @leeandher in #114360
- Open metrics links with encoded query state by @isaacwang-sentry in #114237
- Responsive drawer handling by @natemoo-re in #114325
- Hardcode alt layouts for seer hotkey by @natemoo-re in #114238
- Propagate viewer_context on explorer run polling by @trevor-e in #114281
- Hide hotkey on mobile by @natemoo-re in #114176
- Clear Seer automation handoff preference atomically by @srest2021 in #114073
- Cap profile execution tree depth to prevent Pydantic recursion errors by @Mihir-Mavalankar in #114070
- Respect context engine toggle for screenshot selection by @Mihir-Mavalankar in #114008
- Normalize bulk-selection alert styles for Autofix and Code Review by @ryan953 in #113868
- Always use default variant by @natemoo-re in #113800
- Center loading and toolcall states by @natemoo-re in #113767
- Don't allow images in markdown by @chromy in #113726
- Introduce synced useSeerExplorerRunId hook by @natemoo-re in #113757
- Use animated icon for busy state by @natemoo-re in #113746
- Fix textarea autosize and scrollbar bugs by @JonasBa in #113745
- Inline explorer input action buttons by @JonasBa in #113735
- Wrap user messages by @JonasBa in #113725
Seer Agent
- Remove restart icon by @sehr-m in #113733
- Tool call changes, icon changes, messages max width by @sehr-m in #113732
Settings
- Consistently use row layout by @TkDodo in #114150
- Preserve custom integration breadcrumb title by @priscilawebdev in #114127
- Breadcrumb duplication on sentry app pages by @priscilawebdev in #113891
Slack
- Drop stale aggregateSort in explore unfurl when field is unknown by @DominikB2014 in #114334
- Prompt unlinked users to link identity for dashboards URLs by @DominikB2014 in #113590
- Prefer aggregateField over visualize in explore unfurl by @DominikB2014 in #114188
- Default dashboard unfurl to My Projects, not All Projects by @DominikB2014 in #114164
Snuba
- Migration to remove QuerySubscription.time_window column by @kcons in #114403
- Propagate referrer through trace sub-queries by @roggenkemper in #114332
Tests
- Deflake registerForm tests by @ryan953 in #114632
- Deflake projectQuickLinks tests by @ryan953 in #114631
- Deflake stackTrace tooltip URL test by @ryan953 in #114624
- Deflake customerDetails disabled permission test by @ryan953 in #114640
- Deflake react-native metrics onboarding test by @ryan953 in #114627
- Deflake timeSince tooltip timezone test by @ryan953 in #114621
- Deflake versionHoverCard render test by @ryan953 in #114623
- Fix flaky cart preview test by @dashed in #114387
Trace
- Add referrer to the trace view by @wmak in #114346
- Fix span bars rendering too far to the right when scrollbar is visible by @nsdeschenes in #113166
Tracemetrics
- Remove sorting styles from embedded table by @nsdeschenes in #114588
- Update delete metric tooltip message by @narsaynorath in #114168
- Drop 'equation|' prefix in alerts/monitors UI by @narsaynorath in #113979
- Remove optional platform check for metrics sidebar by @k-fish in #114057
- Remove filter cell actions from aggregates by @k-fish in #113973
- Cap metric queries in alerts to same as explore by @narsaynorath in #113914
- Update equation filter for chart footer total count by @narsaynorath in #113906
- Aggregates table tweaks by @nsdeschenes in #113651
Traces
- Allow the chart to shrink by @nsdeschenes in #114556
- Correct 429 and 500 help text for load failures by @JoshuaKGoldberg in #114043
Typing
- Guard None options in ReconnectingMemcache by @JoshFerge in #113928
- Narrow organization_id in from_auth by @JoshFerge in #113927
Ui
- Disable links in project selector avatars by @scttcper in #114775
- Use variant by @natemoo-re in #114602
- Render passive drawer behind tooltips and modals by @natemoo-re in #114488
- Snap-close stuck tooltips when transitioning through overlays by @obostjancic in #114032
Uptime
- Add missing audit log data by @klochek in #113794
- Add audit log when we disable broken uptime detectors by @klochek in #113722
Other
- (agents) Allow token counts to wrap when space is constrained by @ArthurKnaus in #114024
- (ai-trace) Minimize system prompts in trace input by @obostjancic in #114701
- (alerts-migration) Make sure script processes generic metrics migrated alerts by @nikkikapadia in #114612
- (api-docs) Widen dataset enum on /events/ to include discover, errors, transactions by @MathurAditya724 in #114787
- (array-attributes) Expose flag via API by @nsdeschenes in #114700
- (attachments) Delete based on date_expires in cleanup job by @matt-codecov in #111955
- (auth) Cleanly handle malformed token IDs in ApiTokenDetailsEndpoint by @kcons in #114386
- (automations) Hide value input for is set/not set match types by @malwilley in #114452
- (breadcrumbs) Align severity level label with title by @cvxluo in #114745
- (cache) Swap self-hosted to ReconnectingMemcache and ban PyMemcacheCache by @gricha in #113871
- (chartcuterie) Render all timeseries when widget has multiple aggregates by @DominikB2014 in #114436
- (charts) Guard echarts.getInstanceByDom against detached DOM nodes by @JoshuaKGoldberg in #114608
- (checkout) Remove TopBar.Slot usage from CheckoutSuccess by @JonasBa in #113754
- (cmd-k) Limit dsn lookup requests to member projects by @klochek in #114174
- (codeBlock) Contain codeblock tabs row on narrow viewports by @jaydgoss in #113455
- (CODEOWNERS) Transfer source_code_management to coding-workflows by @kcons in #114255
- (cross-events) Change metrics to application metrics by @nsdeschenes in #113969
- (csp) Allow browser.sentry-cdn.com in connect-src by @ryan953 in #114617
- (detection) Reduce trace selection batch size from 50 to 5 by @roggenkemper in #114372
- (digests) Retry deliver_digest on lock conflict by @kcons in #114383
- (eap) Preserve metadata for convention replacements by @buenaflor in #114039
- (forms) Reserve space for auto-save indicator to prevent layout shift by @TkDodo in #114292
- (grouping) Prevent DiagnosticComposeException from determining issue title by @romtsn in #114154
- (hooks) Convert Hook component to FC to prevent child remounting by @TkDodo in #114289
- (hotkeys) Prevent event.code fallback from matching wrong keys on non-QWERTY layouts by @TkDodo in #114714
- (hybridcloud) Improve invite RPC performance with caching and reduced retries by @sentry in #113503
- (intercom) Move back to user ID by @sentaur-athena in #114209
- (iswf) Fixes issue with old Sentry App rules failing to serialize when alert schema is removed by @GabeVillalobos in #113829
- (java) Remap exceptions without a module by @romtsn in #113691
- (jest) Update eventDisplay test for TanStack Query timing by @sentry in #114734
- (jest-test) Make useReplayData incremental test deterministic with fake timers by @sentry in #114733
- (legal) Prevent stored XSS via javascript: URLs in policy revision flow by @swartzrock in #114283
- (member merge) Don't perform merge if the verification token is out of date by @klochek in #114311
- (metric-alerts) Add app installations to alert serializer by @klochek in #114429
- (native) Prioritize rendered crash report thread by @scttcper in #114618
- (notification-actions) Better access control for org-wide actions by @malwilley in #113718
- (organizations) Scope delete_organization_member by organization id by @michelletran-sentry in #113793
- (pageFrame) Adjust header layout for better spacing above alert by @TkDodo in #113781
- (perforce) Add config allowlist to exclude password from get_config_data by @mujacica in #114021
- (pipeline) Guard against missing installation_id in GitHub install redirect by @evanpurkhiser in #114363
- (pr-comments) Align option default in task body with queue gate by @evanpurkhiser in #113806
- (profiles) Use EAP spans instead of Transaction event on Profile screens by @mjq in #112975
- (releases) Prevent premature issue resolution from commit messages by @JoshFerge in #107138
- (repos) Set minMatchCharLength to 1 for repo search by @evanpurkhiser in #114582
- (seer-agent) Fix showActions on hover and cleanup broken focusedBlockIndex state by @aliu39 in #113739
- (seer-explorer) Restrict block actions and copy button to assistant role only by @aliu39 in #113843
- (seer-preferences) Don't delete SeerProjectRepository on repo hide by @srest2021 in #114509
- (seer-slack) Skip subscription-gated access check in control silo by @leeandher in #113716
- (skills) Remove billing from control silo references in agent skill docs by @dashed in #114382
- (slack-seer) Ensure organization context is present for handoff storage + block kit fix by @leeandher in #114585
- (slot) Prefer graceful degradation when slot not found by @natemoo-re in #114547
- (snapshots) Hide diff overlay while image loads and deduplicate computeMaskSize by @NicoHinderling in #114450
- (spans-migration) Don't migrate homepage discover queries by @nikkikapadia in #114467
- (supergroups) Close drawer on click outside, but not modals by @scttcper in #114574
- (sync_repos) Handle string JSON in VSTS and error dicts in GitLab by @wedamija in #114656
- (trace-waterfall) Attempt to fix flaky test by @nsdeschenes in #113801
- (tracemetrics, dashboards) Render metric selector via portal by @nsdeschenes in #114604
- (types) Remove sentry.api.paginator from mypy ignore list by @kcons in #114510
- (workflow_engine) Ignore Workflow.DoesNotExist in trigger_action task by @sentry in #114385
- (workflows) Don't require Workflow.config to create by @kcons in #113859
- Flaky
test_handlerby isolating trace context in log handler tests by @joshuarli in #114491 - Handle duplicate list values in resolve_top_event_conditions by @JoshFerge in #114400
- Do not export fetchDataQuery by @TkDodo in #114408
- Reject card actions with integration is not linked to the group's org by @michelletran-sentry in #114191
- Reject options-load when integration is not liked to the group's org by @michelletran-sentry in #114185
- Normalize issues and replays to info alerts with icons by @JoshuaKGoldberg in #113687
- Revert "fix(issues): Hide line numbers on non-in-app stack trace frames (#112885)" by @getsentry-bot in 996b5654
- Revert parallel devservices startup by @joshuarli in #113755
Documentation 📚
- (agents) Mention ViewerContext identity wiring by @gricha in #113617
Internal Changes 🔧
✂️
- Drop pipeline entry point from knip config by @evanpurkhiser in #114228
- Update knip by @TkDodo in #114037
Aci
- Fix monitor form editable breadcrumb titles by @malwilley in #114726
- Add callout on inline alert form by @malwilley in #114581
- Add test coverage around valid comparison delta values by @ceorourke in #114092
- Return serialized Detector for metric alert rule POST and PUT endpoints by @ceorourke in #113816
- Return workflow response from issue alert POST and PUT endpoints by @ceorourke in #113752
- Unschedule prune_old_open_period_activity by @kcons in #113744
Autofix
- Add analytic when users click on autofix evidence by @Zylphrex in #114741
- Remove impact_assessment and triage steps by @chromy in #114572
- Remove impact_assessment and triage from Explorer next steps by @chromy in #114567
- Rollout autofix runs view with new autofix by @Zylphrex in #114315
- Remove unused Seer API get preferences helpers by @srest2021 in #114098
- Pass optional args to startStep as object by @Zylphrex in #114097
- Split AutofixCards file into multiple files by @Zylphrex in #114000
Billing
- Migrate spend notifications form to new form system by @TkDodo in #114303
- Remove Developer plan changes link from cancel banner by @souredoutlook in #114122
- Bump sentry-protos to 0.8.17 by @noahsmartin in #113773
- Bumped protos version to 0.8.16 by @brendanhsentry in #113766
Button Variant
- Remove deprecated priority prop from Button by @natemoo-re in #114756
- Cleanup core and forms by @natemoo-re in #114729
- Update docs to reference variant by @natemoo-re in #114721
- Shim downstream components for priority/variant compat by @natemoo-re in #114546
Cmdk
- Make CMDKQueryOptions generic to fix type inference by @TkDodo in #114410
- Remove projects array from identifier lookup query key by @JonasBa in #114512
- Remove cmd-k feature flags from backend by @JonasBa in #114439
- Remove cmd-k feature flag checks from frontend by @JonasBa in #114441
- Remove old cmdk implementation by @JonasBa in #114224
- Wrap bulk assign action in parent 'Assigned to' action by @JonasBa in #114374
- Eagerly load filter key sections and cap boolean attributes by @JonasBa in #114125
- Split CMDKAction rendering to avoid useQuery without a resource by @JonasBa in #114066
- Flatten modal.tsx into commandPalette.tsx by @JonasBa in #113945
Conversations
- Further decouple conversations from insights by @nsdeschenes in #113902
- Move conversations to explore layout by @nsdeschenes in #113897
Dashboards
- Inline top_n -> area conversion into widget library templates by @DominikB2014 in #114563
- Drop DashboardTombstone table by @gggritso in #114267
- Remove DashboardTombstone model by @gggritso in #114265
- Remove old prebuilt General dashboard by @gggritso in #113608
- Clean up RevisionListItem logic and naming by @skaasten in #114161
Deps
- Bump sentry-conventions to 0.6.0 by @buenaflor in #114750
- Bump sentry-conventions to 0.5.0 by @buenaflor in #113515
Experiments
- Default useExperiment reportExposure to false by @jaydgoss in #114217
- Add flag to feature flag checking functions to allow us to skip exposing the experiment, and stop exposing experiments when we return all feature flags from the ui by @wedamija in #114243
Explore
- Migrate useGetTraceItemAttributeValues to apiOptions by @nsdeschenes in #114323
- Clean up page frame flag by @nsdeschenes in #114304
- Move releases to views/explore by @nsdeschenes in #113892
- Move profiles into views/explore by @nsdeschenes in #113820
- Move replays to views/explore by @nsdeschenes in #113827
- Move conversations to views/explore by @nsdeschenes in #113893
Explorer
- Do slide in animation for loaded response blocks by @aliu39 in #114280
- Simplify topbar fb condition by @aliu39 in #114348
- Cleanup chat keyboard nav and dont show broken link icon while loading by @aliu39 in #114223
- New prefill question by @aliu39 in #113970
- Populate project repos in explorer user_org_context by @srest2021 in #113844
Flags
- Remove organizations:releases-serializer-v2 by @wedamija in #113504
- Remove
organizations:event-unique-user-frequency-condition-with-conditionsfeature flag by @wedamija in #112755
Forms
- Migrate reprocess event modal by @priscilawebdev in #114836
- Migrate data secrecy support access toggle by @priscilawebdev in #114840
- Migrate create release integration modal by @priscilawebdev in #114832
Grouping
- Correctly parameterize dotted ints by @lobsterkatie in #114776
- Improve URL parameterization by @lobsterkatie in #114753
- Add more URL parameterization test cases by @lobsterkatie in #114615
- Restrict values in IPv4 regex by @lobsterkatie in #114362
- Add IP false positive test by @lobsterkatie in #114458
- Clear old and invalid secondary grouping config options by @lobsterkatie in #114378
- Parameterize ints and hexes abutting underscores by @lobsterkatie in #114345
- Add random id parameterization regex by @lobsterkatie in #113756
- Add more broken parameterization cases by @lobsterkatie in #113737
Insights
- Remove dynamically loaded Insight widgets and cascading dead code by @gggritso in #114381
- Delete Insights Overviews by @gggritso in #114189
- Delete AI Insights Module pages by @gggritso in #114248
- Delete Mobile Insights pages by @gggritso in #114246
- Delete Frontend Insights Module pages by @gggritso in #114233
- Delete Backend Insights Module pages by @gggritso in #114200
- Platformize summary pages by @gggritso in #113976
Integrations
- Drop legacy SCM-option plumbing and purge the option rows by @evanpurkhiser in #114365
- Drop githubNudgeInvite from org object in invite banner by @evanpurkhiser in #114463
- Remove legacy GitHub/GitLab feature toggles from detail view by @evanpurkhiser in #113924
- Remove org-level gates for SCM source context and Perforce by @mujacica in #114132
- More GitHub API request tagging + org_id by @armenzg in #113786
Issue Detection
- Log AI General Issues rather than ingest them by @roggenkemper in #114755
- Remove general AI detected issues by @roggenkemper in #114754
- Move LLM detection scheduler by @roggenkemper in #114044
- Remove unused LLM detection projects-allowlist by @roggenkemper in #114045
Issues
- Fix typo groups_to_transistion -> groups_to_transition by @mrduncan in #114633
- Drop redundant dict() re-cast in materialize_metadata by @mrduncan in #114648
- Use module logger in issue_occurrence by @mrduncan in #114646
- Use generator instead of list comp in handle_merge any() by @mrduncan in #114644
- Simplify get_highlight_preset_for_project branches by @mrduncan in #114642
- Remove redundant Fragment in EventCreatedTooltip by @mrduncan in #114649
- Replace redundant elif with else in update_inbox by @mrduncan in #114635
- Remove performance issues search flag by @ceorourke in #114507
- Delete option registration for prev/next event navigation by @shashjar in #114064
- Migrate similar stack trace to SimpleTable by @scttcper in #113341
- Rename filterThreadInfo to getThreadInfo by @scttcper in #113971
- Convert GroupType class config to ClassVar by @JoshFerge in #113423
Llm Detection
- Updated titles and ordering to match the list in seer by @nora-shap in #114783
- Add transacion to fingerprint for grouping by @shayna-ch in #113974
Onboarding
- Enforce display order for SCM provider pills by @jaydgoss in #114727
- Drive SCM feature card volumes from billing-config by @jaydgoss in #114397
- Polish new SCM onboarding flow styling by @itsdangold in #114261
Preprod
- Extract shared SnapshotsToolbar component by @mtopo27 in #114746
- Update snapshot list framing by @mtopo27 in #114448
- Add markdown snapshot coverage by @mtopo27 in #114434
- Remove unused image column code by @mtopo27 in #114431
- Migrate shared preprod status check functionality to shared utils by @rbro112 in #114268
- Replace sidebar disclosure sections with status filter pills by @NicoHinderling in #113988
- Use transparent color sentinel for overlay visibility by @NicoHinderling in #113987
- Remove preprod-issues feature flag by @chromy in #114023
- Flatten empty-state ternary and drop redundant Fragment by @NicoHinderling in #113956
- Drop hash-keyed manifest fallback by @NicoHinderling in #113967
Projects
- Fix N+1 in get_access_by_project by @scttcper in #113879
- Harden regression coverage for delete_project and delete_project_key by @BYK in #113792
Releases
- Filter artifact bundle joins by organization_id by @scttcper in #114103
- Migrate releases to explore layout by @nsdeschenes in #113950
Replays
- Migrate to explore layout by @nsdeschenes in #113942
- Make useReplayCount discover uses explicit by @mjq in #113586
- Fix flaky test_export_replay_row_set by @joshuarli in #113742
Repos
- Use flag-aware Seer provider check in SCM views by @evanpurkhiser in #114478
- Refactor ScmRepositoryTable to per-install actions and virtualized list by @evanpurkhiser in #114511
- Share Seer-compatible provider check across SCM views by @evanpurkhiser in #114364
Repositories
- Overide github error handling for repo sync by @wedamija in #114595
- Clean up vsts error handling by @wedamija in #114592
- Abstract broken integration handling into base class by @wedamija in #114464
Scraps
- Adopt
GlobalModalby @natemoo-re in #114447 - Support
openInNewTabon LinkButton by @natemoo-re in #114490 - Add variant prop to button, deprecate priority by @natemoo-re in #113838
- Adopt pagination by @natemoo-re in #114079
- Export more Tanstack form helpers to enable composition by @malwilley in #114260
- Migrate legal & compliance page to new form system by @TkDodo in #114155
- Adopt standard backdrop by @natemoo-re in #113968
Seer
- Refactor to leverage useOrganizationMutationOptions by @ryan953 in #113861
- Move /seer/workflows to /issues/autofix by @chromy in #114715
- Send project slugs instead of numeric IDs in LLM context by @Mihir-Mavalankar in #114568
- Add progress logs to night shift schedule cron by @trevor-e in #114557
- Remove unused SeerRawPreferenceResponse and improve write-time repo id validation by @srest2021 in #114392
- Cleanup disabled seer onboarding wizard by @ryan953 in #113857
- Move trace routes to stable structured context set by @Mihir-Mavalankar in #114440
- Rename Explorer to Agent across backend Python by @trevor-e in #114337
- Rename 'Open Seer' button to 'Open Autofix' by @chromy in #114425
- Remove unused Seer project preferences cleanup tasks by @srest2021 in #114112
- Remove Seer API dual writes in project preference endpoints by @srest2021 in #114239
- Remove Seer API project preference dual writes in internal flows and helpers by @srest2021 in #114240
- Remove enableSeerEnhancedAlerts org preference by @leeandher in #114213
- Remove enableSeerEnhancedAlerts settings toggle by @leeandher in #114211
- Skip stale and security-report groups in supergroups backfill by @yuvmen in #114230
- Inline SeerProjectRepository and ProjectOption cleanups for disabled/hidden repos and deleted integrations by @srest2021 in #114110
- Remove redundant page title from autofix project settings by @chromy in #114145
- Update isSeerExplorerEnabled to use gen-ai-features flag by @aliu39 in #114099
- Use neutral variant for
codeby @natemoo-re in #114083 - Read project preferences only from Sentry DB, part 3 by @srest2021 in #114002
- Tweak loading state by @natemoo-re in #114075
- Use seer-night-shift-settings flag for night shift UI by @chromy in #114022
- Read project preferences only from Sentry DB, part 2: handoff & stopping point paths by @srest2021 in #113972
- Read project preferences only from Sentry DB, part 1 by @srest2021 in #113835
- Implement custom loading state by @natemoo-re in #113866
- Use priority field instead of frontend route filtering by @Mihir-Mavalankar in #113717
- Add priority-based root node selection to snapshot_to_markdown by @Mihir-Mavalankar in #113715
- Remove focus hijack by @JonasBa in #113713
Seer Agent
- 30% default width for seer drawer by @sehr-m in #113875
- Drawer in front of tooltips by @sehr-m in #113869
- Remove enter hint by @sehr-m in #113839
- Fix hotkeys by @sehr-m in #113863
- Change user message and input margins/padding by @sehr-m in #113836
Seer Slack
- Omit seer fix button when no other actions are present by @leeandher in #114090
- Remove explorer cache key fallback by @alexsohn1126 in #113810
- Safely convert routing to control silo task by @leeandher in #113721
- Rename explorer to agent in seer agent slack integration by @alexsohn1126 in #113444
Sentry Apps
- Bump time for issue webhook to 12s and cleanup old task by @Christinarlong in #114205
- Bump task duration times for tasks by @Christinarlong in #114101
Settings
- Use mutation hooks for sentry app tokens by @priscilawebdev in #114833
- Migrate project release tracking to FormSearch by @priscilawebdev in #114698
- Use SettingsPageHeader subtitle on dynamic sampling by @evanpurkhiser in #114576
- Use SettingsPageHeader subtitle on console SDK invites by @evanpurkhiser in #114575
- Migrate tempest credentials modal to scraps by @priscilawebdev in #114144
- Migrate spike protection toggle to new form system by @TkDodo in #114293
- Update Seer settings docs link for Autofix by @shashjar in #114102
- Drop legacy FieldGroup in reportUri by @priscilawebdev in #114142
- Migrate api applications form by @priscilawebdev in #113887
- Migrate redeemPromoCode page to new form system attempt 2 by @TkDodo in #113889
- Remove organization breadcrumb by @evanpurkhiser in #113706
Snapshots
- Rename 'modified' to 'changed' in snapshot UI by @NicoHinderling in #114747
- Update sidebar UI to be collapsible again by @NicoHinderling in #114610
- Move card selection from header to card frame by @NicoHinderling in #114645
- Share focused snapshot card frames by @mtopo27 in #114498
- Add keyboard nav hints and visual feedback by @NicoHinderling in #114432
- Refine snapshot sidebar by @mtopo27 in #114356
- Add per-image diffThreshold support by @NicoHinderling in #114335
- Buffer image swap to eliminate flash during single-view navigation by @NicoHinderling in #114271
- Final UI tweaks by @NicoHinderling in #114232
Spans
- Clean up enforce-segment-size option by @lvthanh03 in #114593
- Unregister chunk oversized segments option by @lvthanh03 in #113790
Tsc
- Migrate sentry-apps endpoints to apiOptions by @TkDodo in #114834
- UseReleasesWidgetQuery to apiOptions by @TkDodo in #114427
- Insights useReleases to apiOptions by @TkDodo in #114411
- Migrate useOrganizationsWithRegion to apiOptions by @TkDodo in #114413
- Remove any from QueryKeyEndpointOptions by @TkDodo in #114419
- UseReleases to apiOptions by @TkDodo in #114131
- Remaining widget queries to apiOptions by @TkDodo in #114146
- UseFetchParallelPages and useFetchSequentialPages to apiOptions by @TkDodo in #114139
- UseLogsQuery to apiOptions by @TkDodo in #114143
- Replay-count to apiOptions by @TkDodo in #114012
- Issue details endpoint to apiOptions by @TkDodo in #114059
- Issue autofix endpoint to apiOptions by @TkDodo in #113918
- Seer preferences to apiOptions by @TkDodo in #113894
- Move events-stats endpoint to apiOptions by @TkDodo in #113812
- Move event-timeseries endpoint to apiOptions by @TkDodo in #113883
- Move attribute validation endpoint to apiOptions by @TkDodo in #113886
- Organization details endpoint to apiOptions by @TkDodo in #113782
- Issues-timeseries endpoint to apiOptions by @TkDodo in #113779
- Move integrations-repos endpoint to apiOptions by @TkDodo in #113784
- Remove useInfiniteApiQuery by @TkDodo in #113778
- Remove getResponseHeader from useApiQuery by @TkDodo in #113775
- Remove re-export of TansTack Query from queryClient.tsx by @TkDodo in #113777
- Issues endpoint to apiOptions by @TkDodo in #113525
Typing
- Drop redundant cast in trace metric search type by @JoshFerge in #113930
- Drop redundant cast on TraceMetric.metric_type by @JoshFerge in #113932
- Drop redundant casts in resolve_measurement_value by @JoshFerge in #113933
- Upgrade mypy to 1.20.1 by @JoshFerge in #113419
- Misc test-side type hint fixes by @JoshFerge in #113428
- Convert RegressionDetector + AttributeHandler config to ClassVar by @JoshFerge in #113422
- Strengthen shared integrations base client typing by @armenzg in #113474
- Refetch via queryset instead of refresh_from_db after narrowing by @JoshFerge in #113427
Ui
- Use
test-ciinstead ofCI=trueto run tests w/ agents by @scttcper in #114759 - Drop jest-junit by @scttcper in #114564
- Convert
useHoverOverlayto state machine by @natemoo-re in #113628
Other
- (ai-monitoring) Remove legacy aiModelCosts config and fetch_ai_model_costs task by @constantinius in #113534
- (ai-spans) Tighten AI message normalizer types by @obostjancic in #114705
- (ai-trace) Consolidate AI input/output format fallbacks by @obostjancic in #114028
- (alerts) Move editable name into breadcrumbs and remove page frame checks by @malwilley in #114476
- (api) Tighten accept-invite cleanup-delete path by @michelletran-sentry in #114040
- (artifact-bundles) Filter search joins by organization_id by @scttcper in #114111
- (auth) Add metrics for Relay authentication by @Dav1dde in #114417
- (buffer) Delete unused InProcessBuffer class by @vgrozdanic in #114843
- (cells) Remove platform filter and project sort from org listing by @lynnagara in #114785
- (ci) Increase Jest shards from 4 to 8 for faster CI by @NicoHinderling in #114388
- (coding-agent) Remove unused CodingAgentPipelineView by @evanpurkhiser in #113436
- (copilot) Remove Copilot Extension by @JoshFerge in #113882
- (crons) Adjust specific environment monitor stats query by @scttcper in #114277
- (cross-events) Remove disabled save button by @nsdeschenes in #114330
- (db) Migrate remaining create_or_update call sites to update_or_create by @vgrozdanic in #114430
- (dep) Bump granian to 2.7.4 by @gi0baro in #113799
- (detectors) Migrate error detector form to TanStack Form by @malwilley in #114377
- (discover) Make Save As a primary button and reorder action buttons by @JonasBa in #114503
- (eco) Adds debug keys to bitbucket integration by @GabeVillalobos in #114068
- (emails) Update Sentry logo asset and display dimensions by @rahulchhabria in #114123
- (escalating) Skip flaky test_is_forecast_out_of_range by @JoshFerge in #113951
- (explore-events) Delay requests until in view by @nsdeschenes in #114420
- (features) Remove graduated SCM source context and Perforce flags by @mujacica in #114134
- (frontend) Add type coverage diff PR comment by @TkDodo in #114428
- (getsentry) Lazy load enhanced org stats by @scttcper in #114121
- (gitlab) Wrap status sync delete+create in transaction.atomic() by @iamrajjoshi in #112490
- (groups) Replace category with category_v2 by @ceorourke in #114251
- (ingest) Register option for default trace ID by @thetruecpaul in #114376
- (intercom) Replace zendesk with new help center by @sentaur-athena in #114609
- (issue-ownership) Switch issue assignment off OwnerActorField by @cvxluo in #113707
- (jest) Update known flaky tests [2026-05-04] by @cursor[bot] in #114697
- (logs) Move Set Up Logs button from top bar to page filters by @JonasBa in #114502
- (metrics) Align trace metrics layout spacing by @nsdeschenes in #113680
- (mypy) Make strong typing the default by @armenzg in #114719
- (nightshift) Rename agent_run_id to run_id in response by @chromy in #114301
- (notifications) Remove initial guess from slack alert notifications by @leeandher in #114483
- (objectstore) Make ObjectstoreEndpoint unauthenticated and remove feature gate by @lcian in #114288
- (pageframe) Inline help actions by @natemoo-re in #114375
- (perforce) Remove legacy Django pipeline views by @evanpurkhiser in #113701
- (performance) Use useSpans for transaction replay count by @mjq in #114058
- (pipeline) Hide step counter when pipeline has one step by @evanpurkhiser in #113916
- (processing_errors) Sample processing error analytic events at 100% for orgs younger than 30 days. by @wedamija in #114398
- (profiling) Migrate profiles to explore layout by @nsdeschenes in #113910
- (queryClient) Cache safeParseQueryKey results in a WeakMap by @TkDodo in #114553
- (react router) Replace
useRoutesusage inuseGroupDetailsRouteby @shashjar in #113858 - (seer-agent) Use Link component to enable cmd clicking tool links by @aliu39 in #114494
- (seer-explorer) Move widget builder routes into STRUCTURED_CONTEXT_ROUTES by @Mihir-Mavalankar in #113853
- (seer-grouping) Rm v2 by @kddubey in #114538
- (seer-preferences) Remove dual-write and read-from-sentry feature flags and unused Seer API write helpers by @srest2021 in #114242
- (slack) Prep work for link parsing by @leeandher in #113599
- (snuba) Add LOW_VALUE_SPANS_JOB referrer by @vgrozdanic in #114416
- (stacktrace) Drop org-flag gate for SCM source context UI by @mujacica in #114133
- (supergroups) Stop sending explorer-based RCA requests by @cvxluo in #114659
- (theme) Remove unused z-index values by @natemoo-re in #114096
- (ts) Avoid type assertion in useOrganizationMutationOptions by @evanpurkhiser in #114788
- (vercel) Skip deployment when only backend files change by @vgrozdanic in #114029
- (warden) Configure remote Warden skills by @dcramer in #114253
- (workflow-engine-ui) Update example for slack notes by @leeandher in #113798
- Remove test analytics images by @calvin-codecov in #114769
- Update protos by @noahsmartin in #114737
- Mark failing jest-balance tests as isKnownFlake by @ryan953 in #114619
- Bump protos version by @noahsmartin in #114566
- Reset translations by @joshuarli in #114485
- Bump sentry-protos to 0.8.22 by @noahsmartin in #114445
- Bump sentry-protos to 0.8.21 by @brendanhsentry in #114389
- Update Taskbroker Client Version to 0.1.12 by @george-sentry in #114343
- Bump sentry-arroyo to 2.39.1 by @getsentry-bot in #114226
- Bump protos by @noahsmartin in #114244
- Use StatusIndicator and Grid primitives in service incident details by @evanpurkhiser in #114158
- Maybe fix git by @joshuarli in #114194
- Xfail test_eap_occurrence_stores_exception_stack_as_array_attributes (flaky) by @JoshFerge in #114190
- Expose function to safeParse an queryKey into our ApiQueryKey schema by @TkDodo in #114026
- Bump devservices by @joshuarli in #114100
- Bump sentry-protos by @noahsmartin in #114003
- Bump sentry-protos 0.8.18 by @brendanhsentry in #113984
- Fix unicorn/no-useless-collection-argument in useSeerExplorer.tsx by @JoshuaKGoldberg in #113901
- Update Projects page title to 'All Projects' by @JonasBa in #113845
- Bump new development version by @sentry-release-bot[bot] in 6fa540d4
Other
- deps(ui): Upgrade dompurify, marked by @scttcper in #114359
- codemod(button-variant): apply changes to performance and discover by @natemoo-re in #114730
- codemod(button-variant): apply changes to events, profiling, and misc components by @natemoo-re in #114731
- codemod(button-variant): apply changes to settings, alerts, and remaining views by @natemoo-re in #114732
- codemod(button-variant): apply changes to gsApp by @natemoo-re in #114722
- codemod(button-variant): apply changes for explore by @natemoo-re in #114522
- codemod(button-variant): apply changes for machine-learning-ai by @natemoo-re in #114528
- Replace auto muting useEffect in SnoozeAlert by @geoffg-sentry in #112588
- codemod(button-variant): apply changes for alerts-notifications by @natemoo-re in #114539
- codemod(button-variant): apply changes for ecosystem by @natemoo-re in #114526
- codemod(button-variant): apply changes for emerge-tools by @natemoo-re in #114534
- codemod(button-variant): apply changes for alerts-create-issues by @natemoo-re in #114525
- codemod(button-variant): apply changes for issue-workflow by @natemoo-re in #114532
- codemod(button-variant): apply changes for telemetry-experience by @natemoo-re in #114529
- codemod(button-variant): apply changes for profiling by @natemoo-re in #114523
- codemod(button-variant): apply changes for dashboards by @natemoo-re in #114521
- chore(hybridcloud) Add logging to start of outbox backfill by @markstory in #114605
- cleanup(ACI): Remove the cache-detectors-by-data-source feature flag by @saponifi3d in #114586
- codemod(button-variant): apply changes for revenue by @natemoo-re in #114533
- cleanup(ACI): Remove Workflows Cache Flag by @saponifi3d in #114584
- cleanup(ACI): Remove a feature flag for action-filter-cache by @saponifi3d in #114583
- codemod(button-variant): apply changes for enterprise by @natemoo-re in #114527
- codemod(button-variant): apply changes for design-engineering by @natemoo-re in #114535
- codemod(button-variant): apply changes for orphaned files by @natemoo-re in #114537
Plus 24 more