releases.shpreview
Home/Sentry
Sentry

Sentry

$npx @buildinternet/releases get sentry
May 11, 2026

Fixes

  • (snapshots) Stop sending Sentry auth token to Objectstore (#3286)
  • (js) Fix argument injection in JavaScript API's serializeOptions. String/number options now validate input types and prevent Array.prototype.concat() from flattening array values into separate CLI arguments. (#3287)
May 7, 2026

We’ve updated how you build alerts - separated now into Monitors and Alerts - to give you more control over what you track and how your team gets notified.

Important Changes

  • Beta release of the official Hono Sentry SDK

    This release marks the beta release of the @sentry/hono Sentry SDK. For details on how to use it, check out the Sentry Hono SDK docs. Please reach out on GitHub if you have any feedback or concerns.

  • feat(browser): Add ingest_settings to v2 log envelope payload (#20453)

    Inference of user data (e.g. IP address, browser name/version) on log events is now gated behind the sendDefaultPii option. Previously, this data was always inferred by default.

Other Changes

  • docs(hono): Add new docs link and move to BETA release (#20666)
  • feat(browser): Add ingest_settings to v2 metrics envelope payload (#20454)
  • feat(browser): Migrate spotlight event processor to ignoreSpans (#20595)
  • feat(cloudflare): Capture request body via httpServerIntegration (#20614)
  • feat(cloudflare): Support rpc trace propagation for WorkerEntrypoint (#20523)
  • feat(cloudflare): Support tracing for queue producer (#20529)
  • feat(core): Apply request data to segment spans in span streaming (#20654)
  • feat(core): Migrate Vercel AI event processor to span streaming (#20608)
  • feat(deno): Add processSegmentSpan to Deno context integration (#20613)
  • feat(http): Portable node:http client instrumentation (#20393)
  • feat(nitro): Add unstorage tracing channel instrumentation (#20615)
  • feat(node-core): Add processSegmentSpan to node context integration (#20678)
  • feat(node): Use diagnostics_channel for redis >= 5.12.0 (#20573)
  • feat(node): Vendor ioredis, redis instrumentations (#20510)
  • feat(replay): Reset replay id from DSC on session expiry/refresh (#20129)
  • fix: Bump fast-xml-parser to fix vulnerability (#20644)
  • fix: Bump vite versions to fix vulnerability (#20646)
  • fix(core): Drain buffers in flush() when there is no transport (#20207)
  • fix(core): Guard against undefined chained in copyProps (#20637)
  • fix(deps): Bump rollup-plugin-license to fix lodash vulnerabilities (#20636)
  • fix(deps): Bump transitive deps for medium security fixes (#20683)
  • fix(hono): Do not capture 3xx and 4xx errors and add tests (#20640)
  • fix(nextjs): Skip build modification when SRI is enabled (#20694)
  • fix(opentelemetry): Respect OTEL_SERVICE_NAME, OTEL_RESOURCE_ATTRIBUTES (#20509)
<details> <summary> <strong>Internal Changes</strong> </summary>
  • chore: Remove bundle-analyzer-scenarios dev packages (#20680)
  • chore(deps): Bump @hono/node-server from 1.19.10 to 1.19.13 (#20117)
  • chore(deps): Bump @nestjs packages to fix path-to-regexp ReDoS (#20642)
  • chore(deps): Bump axios from 1.15.0 to 1.15.2 (#20665)
  • chore(deps): Bump ip-address from 10.1.0 to 10.2.0 (#20695)
  • chore(deps): Bump simple-git from 3.33.0 to 3.36.0 (#20696)
  • chore(deps): Bump vulnerable testem version (#20634)
  • ci(deps): Bump actions/checkout from 4 to 6 (#20620)
  • ci(deps): Bump actions/create-github-app-token from 2 to 3 (#20079)
  • ci(deps): Bump denoland/setup-deno from 2.0.3 to 2.0.4 (#20080)
  • ci(deps): Bump getsentry/craft from 2.24.1 to 2.26.2 (#20621)
  • feat(deps): Bump @xmldom/xmldom from 0.8.12 to 0.8.13 (#20457)
  • feat(deps): Bump follow-redirects from 1.15.11 to 1.16.0 (#20267)
  • feat(deps): Bump hono from 4.12.12 to 4.12.14 (#20340)
  • fix(tests): Use stable instrumentations api in rr tests (#20690)
  • ref(tests): Rename streamed http.client span test folders (#20602)
  • test(browser): Fix browserTracingIntegration unit test (#20604)
  • test(browser): Fix flaky browser integration test for profiles (#20587)
  • test(browser): Fix flaky loader test (#20596)
  • test(browser): Fix flaky loader test (#20655)
  • test(browser): Make browser profiling test less flaky (#20664)
  • test(cloudflare): Add e2e test for MCPAgent with DurableObject instrumentation (#20601)
  • test(cloudflare): Add integration tests for scheduled, D1, and workflow (#20609)
  • test(cloudflare): Reduce flakiness for cloudflare with sub workers (#20632)
  • test(cloudflare): Use Node v24 for Cloudflare e2e tests (#20628)
  • test(deps): Bump Next.js in E2E test apps to fix Server Components DoS (#20633)
  • test(e2e): Add node-express-streaming E2E test app (#20684)
  • test(e2e): Add span streaming test app for Cloudflare Workers (#20681)
  • test(e2e): Add span streaming test app for next 16 (#20648)
  • test(e2e): Add span streaming test app for React Router 7 SPA (#20677)
  • test(e2e): Remove remaining npmrc pointing to Verdaccio (#20611)
  • test(nextjs): Fix flaky node runtime metrics E2E tests (#20624)
  • test(node): Fix ANR test for flakiness (#20656)
  • test(node): Fix flaky node cron test (#20661)
  • test(node): Unflake mongodb test (#20662)
  • test(react-router): Fix flaky E2E tests (#20630)
  • test(test-utils): Add MemoryProfiler for heap snapshot testing via CDP (#20555)
</details>

Work in this release was contributed by @sbs44. Thank you for your contribution!

Bundle size 📦

PathSize
@sentry/browser25.68 KB
@sentry/browser - with treeshaking flags24.2 KB
@sentry/browser (incl. Tracing)43.13 KB
@sentry/browser (incl. Tracing + Span Streaming)45.3 KB
@sentry/browser (incl. Tracing, Profiling)47.99 KB
@sentry/browser (incl. Tracing, Replay)81.67 KB
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags71.37 KB
@sentry/browser (incl. Tracing, Replay with Canvas)86.25 KB
@sentry/browser (incl. Tracing, Replay, Feedback)98.57 KB
@sentry/browser (incl. Feedback)42.42 KB
@sentry/browser (incl. sendFeedback)30.38 KB
@sentry/browser (incl. FeedbackAsync)35.35 KB
@sentry/browser (incl. Metrics)26.95 KB
@sentry/browser (incl. Logs)27.08 KB
@sentry/browser (incl. Metrics & Logs)27.76 KB
@sentry/react27.38 KB
@sentry/react (incl. Tracing)45.31 KB
@sentry/vue30.45 KB
@sentry/vue (incl. Tracing)44.94 KB
@sentry/svelte25.7 KB
CDN Bundle28.23 KB
CDN Bundle (incl. Tracing)45.83 KB
CDN Bundle (incl. Logs, Metrics)29.62 KB
CDN Bundle (incl. Tracing, Logs, Metrics)46.91 KB
CDN Bundle (incl. Replay, Logs, Metrics)67.84 KB
CDN Bundle (incl. Tracing, Replay)82.15 KB
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)83.2 KB
CDN Bundle (incl. Tracing, Replay, Feedback)87.84 KB
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)88.89 KB
CDN Bundle - uncompressed82.89 KB
CDN Bundle (incl. Tracing) - uncompressed137.15 KB
CDN Bundle (incl. Logs, Metrics) - uncompressed86.99 KB
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed140.53 KB
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed208.3 KB
CDN Bundle (incl. Tracing, Replay) - uncompressed252.48 KB
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed255.85 KB
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed265.86 KB
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed269.22 KB
@sentry/nextjs (client)47.75 KB
@sentry/sveltekit (client)43.6 KB
@sentry/node-core59.05 KB
@sentry/node161.63 KB
@sentry/node - without tracing71.76 KB
@sentry/aws-serverless105.11 KB
@sentry/cloudflare (withSentry) - minified165.38 KB
@sentry/cloudflare (withSentry)417.48 KB
May 5, 2026

Sentry’s Application Metrics are now GA. They're high-cardinality and trace-connected. Tag a metric with user ID, region, plan type, or any attribute you care about, and slice by any of them at query time so you can ask questions about your application or users. When something spikes, click through to the connected trace, log, or error to find out why

Snapshots, now in Early Access, handles image storage, diffing, and CI checks to help you catch unintended visual regressions in CI.

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 enabled field 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 AskSeerButton component 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 mod as alternative to cmd-on-mac, else ctrl by @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 useHotkeys to event.key|code by @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_id during 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 duration to transaction.duration in 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_handler by 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-conditions feature 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 GlobalModal by @natemoo-re in #114447
  • Support openInNewTab on 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 code by @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-ci instead of CI=true to run tests w/ agents by @scttcper in #114759
  • Drop jest-junit by @scttcper in #114564
  • Convert useHoverOverlay to 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 useRoutes usage in useGroupDetailsRoute by @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

New Features ✨

Langchain

  • Record run_name as gen_ai.function_id on Invoke Agent Spans by @alexander-alderman-webb in #5926
  • Record run_name in on_tool_start by @alexander-alderman-webb in #5925
  • Record run_name in on_chat_model_start by @alexander-alderman-webb in #5924

Other

  • (consts) Add updated span convention constants to SPANDATA by @ericapisani in #6093
  • (fastapi) Support span streaming in active thread tracking by @ericapisani in #6118
  • (httpx) Migrate to span first by @ericapisani in #6084
  • (huggingface_hub) Migrate to span first by @ericapisani in #6124
  • (mcp) Migrate to span first by @ericapisani in #6131
  • Add db.driver.name spans to database integrations by @ericapisani in #6082

Bug Fixes 🐛

Httpx

  • Consistently early-exit when adding request source by @alexander-alderman-webb in #6151
  • Set code.namespace and code.function instead of code.function.name in span streaming by @alexander-alderman-webb in #6150

Langchain

  • Record run_name as gen_ai.function_id for text completions by @alexander-alderman-webb in #6073
  • Set agent name as gen_ai.agent.name for chat and tool spans by @alexander-alderman-webb in #5877

Other

  • (asgi) Use inspect.iscoroutinefunction on Python 3.14+ by @alexander-alderman-webb in #6135
  • (batcher) Reset lock and flusher in child after fork by @ericapisani in #6163
  • (grpc) Add isolation_scope to async server interceptor by @robinvd in #5940
  • (metrics,logs) Don't attach span_id if no active span by @sentrivana in #6162
  • (monitor) Release Monitor._thread_lock after fork (#6148) by @vokracko in #6159
  • (openai-agents) Resolve agent from bindings for openai-agents >= 0.14 by @ericapisani in #6102
  • (quart) Use inspect.iscoroutinefunction when Quart does by @alexander-alderman-webb in #6133
  • (security) Prevent GitHub script injection in update-tox workflow by @fix-it-felix-sentry in #6171
  • (starlette/fastapi) Use inspect.iscoroutinefunction when Starlette does by @alexander-alderman-webb in #6134
  • (tornado) Make sure context manager doesn't double yield by @sentrivana in #6152
  • Introduce _get_current_streamed_span() to keep types backwards compatible by @alexander-alderman-webb in #6177

Internal Changes 🔧

Stdlib

  • Pin timestamps in add_http_request_source() patch by @alexander-alderman-webb in #6160
  • Stop mocking HTTPSConnection.send in trace header tests by @alexander-alderman-webb in #6156

Other

  • (batcher) Only flush the bucket that triggered the flush event by @sentrivana in #6168
  • (celery) Remove unused NoOpMgr from utils by @sentrivana in #6078
  • (ci) Update outdated pinned action version comments by @JoshuaMoelans in #6088
  • (fastmcp) Span streaming tests by @alexander-alderman-webb in #6167
  • (graphql) Update document setting by @sentrivana in #6153
  • (grpc) Mirror sync interceptor by @sentrivana in #6158
  • (langchain) Separate test to remove conditional by @alexander-alderman-webb in #6076
  • (openai) Revert input truncation by @alexander-alderman-webb in #6117
  • (queues) Update integrations by @sentrivana in #6157
  • (tests) Replace deprecated enable_tracingwith traces_sample_rate by @sentrivana in #6077
  • (transport) Remove redundant checks for dsn by @psh9508 in #6104
  • Rename file by @sentrivana in #6194
  • 🤖 Update test matrix with new releases (05/04) by @github-actions in #6186
  • Assert presence of profile chunks after shutdown by @alexander-alderman-webb in #6174
  • 🤖 Update test matrix with new releases (04/29) by @github-actions in #6173
  • Limit update-tox action to master branch by @alexander-alderman-webb in #6172
  • Expand scrubbing by @sentrivana in #6161
  • Remove Python 2 compat from qualname_from_function by @ericapisani in #6137
  • Update test matrix with new releases (04/27) by @alexander-alderman-webb in #6146
  • Raise shutdown timeout in aws lambda tests by @sentrivana in #6129
  • Join thread in continuous profiler test by @alexander-alderman-webb in #6125
  • 🤖 Update test matrix with new releases (04/20) by @github-actions in #6100

Other

  • removed universal bdist_wheel option by @Muskaan436 in #6197
  • Update CHANGELOG.md by @sentrivana in 689cb97e
  • release: 2.59.0 by @sentrivana in 397dda91
May 4, 2026

Cross-Event Querying is now generally available: join queries across logs, metrics, and spans.

New Features ✨

Langchain

  • Record run_name as gen_ai.function_id on Invoke Agent Spans by @alexander-alderman-webb in #5926
  • Record run_name in on_tool_start by @alexander-alderman-webb in #5925
  • Record run_name in on_chat_model_start by @alexander-alderman-webb in #5924

Other

  • (ci) Cancel in-progress PR workflows on new commit push by @joshuarli in #5994
  • (consts) Add updated span convention constants to SPANDATA by @ericapisani in #6093
  • (fastapi) Support span streaming in active thread tracking by @ericapisani in #6118
  • (httpx) Migrate to span first by @ericapisani in #6084
  • (huggingface_hub) Migrate to span first by @ericapisani in #6124
  • (mcp) Migrate to span first by @ericapisani in #6131
  • Add db.driver.name spans to database integrations by @ericapisani in #6082

Bug Fixes 🐛

We've put additional data that might contain sensitive information, like GraphQL documents, behind the send_default_pii option.

Httpx

  • Consistently early-exit when adding request source by @alexander-alderman-webb in #6151
  • Set code.namespace and code.function instead of code.function.name in span streaming by @alexander-alderman-webb in #6150

Langchain

  • Record run_name as gen_ai.function_id for text completions by @alexander-alderman-webb in #6073
  • Set agent name as gen_ai.agent.name for chat and tool spans by @alexander-alderman-webb in #5877

Other

  • (asgi) Use inspect.iscoroutinefunction on Python 3.14+ by @alexander-alderman-webb in #6135
  • (batcher) Reset lock and flusher in child after fork by @ericapisani in #6163
  • (google_genai) Redact binary data in inline_data and fix multi-part message extraction by @ericapisani in #5977
  • (grpc) Add isolation_scope to async server interceptor by @robinvd in #5940
  • (metrics,logs) Don't attach span_id if no active span by @sentrivana in #6162
  • (monitor) Release Monitor._thread_lock after fork (#6148) by @vokracko in #6159
  • (openai-agents) Resolve agent from bindings for openai-agents >= 0.14 by @ericapisani in #6102
  • (profiler) Stop nulling buffer on teardown by @ericapisani in #6075
  • (quart) Use inspect.iscoroutinefunction when Quart does by @alexander-alderman-webb in #6133
  • (security) Prevent GitHub script injection in update-tox workflow by @fix-it-felix-sentry in #6171
  • (starlette/fastapi) Use inspect.iscoroutinefunction when Starlette does by @alexander-alderman-webb in #6134
  • (tornado) Make sure context manager doesn't double yield by @sentrivana in #6152
  • Introduce _get_current_streamed_span() to keep types backwards compatible by @alexander-alderman-webb in #6177

Internal Changes 🔧

Stdlib

  • Pin timestamps in add_http_request_source() patch by @alexander-alderman-webb in #6160
  • Stop mocking HTTPSConnection.send in trace header tests by @alexander-alderman-webb in #6156

Other

  • (batcher) Only flush the bucket that triggered the flush event by @sentrivana in #6168
  • (celery) Remove unused NoOpMgr from utils by @sentrivana in #6078
  • (ci) Update outdated pinned action version comments by @JoshuaMoelans in #6088
  • (fastmcp) Span streaming tests by @alexander-alderman-webb in #6167
  • (graphql) Update document setting by @sentrivana in #6153
  • (grpc) Mirror sync interceptor by @sentrivana in #6158
  • (langchain) Separate test to remove conditional by @alexander-alderman-webb in #6076
  • (pydantic-ai) Remove dead Model.request patch by @alexander-alderman-webb in #5956
  • (queues) Update integrations by @sentrivana in #6157
  • (tests) Replace deprecated enable_tracingwith traces_sample_rate by @sentrivana in #6077
  • (transport) Remove redundant checks for dsn by @psh9508 in #6104
  • Rename file by @sentrivana in #6194
  • 🤖 Update test matrix with new releases (05/04) by @github-actions in #6186
  • Assert presence of profile chunks after shutdown by @alexander-alderman-webb in #6174
  • 🤖 Update test matrix with new releases (04/29) by @github-actions in #6173
  • Limit update-tox action to master branch by @alexander-alderman-webb in #6172
  • Expand scrubbing by @sentrivana in #6161
  • Remove Python 2 compat from qualname_from_function by @ericapisani in #6137
  • Update test matrix with new releases (04/27) by @alexander-alderman-webb in #6146
  • Raise shutdown timeout in aws lambda tests by @sentrivana in #6129
  • Join thread in continuous profiler test by @alexander-alderman-webb in #6125
  • 🤖 Update test matrix with new releases (04/20) by @github-actions in #6100
  • Set explicit base-branch for codecov action by @ericapisani in #5992
Apr 30, 2026

Sentry now connects natively to Perforce P4, bringing stack trace linking, suspect commits, on-demand source context, and P4 Code Review to teams using Perforce.

JavaScript SDK 10.51.0: Nitro SDK now in beta

Sentry's JavaScript SDK 10.51.0 introduces a new @sentry/nitro SDK in beta and adds trace propagation across Cloudflare Workers RPC calls. Plus middleware spans for nested Hono route groups, LangGraph instrumentation and customizable Feedback errors.

Sentry CLI now supports bundling and uploading of Source Context for multi-module Android/JVM applications.

Apr 29, 2026

To access Seer Agent through Slack, update Slack permissions

Seer Agent is now in open beta. Ask anything about what's happening in your application and get answers based on all the connected Sentry telemetry and context.

Important Changes

  • feat(cloudflare): Add trace propagation for RPC method calls (#20343)

    Trace context is now propagated across Cloudflare Workers RPC calls, connecting traces between Workers and Durable Objects. This feature is opt-in and requires setting enableRpcTracePropagation: true in your SDK configuration:

    // Worker
    export default Sentry.withSentry(
      env => ({
        dsn: env.SENTRY_DSN,
        enableRpcTracePropagation: true,
      }),
      handler,
    );
    
    // Durable Object
    export const MyDurableObject = Sentry.instrumentDurableObjectWithSentry(
      env => ({
        dsn: env.SENTRY_DSN,
        enableRpcTracePropagation: true,
      }),
      MyDurableObjectBase,
    );
  • feat(hono)!: Change setup for @sentry/hono/node (init in external file) (#20497)

    To improve Node.js instrumentation, the sentry() middleware exported from @sentry/hono/node no longer accepts configuration options. Instead, you must configure the SDK by calling Sentry.init() in a dedicated instrumentation file that runs before your application code (read more in the Hono SDK readme:

    // instrument.mjs (or instrument.ts)
    import * as Sentry from '@sentry/hono/node';
    
    Sentry.init({
      dsn: '__DSN__',
      tracesSampleRate: 1.0,
    });
  • feat(nitro): Add @sentry/nitro SDK (#19224)

    A new @sentry/nitro package provides first-class Sentry support for Nitro applications, with HTTP handler and error instrumentation, middleware tracing, request isolation, and build-time source map uploading via withSentryConfig. Read more in the Nitro SDK docs and the Nitro SDK readme.

Other Changes

  • deps(minimatch): Upgrade patch version to use new brace-expansion peer-dep (#20198)
  • docs: Add deprecation notices to bin scripts (#20570)
  • feat(astro): Drop prerendered http.server filter via ignoreSpans (#20513)
  • feat(aws-serverless): Validate extension tunnel DSN against SENTRY_DSN (#20528)
  • feat(browser): Add ingest_settings to span v2 envelope payload (#20411)
  • feat(browser): Add support for streamed spans in httpContextIntegration (#20464)
  • feat(core): Backfill otel attributes on streamed spans (#20439)
  • feat(core): clear up integrations on dispose (#20407)
  • feat(core): Instrument langgraph createReactAgent (#20344)
  • feat(core): Support attribute matching in ignoreSpans (#20512)
  • feat(feedback): allow error messages to be customized (#20474)
  • feat(hono): Support middleware spans defined in app groups (#20465)
  • feat(nextjs): Filter unwanted segments when span streaming is enabled (#20384)
  • feat(nextjs): Migrate edge event processors to span-first APIs (#20551)
  • feat(nextjs): Migrate server event processors to span-first APIs (#20527)
  • feat(nextjs): Set global attribute for turbopack usage (#20558)
  • feat(nitro): Nitro SDK (#19224)
  • feat(react-router): Clean up bogus * http.route attribute on segment spans (#20471)
  • feat(react-router): Drop low-quality transactions via ignoreSpans (#20514)
  • feat(sveltekit): Support span streaming in svelteKitSpansEnhancement integration (#20496)
  • feat(tanstackstart-react): Add dynamic tunnel route helper and generator (#20264)
  • fix: update prisma v7 spans descriptions (#20456)
  • fix(core): Avoid parse-time SyntaxError on Safari <16.4 in postgresjs (#20498)
  • fix(core): Ensure isSentryRequest handles subdomains properly (#20530)
  • fix(core): Ensure ip address headers are stripped when lower case (#20484)
  • fix(core): Filter more cookie names for PII (#20485)
  • fix(core): Use symbol for normalization checks (#20486)
  • fix(hono): Distinguish .use() middleware in sub-apps from .all() handlers (#20554)
  • fix(nextjs): Ensure we do not match tunnel endpoints too broadly (#20488)
  • fix(opentelemetry): Add conditional browser export to avoid node deps (#20556)
  • fix(replay): Avoid main-thread blocking in WorkerHandler under event bursts (#20548)
  • fix(replay): Ensure maskAttributes works with maskAllText=false (#20491)
  • fix(supabase): Consider sendDefaultPii for supabase integration (#20490)
<details> <summary><strong>Internal Changes</strong></summary>
  • chore: Add size limit reports on PRs for Cloudflare (#20055)
  • chore: Update CODEOWNERS (#20559)
  • chore(build): Opt-out of nx analytics (#20487)
  • chore(ci): Automatically bump size limit every week (#20531)
  • chore(ci): Bump pnpm/action-setup to v5 and pin to commit SHA (#20462)
  • chore(ci): Do not report flaky test issues if we cannot find a test name (#20589)
  • chore(ci): Streamline CI setup to split bundle, layer, tarball generation (#20396)
  • chore(ci): Vendor nx-affected-list action, drop dkhunt27 dependency (#20463)
  • chore(e2e): Add vue and vue-router to nuxt-4 canary build step to fix rollup resolution (#20519)
  • chore(e2e): Remove @tanstack/start-plugin-core override (#20518)
  • chore(size-limit): weekly auto-bump (#20572)
  • chore(skill): Add skill for writing unit and E2E tests (#20561)
  • chore(test): Reduce unneeded idleTimeout test config (#20467)
  • ci(size-bump): Fix path in size-limit auto-bump workflow (#20566)
  • fix(e2e/tanstackstart-react): pin @tanstack/start-plugin-core to unblock CI (#20482)
  • fix(tests): Remove nitro canary test job (#20473)
  • ref(browser): Use safeSetSpanJSONAttributes in cultureContext integration (#20481)
  • test(browser): Unflake some more tests (#20591)
  • test(nextjs): Pin eslint-config-next package to major (#20552)
  • test(node): Fix flaky ANR test (#20592)
  • test(node): Fix flaky worker thread integration test (#20588)
  • test(node): Unflake postgres tests (#20593)
  • test(node): Update timeout for cron integration tests (#20586)
  • test(supabase): Stop supabase before initializing (#20563)
  • test(tanstack): Prefix test labels (#20569)
</details>

Bundle size 📦

PathSize
@sentry/browser25.54 KB
@sentry/browser - with treeshaking flags24.06 KB
@sentry/browser (incl. Tracing)43.08 KB
@sentry/browser (incl. Tracing + Span Streaming)45.07 KB
@sentry/browser (incl. Tracing, Profiling)47.91 KB
@sentry/browser (incl. Tracing, Replay)81.5 KB
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags71.23 KB
@sentry/browser (incl. Tracing, Replay with Canvas)86.07 KB
@sentry/browser (incl. Tracing, Replay, Feedback)98.42 KB
@sentry/browser (incl. Feedback)42.38 KB
@sentry/browser (incl. sendFeedback)30.24 KB
@sentry/browser (incl. FeedbackAsync)35.3 KB
@sentry/browser (incl. Metrics)26.8 KB
@sentry/browser (incl. Logs)26.95 KB
@sentry/browser (incl. Metrics & Logs)27.62 KB
@sentry/react27.25 KB
@sentry/react (incl. Tracing)45.26 KB
@sentry/vue30.3 KB
@sentry/vue (incl. Tracing)44.87 KB
@sentry/svelte25.57 KB
CDN Bundle28.16 KB
CDN Bundle (incl. Tracing)45.61 KB
CDN Bundle (incl. Logs, Metrics)29.54 KB
CDN Bundle (incl. Tracing, Logs, Metrics)46.68 KB
CDN Bundle (incl. Replay, Logs, Metrics)67.71 KB
CDN Bundle (incl. Tracing, Replay)81.91 KB
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)82.95 KB
CDN Bundle (incl. Tracing, Replay, Feedback)87.59 KB
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)88.66 KB
CDN Bundle - uncompressed82.57 KB
CDN Bundle (incl. Tracing) - uncompressed136.41 KB
CDN Bundle (incl. Logs, Metrics) - uncompressed86.67 KB
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed139.79 KB
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed207.73 KB
CDN Bundle (incl. Tracing, Replay) - uncompressed251.45 KB
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed254.82 KB
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed264.83 KB
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed268.18 KB
@sentry/nextjs (client)47.7 KB
@sentry/sveltekit (client)43.52 KB
@sentry/node-core57.57 KB
@sentry/node166.25 KB
@sentry/node - without tracing94.54 KB
@sentry/aws-serverless111 KB
@sentry/cloudflare (withSentry) - minified160.29 KB
@sentry/cloudflare (withSentry)405.47 KB
Apr 28, 2026

Improvements

  • (bundle-jvm) Warn and skip subsequent duplicates when multiple files strip to the same URL (e.g. Android build variants contributing the same FQCN). The warning points users at --exclude to scope the bundle to a single variant (#3275).

Fixes

  • (bundle-jvm) Strip the [<module>/]src/<sourceset>/<lang>/ prefix from bundle URLs so Symbolicator can resolve them from package-based stack traces (e.g. sentry-android-core/src/main/java/io/sentry/android/core/ANRWatchDog.java~/io/sentry/android/core/ANRWatchDog.jvm) (#3275).
  • fix(v8/profiling-node): Restore install script to build binaries from source (#20517)
  • fix(v8/publish): Ensure all packages are tagged with v8 on when publishing to NPM (#19974)
Apr 23, 2026

Important Changes

  • feat(effect): Support v4 beta (#20394)

    The @sentry/effect integration now supports Effect v4 beta, enabling Sentry instrumentation for the latest Effect framework version. Read more in the Effect SDK readme.

  • feat(hono): Add @sentry/hono/bun for Bun runtime (#20355)

    A new @sentry/hono/bun entry point adds first-class support for running Hono applications instrumented with Sentry on the Bun runtime. Read more in the Hono SDK readme.

  • feat(replay): Add replayStart/replayEnd client lifecycle hooks (#20369)

    New replayStart and replayEnd client lifecycle hooks let you react to replay session start and end events in your application.

Other Changes

  • feat(core): Emit no_parent_span client outcomes for discarded spans requiring a parent (#20350)
  • feat(deps): Bump protobufjs from 7.5.4 to 7.5.5 (#20372)
  • feat(hono): Add runtime packages as optional peer dependencies (#20423)
  • feat(opentelemetry): Add tracingChannel utility for context propagation (#20358)
  • fix(browser): Enrich graphqlClient spans for relative URLs (#20370)
  • fix(browser): Filter implausible LCP values (#20338)
  • fix(cloudflare): Use TransformStream to keep track of streams (#20452)
  • fix(console): Re-patch console in AWS Lambda runtimes (#20337)
  • fix(core): Correct GoogleGenAIIstrumentedMethod typo in type name
  • fix(core): Handle stateless MCP wrapper transport correlation (#20293)
  • fix(hono): Remove undefined from options type (#20419)
  • fix(node): Guard against null httpVersion in outgoing request span attributes (#20430)
  • fix(node-core): Pass rejection reason instead of Promise as originalException (#20366)
<details> <summary> <strong>Internal Changes</strong> </summary>
  • chore: Ignore claude worktrees (#20440)
  • chore: Prevent test from creating zombie process (#20392)
  • chore: Update size-limit (#20412)
  • chore(dev-deps): Bump nx from 22.5.0 to 22.6.5 (#20458)
  • chore(e2e-tests): Use tarball symlinks for E2E tests instead of verdaccio (#20386)
  • chore(lint): Remove lint warnings (#20413)
  • chore(test): Remove empty variant tests (#20443)
  • chore(tests): Use verdaccio as node process instead of docker image (#20336)
  • docs(readme): Update usage instructions for binary scripts (#20426)
  • ref(node): Vendor undici instrumentation (#20190)
  • test(aws-serverless): Ensure aws-serverless E2E tests run locally (#20441)
  • test(aws-serverless): Split npm & layer tests (#20442)
  • test(browser): Fix flaky sessions route-lifecycle test + upgrade axios (#20197)
  • test(cloudflare): Use .makeRequestAndWaitForEnvelope to wait for envelopes (#20208)
  • test(effect): Rename effect e2e tests to a versioned folder (#20390)
  • test(hono): Add E2E test for Hono on Cloudflare, Node and Bun (#20406)
  • test(hono): Add E2E tests for middleware spans (#20451)
  • test(nextjs): Unskip blocked cf tests (#20356)
  • test(node): Refactor integration tests for honoIntegration (#20397)
  • test(node): Use docker-compose healthchecks for service readiness (#20429)
  • test(node-core): Fix minute-boundary race in session-aggregate tests (#20437)
  • test(nuxt): Fix flaky database error test (#20447)
</details>

Bundle size 📦

PathSize
@sentry/browser25.27 KB
@sentry/browser - with treeshaking flags23.78 KB
@sentry/browser (incl. Tracing)42.78 KB
@sentry/browser (incl. Tracing + Span Streaming)44.44 KB
@sentry/browser (incl. Tracing, Profiling)47.59 KB
@sentry/browser (incl. Tracing, Replay)81.04 KB
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags70.8 KB
@sentry/browser (incl. Tracing, Replay with Canvas)85.62 KB
@sentry/browser (incl. Tracing, Replay, Feedback)97.58 KB
@sentry/browser (incl. Feedback)41.7 KB
@sentry/browser (incl. sendFeedback)29.83 KB
@sentry/browser (incl. FeedbackAsync)34.72 KB
@sentry/browser (incl. Metrics)26.53 KB
@sentry/browser (incl. Logs)26.65 KB
@sentry/browser (incl. Metrics & Logs)27.33 KB
@sentry/react26.97 KB
@sentry/react (incl. Tracing)44.97 KB
@sentry/vue29.99 KB
@sentry/vue (incl. Tracing)44.55 KB
@sentry/svelte25.29 KB
CDN Bundle27.9 KB
CDN Bundle (incl. Tracing)45 KB
CDN Bundle (incl. Logs, Metrics)29.25 KB
CDN Bundle (incl. Tracing, Logs, Metrics)46.01 KB
CDN Bundle (incl. Replay, Logs, Metrics)67.31 KB
CDN Bundle (incl. Tracing, Replay)81.19 KB
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)82.19 KB
CDN Bundle (incl. Tracing, Replay, Feedback)86.53 KB
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)87.59 KB
CDN Bundle - uncompressed81.63 KB
CDN Bundle (incl. Tracing) - uncompressed134.39 KB
CDN Bundle (incl. Logs, Metrics) - uncompressed85.67 KB
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed137.72 KB
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed206.35 KB
CDN Bundle (incl. Tracing, Replay) - uncompressed249.08 KB
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed252.4 KB
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed261.69 KB
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed265 KB
@sentry/nextjs (client)47.44 KB
@sentry/sveltekit (client)43.18 KB
@sentry/node-core56.98 KB
@sentry/node171.53 KB
@sentry/node - without tracing95.99 KB
@sentry/aws-serverless112.62 KB
Apr 22, 2026

New Features ✨

Aci

  • Require at least one connected monitor in the alert builder by @malwilley in #113246
  • Add Moved Banner and redirects to Crons and Uptime nav 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_query in 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_id in organization_code_mappings_bulk by @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 <unknown> 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.html by @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 hideAiFeatures by @roggenkemper in #113542
  • Make AI issue types searchable when feature flag by @roggenkemper in #113470
  • Set api_expose to 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 isDrawerOpen to useDrawer callsite 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 shouldLockScroll option 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_error to 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
Apr 21, 2026

New Features ✨

  • (ci) Cancel in-progress PR workflows on new commit push by @joshuarli in #5994
  • Send GenAI spans as V2 envelope items by @alexander-alderman-webb in #6079

Bug Fixes 🐛

  • (google_genai) Redact binary data in inline_data and fix multi-part message extraction by @ericapisani in #5977
  • (profiler) Stop nulling buffer on teardown by @ericapisani in #6075

Internal Changes 🔧

Anthropic

  • Revert input truncation by @alexander-alderman-webb in #6113
  • Revert input transformation by @alexander-alderman-webb in #6108

Google Genai

  • Revert input truncation by @alexander-alderman-webb in #6111
  • Revert input transformation by @alexander-alderman-webb in #6105

Langchain

  • Revert input truncation by @alexander-alderman-webb in #6115
  • Revert input transformation by @alexander-alderman-webb in #6109

Litellm

  • Revert input truncation by @alexander-alderman-webb in #6112
  • Revert input transformation by @alexander-alderman-webb in #6107

Pydantic Ai

  • Revert input truncation by @alexander-alderman-webb in #6106
  • Remove dead Model.request patch by @alexander-alderman-webb in #5956

Other

  • (ai) Revert binary blob truncation by @alexander-alderman-webb in #6110
  • (langgraph) Revert input truncation by @alexander-alderman-webb in #6114
  • (openai) Revert input truncation by @alexander-alderman-webb in #6117
  • (openai-agents) Revert input truncation by @alexander-alderman-webb in #6116
  • Set explicit base-branch for codecov action by @ericapisani in #5992
Last Checked
16m ago
Domain
sentry.io
Accounts
getsentry
Tracking since Jul 28, 2015