Sentry Release Notes

Follow

21 release notes curated from 17 sources by the Releasebot Team. Last updated: Aug 10, 2026

Get this feed:
  • Jul 28, 2026
    • Date parsed from source:
      Jul 28, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    26.7.2

    Sentry releases a broad update across analytics, issues, dashboards, dynamic sampling, Autofix, Seer, notifications, and integrations, with new issue preview and inbox improvements, smarter PR and workflow handling, richer reporting, and several backend and UI fixes.

    New Features ✨

    Action Log

    • Use GALE in group notes endpoints by @ceorourke in #120288
    • Update group index helper to read from GALE by @ceorourke in #120534
    • Use GALE in GroupActivitiesEndpoint by @ceorourke in #120282

    Analytics

    • Tag project-creation page views by sticky org origin by @jaydgoss in #120148
    • Attribute getting-started header actions by variant by @jaydgoss in #120147
    • Attribute project getting-started funnel by variant by @jaydgoss in #120131
    • Instrument SCM + legacy alert & notification for project creation by @jaydgoss in #120124
    • Instrument SCM connect + messaging-install for project creation by @jaydgoss in #120119

    Autofix

    • Record Slack trigger activity by @scttcper in #120381
    • Open PRs as draft and mark ready when CI is green by @joseph-sentry in #120385
    • Group PR review feedback under a state-labelled header by @billyvg in #120463
    • Include the review author on the review-body feedback source by @billyvg in #120513

    Dashboards

    • Add dashboard descriptions by @adrianviquez in #120540
    • Use canvas rendering for Heat Map and Categorical Bar widgets by @gggritso in #120511

    Dynamic Sampling

    • Add switch to disable the implicit sample rate floor by @shellmayr in #120658
    • Add per-org sample rates summary log by @shellmayr in #120650
    • Fetch per-project top transactions via LIMIT BY by @shellmayr in #120324

    Gdd

    • Schedule heal_stale_derived_data regularly by @kcons in #120521
    • Switch heal_stale_derived_data to build-and-promote path by @kcons in #120516

    Inbox

    • Add "all" option and include "me" in "my teams" by @malwilley in #120669
    • Remove page filters by @malwilley in #120668

    Integrations

    • Track clicks in the create integration modal by @cvxluo in #120710
    • Add a claude routine creation template by @cvxluo in #120526
    • Support prefill templates when creating internal integrations by @cvxluo in #120238

    Issue Workflow

    • Add notification platform support for deploy notifs by @leeandher in #120398
    • Add activity notification route via notification platform by @leeandher in #120390

    Issues

    • Prefetch the inbox preview on hover by @roggenkemper in #120688
    • Add inbox issue count to the secondary nav by @roggenkemper in #120657
    • Record Night Shift trigger autofix activity by @scttcper in #120394
    • Record ingest based autofix trigger activity by @scttcper in #120393
    • Explain Autofix trigger sources by @scttcper in #120392
    • Backport trigger autofix issue activity by @scttcper in #120376
    • Show event and user counts in the issue preview by @roggenkemper in #120455
    • Add ProGuard Mapping section to issue details by @markushi in #120543
    • Move Open Issue to title and add seen times to preview by @roggenkemper in #120464

    Pr Metrics

    • Emit an opaque deduplication_key on scm.pr.closed by @vaind in #120561
    • Add ci_failed_at_open and no_ci_events diagnosis labels by @giovanni-guidini in #120328
    • Add stale PR detection and abandoned verdict by @giovanni-guidini in #118817

    Seer

    • Prefer sentry_run_id over legacy run_id in autofix UI by @trevor-e in #120541
    • Smart assignment completion handler and workflow wiring by @hobzcalvin in #120530
    • Add seerSuggested assignment source to frontend by @hobzcalvin in #120528
    • Log legacy integer run_id usage on GroupAutofixEndpoint by @trevor-e in #120519
    • Add SeerRun retention cleanup via incinerator by @trevor-e in #118606
    • Add per-card priority selector to Autofix Overview by @mtopo27 in #120498
    • Render Code Mode todos in the Explorer chat by @azulus in #120361

    Snuba

    • Tag query spans with request compression by @tryangul in #120603
    • Enable response compression for json gated behind option… by @tryangul in #120531

    Weekly Report

    • Render top spans p95 chart by @amy-chen23 in #119768
    • Render resolution labels in email template by @amy-chen23 in #120296
    • Add resolution labels to past resolved issues by @amy-chen23 in #120295

    Other

    • (admin) Add a Seer plan section to customer overview by @trevor-e in #120565
    • (ai) Hook gen_ai title generation into ingestion pipeline by @vgrozdanic in #120442
    • (ai-monitoring) Return stored conversation titles from the list endpoint by @vgrozdanic in #120665
    • (conversations) Add usage chart to the conversations list by @ArthurKnaus in #120552
    • (data-export) Emit array-valued telemetry attributes from data export tasks by @manessaraj in #120461
    • (eap) Add LIMIT BY support to table queries by @shellmayr in #120323
    • (explore) Register conversations list chart referrer by @ArthurKnaus in #120551
    • (ingest-consumer) Don't check backpressure when recovery mode by @bmckerry in #120596
    • (issue-inbox) Replace issue actions with Seer CTAs by @malwilley in #120533
    • (jira) Add status field to Jira search endpoint by @Christinarlong in #120479
    • (llm-proxy) Add conversation_id attribute to request by @vgrozdanic in #120739
    • (notifications) Link regression notifications to the triggering event by @Christinarlong in #120405
    • (perf) Prevent custom timing entries from accumulating by @scttcper in #119573
    • (producer) Rolling backpressure out to FTP instances again by @lvthanh03 in #120681
    • (scm-project-creation-flow) Storing decoded notification selecti… by @Abdkhan14 in #120671
    • (seer-infra-telemetry) Add GcpServiceAccount model for tracking per-org service accounts by @shashjar in #120499
    • (skills) Add migrate-container-queries skill by @priscilawebdev in #120459
    • (spans) Add new conditional if syntax by @wmak in #120684
    • (tracemetrics) Replace metrics explore queries with seer results by @narsaynorath in #120660

    Bug Fixes 🐛

    Analytics

    • Preserve setup-docs project attribution by @jaydgoss in #120229
    • Attribute legacy framework modal actions by @jaydgoss in #120235
    • Track SCM project-creation platform searches by @jaydgoss in #120227
    • Unify project platform selection in growth event by @jaydgoss in #120115
    • Carry SCM project-creation wizard events in a variant param by @jaydgoss in #120080
    • Attribute setup docs by project creation variant by @jaydgoss in #120143
    • Split integration-install flow into view value + variant param by @jaydgoss in #119936

    Discover

    • Put upsells in discover page filter dropdowns by @nikkikapadia in #120594
    • Flag gate all Open in Discover buttons to Open in Explore by @nikkikapadia in #120509

    Explore

    • Update trace empty state docs link by @sentry-junior in #120169
    • Correct grammar in missing-replay tooltip by @JoshuaKGoldberg in #120505
    • Show No Data state for empty attribute breakdown chart by @gggritso in #120575

    Issues

    • Mark issues as seen when previewed in the inbox by @roggenkemper in #120656
    • Prevent scroll chaining to the page in inbox and feedback by @roggenkemper in #120654
    • Show placeholder in issue preview header while loading by @roggenkemper in #120580
    • Reduce issue preview header height by @roggenkemper in #120579
    • Truncate status subtitle so it doesn't overlap progress tag by @roggenkemper in #120576
    • Show group lifetime first/last seen in inbox row by @roggenkemper in #120524
    • Simplify stack trace code mapping modal, smaller button by @scttcper in #119790

    Jira

    • Modify backend form to support lazily fetching from URL on select addition by @Christinarlong in #120504
    • Only load saved project status mappings by @Christinarlong in #120481

    Migrations

    • Make org contributors uniqueness constraint migration safe for self-hosted by @srest2021 in #120689
    • Make org contributors provider+hostname migration safe for self-hosted instances by @srest2021 in #120637

    Preprod

    • Disallow wildcards for snapshot status by @jamieQ in #120677
    • Align snapshot comment approval status by @jamieQ in #120503

    Releases

    • Ensure ActionContext for activity creation in webhooks by @sentry in #120550
    • Skip release query outside releases tab by @jamieQ in #120401

    Replays

    • Guard against non-finite video currentTime by @sentry in #119688
    • Resolve pure-render-functions violation in useLiveRefresh by @sentry in #120250

    Seer

    • Normalize anonymous users for user RPCs by @gricha in #120598
    • Some tweaks to Smart Assignment scoring, metrics (take 2) by @hobzcalvin in #120600
    • Hide autofix review cards without a valid PR [will revert soon] by @NicoHinderling in #120506

    Sentry Apps

    • Handle invalid JSON in Select FormField webhooks by @sentry in #119207
    • Gate error webhook subscriptions correctly by @cvxluo in #120611

    Ui

    • Ignore 402 request errors by @scttcper in #120708
    • Filter noisy frontend serviceworker errors by @scttcper in #120578

    Other

    • (acceptance) Avoid project fixture override by @sentry-junior in #120508
    • (activity-alerts) Attach notification settings links when possible by @leeandher in #120564
    • (apigateway) Restore cell tag on async proxy_request counter by @ldelvoye in #120573
    • (bootstrap) Handle failed org preload requests by @scttcper in #120588
    • (browse) Ignore time range filters in context PUT endpoints by @DominikB2014 in #120662
    • (ci) Update tests to seed the correct column for ai_conversations by @pbhandari in #120608
    • (conversations) Hide misleading span value counts in search by @vgrozdanic in #120738
    • (crons) Throttle max deletion rate by @wedamija in #120679
    • (dashboards) Correct filter legend names with group by by @DominikB2014 in #120663
    • (feedback) Extract FeedbackModal components to module scope by @sentry in #120041
    • (forms) Stop scraps form wrapper from stretching vertically by @priscilawebdev in #120553
    • (integrations) Return 400 instead of 500 on partial code mapping PUT by @scttcper in #120602
    • (monitors) Prevent TypeError when team.projects is undefined in owner options by @sentry in #119388
    • (navigation) Account for global warning banners by @priscilawebdev in #120545
    • (overrides) Upsell footer not rendering in date filter by @nikkikapadia in #120673
    • (projects) Projects endpoint should use spans by @k-fish in #120743
    • (sdk) Filter 'ServiceWorker cannot be started' errors by @sentry in #120606
    • (sdkcd) Attribute React Native native crashes by @sentry-junior in #120444
    • (search) Stop clipping single-value filter dropdowns by @JoshuaKGoldberg in #120586
    • (spans) Apply drop-segments killswitch before any processing by @vgrozdanic in #120501
    • (tables) Add aria-sort to sortable headers by @JoshuaKGoldberg in #120560
    • (test) Update transactionsList.spec.tsx to await grid cells by @sentry in #120571
    • (trace) Remove eventTransaction in showJSONLink check by @mjq in #120477
    • (trials) Fix missing and negative day-count in product trial alerts and tags by @souredoutlook in #119118
    • (unreal) Add Unreal (gaming platforms) to supported replay categories by @mujacica in #120616
    • Do not run the react compiler on node_modules by @TkDodo in #120737
    • Revert "ref(taskbroker): Update taskbroker-client to 0.20.13 (#120489)" by @getsentry-bot in 28791fb7
    • Revert "fix(auth): add debug logging" by @nora-shap in #120532

    Documentation 📚

    • (link) Clarify internal links should not open in a new tab by @sentry-junior in #120256
    • (preprod) Document skipped status check endpoints by @jamieQ in #120595

    Internal Changes 🔧

    Analytics

    • Clarify SCM framework flow naming by @jaydgoss in #120233
    • Replace setup-docs flow booleans with docsFlow by @jaydgoss in #119937

    Billing

    • Disable checkout button when submitting by @brendanhsentry in #120674
    • Remove redundant isTrial field by @brendanhsentry in #120525

    Dashboards

    • Remove dashboards-ai-generate feature flag (backend) by @cvxluo in #120134
    • Remove dashboards-ai-generate feature flag (frontend) by @cvxluo in #120135

    Deps

    • Bump dompurify from 3.4.11 to 3.4.12 by @dependabot in #120308
    • Bump sentry-protos to 0.51.0 by @skonves in #120666

    Issue Workflow

    • Add ParticipantMap to NotificationTarget helper by @leeandher in #120389
    • Move build_activity_notification_data to template layer by @leeandher in #120388

    Issues

    • Migrate issueList to core components with built-in container queries by @TkDodo in #120321
    • Match issue preview horizontal padding to design by @roggenkemper in #120507

    Onboarding

    • Graduate organizations:onboarding-new-welcome-ui by @cvxluo in #119868
    • Graduate onboarding-copy-setup-instructions-project-creation by @cvxluo in #120011
    • Graduate onboarding-copy-setup-instructions flag by @cvxluo in #119968

    Project Install

    • Make integration refetch deterministic by @sentry-junior in #120136
    • Stabilize notification refetch test by @jaydgoss in #120539

    Seer

    • Return the SeerRun from trigger_autofix_agent, not a bare int by @trevor-e in #120590
    • Reword Seer workflow action and status labels by @mtopo27 in #120517
    • Remove leading icon from Review PR buttons by @NicoHinderling in #120522

    Sentry Apps

    • Use granular webhooks in request log by @cvxluo in #120577
    • Require webhookEvents and drop the pre-granular fallbacks by @cvxluo in #120581
    • Use apiOptions for the sentry app token list by @cvxluo in #120490
    • Reduce the application form to editing by @cvxluo in #120487
    • Give internal and public creation their own forms by @cvxluo in #120484

    Ui

    • Show All Agents when no agent filter is selected by @vgrozdanic in #120736
    • Clarify beta feature badge tooltip copy by @vgrozdanic in #120730
    • Remove scroll-to-element by @scttcper in #120523

    Other

    • (all-projects-detector) Setup a feature flag by @leeandher in #120672
    • (auth) Unify SAML and OAuth identity-confirmation flows on the shared SSO pipeline by @nora-shap in #120702
    • (chat) Use MessageRow gutter in ToolUseBlock, drop redundant spinner slot by @priscilawebdev in #120639
    • (control) Actually drop OrganizationMemberTeamReplica by @strongs in #120167
    • (conversations) Migrate breadcrumbs to BreadcrumbList by @priscilawebdev in #120729
    • (crons) When deleting checkins, skip marking them as pending deletion. by @wedamija in #120670
    • (dynamic-sampling) Remove transaction-volumes-per-project rollout flag by @shellmayr in #120559
    • (forms) Migrate superuser staff access form off deprecatedforms to scraps form by @priscilawebdev in #119195
    • (integrations) Remove integrations-github-platform-detection flag by @cvxluo in #120048
    • (modals) Migrate media queries to container queries by @priscilawebdev in #120544
    • (nav) Clean up leftover page-frame naming by @priscilawebdev in #120557
    • (pr-metrics) Drop attribution confidence ordering and unused signal type by @vaind in #120486
    • (project-creation) Expand SCM wizard coverage by @jaydgoss in #120363
    • (replays) Migrate responsive styles to container queries by @priscilawebdev in #120643
    • (seer-billing) Replace org contributor get-or-create helpers with Django lookups by @srest2021 in #119978
    • (seer-infra-telemetry) Create updated schema for monitoring provider connections by @shashjar in #120355
    • (snuba) Loosen mobile vital test to unblock Snuba bugfix by @mjq in #120567
    • (split-panel) Extract SplitDivider into DragHandle component by @ChrisandraVaz in #120529
    • (tables) Consolidate sortable header cells into one SortableHeaderCell by @JoshuaKGoldberg in #120587
    • (traces) Redesign the trace view header to be container-responsive by @priscilawebdev in #120304
    • (workflow engine) Remove TriggerResult by @saponifi3d in #120412
    • (workflow_engine) Refactor the WorkflowEvaluation class to use BaseWorkflowEngineEvaluation by @saponifi3d in #120010
    • Support lists in flagpole conditions by @noahsmartin in #120636
    • Move subscription based features to flagpole by @noahsmartin in #120678
    • Bump taskbroker-client to 0.20.15 by @getsentry-bot in #120664
    • Removed feature flag in test that was unused by @noahsmartin in #120613
    • Improve useResponsivePropValue types by @TkDodo in #120659
    • Update objectstore-client to 0.2.0 by @jan-auer in #120641
    • NoIssuesMatched to scraps primitives by @TkDodo in #120337
    • Enable ai-train Content-Signal in robots.txt by @elijames-codecov in #120518
    • Add metrics to service delegator by @markstory in #120514
    • Remove performance plan trial by @noahsmartin in #120538
    • Bump new development version by @sentry-release-bot[bot] in 704e8197

    Other

    • Drop weekly-reports from plan fixtures by @noahsmartin in #120614
    • proto bump by @volokluev in #120512
    Original source
  • Jul 24, 2026
    • Date parsed from source:
      Jul 24, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    Session Replay for Unreal Engine: see the crash before the crash

    Sentry adds Session Replay support for the Unreal Engine SDK, attaching the last seconds of gameplay to crash reports with video, breadcrumbs, logs, traces, and an AI replay summary to help teams reproduce crashes faster.

    What you get with Session Replay

    You know the drill: a crash report lands in your queue with a pristine stack trace pointing at some innocent-looking function and absolutely no clue about what the player was actually doing. Were they mid-boss-fight? Alt-tabbing during a loading screen? Standing perfectly still in the tutorial? QA can’t repro it, the player’s bug report says “game crashed lol,” and you’re left staring at a callstack playing twenty questions with a core dump.

    Stack traces tell you where the code died but not always why. Since games tend to be much less deterministic than typical desktop or mobile apps, the “why” often lives in the seconds before the crash.

    That’s exactly the gap Session Replay fills. With its new Session Replay support, the Sentry SDK for Unreal Engine can now continuously record the last several seconds of gameplay and attach that clip to the crash report. When the crash lands in Sentry, so does the footage, allowing you to watch what the player saw, right up to the moment things went sideways.

    When a crash with a replay arrives, it shows up on the Replays page linked to the crash event as a playback with the actual rendered frames of your game and a scrubbable timeline of everything important that was going on along the way.

    The panels next to the player are where the debugging happens. Alongside the footage and an AI replay summary, each replay gives you:

    • Tags & context - the answers you’d normally have to ask the player for: OS and version, release, crash type, region, etc.
    • Breadcrumbs - errors, gameplay events, and your own custom breadcrumbs on a timeline synced with the video.
    • Logs - the game’s log output timestamped against the video.
    • Trace - the spans leading up to the crash, linked by a shared trace ID. If the crash involves your backend, the server-side spans of the same trace are accessible from here as well.

    Looking at the example above, those things tell the full story: three seconds in, an ensure fires because a checkout HTTP request came back invalid; the player reaches level 2, picks the “Wrath” attack modifier, and at 00:22 - fatal crash in ASentryTowerTurret::Shoot. That’s a reproduction script, handed to you by the crash itself.

    In fact, you don’t even have to leave the crash to start watching. The replay is embedded right on the crash event page, so triaging an issue can start with a quick glance at the last few seconds of gameplay. If that glance raises questions, the full replay page is one click away.

    How it works

    Earlier experiments with replay capturing in the Unreal SDK leaned on platform vendor features (e.g. GDK’s game DVR on Xbox). That works, but every platform behaves differently and some can’t ship at all.

    For the new desktop and mobile implementation we went the other way and built the recording pipeline out of Unreal-native facilities so the same code runs everywhere the engine does. It has three main players:

    The backbuffer capture hooks Slate’s OnBackBufferReadyToPresent on the render thread, throttles to the configured capture framerate (default 30 FPS, if your game can render faster frames are sampled down), and copies each frame into a texture the encoder can consume. Backbuffers come in many formats (e.g. 10-bit, HDR) and Slate doesn’t create them as shader resources, so the capture path does a hardware copy into a scratch texture and lets an engine pixel shader handle format conversion. If you’re already rendering BGRA8, it degenerates into a straight GPU copy.

    The video encoder runs on a dedicated thread and feeds captured frames to a hardware H.264 encoder via Unreal’s AVCodecs plugin family (NVENC on NVIDIA, AMF on AMD, VideoToolbox on Apple). The right encoder is picked at runtime based on the player’s GPU. Encoded output is grouped into short fragments at keyframe boundaries and muxed into fragmented MP4.

    The replay recorder orchestrates the whole thing. It maintains a rolling ring buffer of completed fragments only ever keeping the configured replay window and periodically assembles them into a complete, playable MP4 on disk. Each snapshot is written to a temp file and atomically renamed, so there’s never a torn, half-written video lying around.

    When a crash happens, the Unreal SDK picks up the latest rolling clip along with the crash report, wraps it into an envelope, and handles the upload to Sentry.

    If the player’s machine has no compatible hardware encoder, the feature self-disables for the session and logs a warning, so crash reporting itself is never affected.

    What does it cost you at runtime?

    “Continuously encode video of my game” sounds like the kind of thing that eats a game’s frame budget for breakfast. So we measured it.

    We profiled our Unreal demo game with the engine’s CSV profiler - once with replay off as a baseline and once with it on. We ran it at 4K fullscreen deliberately, as a bigger backbuffer means a bigger copy and encode cost, so 4K marks the worst case and the overhead at lower resolutions only goes down.

    The bottom line: about 0.20 ms per frame at 4K. That’s ~1.2% of a 16.7 ms frame budget at 60 FPS, or ~2.4% at 120 FPS. Most of it comes from the render-thread backbuffer hook while encoding and file rotation happen on background threads, so the game thread, RHI thread, and GPU barely notice.

    Getting started

    Session Replay ships with the Sentry Unreal SDK 1.16.0, so if you already have the plugin set up, it’s one toggle away.

    1. Enable the AVCodecsCore engine plugin plus the codec plugin for each GPU vendor you want to cover (NVCodecs, AMFCodecs on Windows and Linux, VTCodecs on Apple platforms). They all can live side by side since the right one is picked at runtime.
    2. In Project Settings > Plugins > Sentry, expand “Session Replay” and toggle “Enable session replay (experimental)” .
    3. Rebuild the plugin. Whether replay is compiled in is decided at build time, so after toggling the setting, make sure you start clean by deleting your project’s temporaries and rebuild.

    That’s it. Replay duration, capture framerate, bitrate, and fragment length are all tunable (see the Session Replay docs covering every knob, plus per-platform requirements).

    One important caveat: currently there is no automatic masking. The recording captures your rendered frames as-is, so player names, chat, and anything else on screen ends up in the video. Make sure the content your game renders is safe to record and that your privacy policy accounts for it.

    Help us shape this

    Session Replay for Unreal Engine is an experimental feature, and a lot of what we build next depends on the feedback you give us.

    So, try it in your project, watch a few crashes with footage attached, and let us know what’s missing. Open an issue (or just react to an existing one) on GitHub or come chat on our Discord. Fewer “cannot reproduce” resolutions for everyone.

    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from Sentry and hundreds of other software products.

    Create account
  • Jul 23, 2026
    • Date parsed from source:
      Jul 23, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    26.7.1

    Sentry expands issue intelligence and agent workflows with new Autofix, Seer, and night shift capabilities, richer conversations and dashboards, improved release and webhook controls, and broader data and tracing updates across the platform.

    New Features ✨
    Action Log
    Add GALE serializer and swap response in group details by @ceorourke in #119991
    Log instead of publish temporarily by @ceorourke in #120262
    Action Log
    Require GroupActions to opt-in to be considered user-visible. by @kcons in #120159
    Add pipeline_hash to GroupDerivedData by @kcons in #119951
    Serialize derived data on the returned group by @malwilley in #119844
    Activity
    Register templates for assigned/unassigned/note notifications by @leeandher in #119917
    Register status_change activities on notification platform by @leeandher in #119865
    Ai Monitoring
    Generate conversation titles from gen_ai spans by @vgrozdanic in #120309
    Add AIConversationMetadata model by @vgrozdanic in #120078
    Auth
    Add option by @nora-shap in #119857
    Add analytics events for signup email verification by @nora-shap in #119585
    Autofix
    Refactor code-change feedback list into composable cells by @billyvg in #120418
    Carry review id and state on PR review feedback by @billyvg in #120458
    Render GitHub PR review body feedback in code-changes card by @alexsohn1126 in #120342
    Check-suite feedback view in PR iteration UI by @joseph-sentry in #120209
    Trigger PR iteration from failed check suites by @joseph-sentry in #119733
    Add fun messages, improve loading conditions for enabling notifications in autofix by @ryan953 in #119772
    Trigger notifications whenever autofix steps complete by @ryan953 in #119364
    Conversations
    Disallow negation filters on conversations page by @ArthurKnaus in #120343
    Add copy transcript button to redesigned view by @ArthurKnaus in #120341
    Default span selection per view, merge drawer URL state by @ArthurKnaus in #120204
    Collapse tool calls in the transcript by @ArthurKnaus in #119807
    Explain empty conversation transcripts by @ArthurKnaus in #119802
    Dashboards
    Add last visited by user logic by @adrianviquez in #120286
    Delete the grid view from dashboards pages by @adrianviquez in #120158
    Delete the custom dashboards tab by @adrianviquez in #119973
    Add (no value) option to global filters by @adrianviquez in #119026
    Add starred dashboards to dashboards sidebar by @adrianviquez in #119880
    Add reorder and starred endpoints by @adrianviquez in #119784
    Teach agentic dashboard generation about heat maps by @gggritso in #119788
    Derived Data
    Stamp GroupDerivedData with its initial pipeline hash by @kcons in #119947
    Add Pipeline.pipeline_hash by @kcons in #119856
    Difs
    Feature-gate Objectstore DIF reads by @lcian in #119806
    Dual-write DIFs to Objectstore by @lcian in #119805
    Discover
    Remove transactions and surface errors by @nikkikapadia in #119062
    Hide transactions saved queries by @nikkikapadia in #119246
    Deprecate discover ff by @nikkikapadia in #120067
    Dynamic Sampling
    Floor transaction sample rate to bound extrapolation by @shellmayr in #118561
    Count projects sampled below 100% in per-org pipeline by @shellmayr in #120065
    Explore
    Suggest ESQ from humanized filter text by @manessaraj in #119243
    Highlight every matching search term in logs and spans by @JoshuaKGoldberg in #119310
    External Mcp
    Switch datadog mcp integrations to all pass authentication via headers, instead of the deprecated datadog specific token by @wedamija in #119966
    Connect org level datadog integration to Seer by @wedamija in #119853
    Implement org level ui for configuring datadog integration by @wedamija in #119777
    Add org-level Datadog integration for Seer by @wedamija in #119690
    Gal
    Trigger derived data rebuild after project backfill completes by @yuvmen in #119783
    Add reset option to project-level backfill task by @yuvmen in #119556
    Double-write Activity as GALE by @thetruecpaul in #118941
    Gdd
    Add task to find and update projects with stale derived data by @kcons in #120410
    Add index on pipeline_hash to allow us to find and filter old data efficiently by @kcons in #120406
    GroupDerivedData debug endpoint by @kcons in #120255
    Add promote_to_live by @kcons in #120243
    Add GroupDerivedData.generated_at by @kcons in #120166
    Issue Progress
    Add inbox assignment filter by @malwilley in #120251
    Add initial inbox page by @malwilley in #120213
    Track issue blocker in derived action log data by @malwilley in #119970
    Read progress from derived data on group by @malwilley in #119941
    Issue Search
    Rank progress sort past the cap with Snuba filters by @roggenkemper in #119952
    Order progress sort in Postgres past the candidate cap by @roggenkemper in #119736
    Issues
    Show progress state in the issue preview by @roggenkemper in #120454
    Support Autofix trigger activities by @scttcper in #120366
    Add issue.autofix_state search key for autofix overview by @NicoHinderling in #120293
    Update v2 activity timeline markers by @scttcper in #120278
    Remove fake auto-resolution by @scttcper in #120153
    Global register controls, design system styles by @scttcper in #119732
    Attribute pull request activities by @scttcper in #119977
    Run auto-resolve every 10 minutes by @scttcper in #120149
    Add 'Open in Explore' as Logs fold action by @JoshuaKGoldberg in #119905
    Refine regressed activity layout by @scttcper in #119755
    Clarify assignee tooltip details by @scttcper in #119176
    Native
    GA minidump multi-exceptions by @jjbayer in #119808
    Symbolicate multiple native exceptions by @jjbayer in #119780
    Ourlogs
    Clarify rate limit error (429) message by @JoshuaKGoldberg in #119825
    Show timestamps in detail view by @JoshuaKGoldberg in #119517
    Pr Iteration
    Remove 👀 reaction after iteration completes by @alexsohn1126 in #120223
    React with 🎉 on comment after iteration completes by @alexsohn1126 in #120226
    Pr Metrics
    Add reviews_requested_count to scm.pr.closed by @giovanni-guidini in #120348
    Forward per-check recovery detail on the judge wire by @vaind in #120113
    Add repo provider and visibility to scm.pr.closed by @giovanni-guidini in #119903
    Include group_ids in delegated agent attribution by @giovanni-guidini in #119810
    Route readers to the document, sweep it, and validate parity by @vaind in #119574
    Reap PullRequestMetrics rows stuck at JUDGE_IN_PROGRESS by @giovanni-guidini in #119821
    Capture new lifecycle signals on the document path by @vaind in #119572
    Route PR activity to the reduced document behind a cutover option by @vaind in #119571
    Preprod
    Add skipped status check endpoints by @jamieQ in #119824
    Add settings UX for size analysis PR comment rules by @mtopo27 in #120205
    Add git SHAs to default preprod search attributes by @mtopo27 in #120129
    Expose size PR comment options in project API by @mtopo27 in #120120
    Post size analysis results as PR comments by @mtopo27 in #119422
    Expand dotted build codes in check-for-update APIs by @trevor-e in #119759
    Releases
    Create a template for release activity by @leeandher in #119955
    Add enable-release-creation feature to remaining release auto-creation paths by @shellmayr in #120057
    Add release auto-creation toggle to project settings by @shellmayr in #117786
    Add project toggle for release auto-creation from telemetry by @shellmayr in #117785
    Search
    Show Ask Seer results directly by @nsdeschenes in #120122
    Register agentic triage sort feature flag and options by @Mihir-Mavalankar in #120084
    Rework Ask Seer query token styling by @nsdeschenes in #119846
    Register humanized ESQ feature flag by @manessaraj in #120072
    Add Ask Seer regenerate action by @nsdeschenes in #119909
    Refine Ask Seer empty-state heading by @nsdeschenes in #119818
    Rework Ask Seer polling status by @nsdeschenes in #119714
    Seer
    Smart Assignment scoring by @hobzcalvin in #119944
    Open autofix run drawer inline from overview by @mtopo27 in #120422
    Record agentic-triage-sort flag in agent run options by @Mihir-Mavalankar in #120473
    Add assignee filter and per-card assignee to Autofix Overview by @mtopo27 in #120421
    Thread autofix_automation_tuning into night shift's triage payload by @trevor-e in #120386
    Smart Assignment delivery by @hobzcalvin in #119943
    Polish autofix overview cards and fix run-activity timestamps by @jshchnz in #120425
    Attribute agent actions to delegating users by @gricha in #120172
    Gate agent writes behind short-lived capability tokens by @gricha in #118539
    Autofix overview sections driven by issue.autofix_state by @NicoHinderling in #120294
    Assign triggering user when a Seer PR exhausts its iteration cap by @vaind in #120194
    Back get_metric_metadata with the metrics endpoint by @DominikB2014 in #120076
    Add global option to enable night shift for legacy Seer orgs by @trevor-e in #120285
    Request review from triggering user on green Seer PRs by @vaind in #120185
    Render night shift triage reason as markdown by @trevor-e in #120138
    Add /bash-mode-on and /bash-mode-off slash commands by @Zylphrex in #120206
    Ingest GitHub PR review webhooks for Autofix iteration by @alexsohn1126 in #119630
    Back get_metric_metadata with the metrics endpoint by @DominikB2014 in #120102
    Add agentic triage scoring for night shift candidate selection by @Mihir-Mavalankar in #120114
    Show skip reason on the workflows page Skipped tag by @trevor-e in #120126
    Link delegated coding agent PRs to SeerRunPullRequest by @trevor-e in #119427
    Experimenting around by @jshchnz in #119794
    Add inline docs embed by @natemoo-re in #119823
    Register Night Shift UI feature by @sentry-junior in #119902
    Serialize pull requests on Seer runs by @jshchnz in #119795
    Smart-assignment dispatch and workflow wiring by @hobzcalvin in #119693
    Add a demo runs list UI with search, pagination, and outputs by @chromy in #118828
    Track coding agent handoff status in Sentry's DB by @trevor-e in #119412
    Persist and surface night shift skip_reason by @trevor-e in #119700
    Add autofix-browser-notifications feature flag by @ryan953 in #119737
    Seer Infra Telemetry
    Implement GcpOrgMonitoringProvider by @shashjar in #120171
    Add setup wizard pipeline UI for GCP integration by @shashjar in #120093
    Add GCP MCP org-level integration provider by @shashjar in #119774
    Sentry Apps
    GA custom webhook headers by @cvxluo in #120274
    GA granular webhook subscriptions by @cvxluo in #120271
    GA the custom webhook headers UI by @cvxluo in #120269
    Graduate granular webhook subscription UI by @cvxluo in #120265
    Allow webhook subscriptions before the url is set by @cvxluo in #120160
    Indicate custom formatting applied to routines by @cvxluo in #120145
    Register flag for app templates by @cvxluo in #120142
    Expose the webhooks flag by @cvxluo in #119843
    Add urls to issue workflow webhook payloads by @cvxluo in #119680
    Stories
    Import image gallery using import.meta.glob by @scttcper in #119632
    Add custom favicon for stories pages by @cleptric in #119683
    Trace Items
    Filter metrics to those with context via context_only by @DominikB2014 in #120212
    Add endpoint to list metric names and context by @DominikB2014 in #119740
    Tracemetrics
    Wrap seer combobox token for equation formatting by @narsaynorath in #120400
    Remove equation feature flag definitions by @narsaynorath in #119921
    Weekly Report
    Add WoW change to Total Spans by @amy-chen23 in #120352
    Add spans presentation layer for weekly email by @amy-chen23 in #120231
    Add spans data layer with per-project counts by @amy-chen23 in #120230
    Add spans chart data layer by @amy-chen23 in #118860
    Other
    (admin) Gift recurring credits page by @dashed in #119435
    (ai) Prepare task producer for gen_ai conversation title generator by @vgrozdanic in #120441
    (alerts) Document request/response schema for the metric alert rule index endpoints by @azulus in #120085
    (api) Document and publish trace item stats endpoint by @cvxluo in #117061
    (attributes) Add public alias for sentry.trace_lifecycle attribute by @Lms24 in #120327
    (breadcrumbList) Typed breadcrumb redesign with rich items, validated on real pages by @Jesse-Box in #119060
    (ci) Check embed_widgets.generated.json sync by @natemoo-re in #120074
    (compactSelect) ENTER in searchable selects by @TkDodo in #119713
    (control) Drop unconsumed check_run webhook actions at the parser by @vaind in #119829
    (copilot) Add agent session URL to autofix panel by @sehr-m in #119874
    (data-browsing) Rename "Heat Map" to "Heatmap" in the UI by @gggritso in #119771
    (derived) Add build_and_promote_derived_data with generation tasks by @kcons in #120292
    (flags) Register SCM project creation flag by @jaydgoss in #120349
    (inbound-filters) Add table & modal by @shellmayr in #117668
    (ingest) Add option to reprocess events not in nodestore by @bmckerry in #120133
    (integrations) Add action-row layout to the create-integration modal by @cvxluo in #120128
    (low-value-spans) Fetch costs on demand by @constantinius in #119610
    (metrics) Add metrics.set for unique-value set metrics by @armenzg in #119716
    (navigation) Add translation markers toggle to command palette by @JonasBa in #116784
    (night-shift) Add structured logging to agentic triage functions by @Mihir-Mavalankar in #120218
    (processing) Define new async tasks by @jjbayer in #119758
    (refactor-tasks) Add React compiler conventions by @nsdeschenes in #119621
    (replays) Roll out FutureTrackingProducer to eap_items by @bmckerry in #119743
    (scraps) Add chat primitives (UserBubble, ToolCallIndicator) and adopt in Seer Explorer by @priscilawebdev in #119493
    (seer-agent) Allow use of bash mode in seer agent by @Zylphrex in #120075
    (seer-billing) Remove nullability for organization contributor provider and hostname by @srest2021 in #119695
    (slack) Make nudge frequency configurable via option by @alexsohn1126 in #119953
    (snuba) Add response logging to RPC calls by @JoshuaKGoldberg in #119562
    (spans) Count segments with gen_ai conversation ids by @vgrozdanic in #119919
    (taskbroker) Add Application Argument to Task Sender by @george-sentry in #119860
    (teapot-frontend) Integrate Teapot GPU symbolication service with Sentry by @mujacica in #119376
    (trace) Add dismissable feedback banner for new trace waterfall by @mjq in #120465
    (ui) Add org feature flag controls (frontend only) by @scttcper in #119798
    (upload) Multipart feature flag by @jjbayer in #119888
    Refresh logs empty-state copy / include prompt by @bcoe in #119660
    Bug Fixes 🐛
    Action Log
    Give action log-based Activity APIs their own feature by @kcons in #120368
    Include stack info in our missing context error by @kcons in #119930
    Provide ActionContext to process_autofix_updates by @kcons in #119928
    Alerts
    Fix bug in percent_increase where evaluation was incorrect by @saponifi3d in #120356
    Ensure that incompatible metric alert messages are only shown for ticketing actions by @malwilley in #119741
    Autofix
    Keep sticky headers above row actions by @NicoHinderling in #120414
    Wrong feature flag for autofix plan by @Zylphrex in #120253
    Resolve pure-render-functions violation in SeerEnableNotifications by @sentry in #120021
    Resolve check-suite autofix_run at construct time by @joseph-sentry in #120068
    No-op PR iteration when Seer run is missing by @joseph-sentry in #120111
    Handle error state in autofix code changes by @Zylphrex in #119876
    Render PR review comments by @joseph-sentry in #119750
    Import usePrompt instead of usePrompts for checking autofix-sw-notification by @ryan953 in #119753
    Conversations
    Prevent blank message bubbles in the transcript by @ArthurKnaus in #120176
    Preserve reasoning for reasoning-only assistant turns by @vgrozdanic in #119914
    Dashboards
    Prevent errors with integer titles in incremental_title when copying dashboards by @sentry in #120201
    Add widget action tooltips by @jamieQ in #120375
    Resolve static-component-definitions in GenericFilterSelector by @sentry in #120033
    Show a No Data state instead of a generic error by @gggritso in #119940
    Legend toggle discards unsaved filters by @nikkikapadia in #119760
    AI agents dashboard tag click updates global filters by @nikkikapadia in #119521
    Data Browsing
    Use canvas renderer for time series graphs by @gggritso in #120208
    Turn off Safari user selection on ECharts charts by @gggritso in #119845
    Speed up heat map drag-to-select by @gggritso in #119776
    Detectors
    Handle invalid body size values in large payload detector by @lobsterkatie in #120157
    Use correct key for transaction name by @lobsterkatie in #120118
    Handle string request_start values in HTTPOverheadDetector by @lobsterkatie in #119994
    Stop short-circuiting detection on first error by @lobsterkatie in #120000
    Discover
    Put in reverse redirect and change page titles by @nikkikapadia in #120395
    Adjust max pickable days options to mirror spans by @nikkikapadia in #120130
    Remove transactions dataset options by @nikkikapadia in #120073
    Dynamic Sampling
    Only query transaction volumes for projects that need balancing by @shellmayr in #120026
    Skip 100% rate projects in tx balancing by @shellmayr in #119907
    Eslint
    Allow nested arrow functions with untyped parameters by @TkDodo in #120189
    Ignore linting agents directory by @TkDodo in #120191
    Improve the prefer-info-text eslint rule by @TkDodo in #120004
    Enable unicorn/filename-case eslint rule by @ryan953 in #120103
    Explore
    Reset aggregate cursor on filter changes by @sentry-junior in #120200
    Improve chart empty-state guard by @sentry in #120014
    Remove trace links from aggregate table by @nsdeschenes in #120091
    Gal
    Add missing context to fetch commits task by @thetruecpaul in #120112
    Add missing context to organization release details endpoint by @thetruecpaul in #120116
    Add missing context to reprocessing by @thetruecpaul in #120001
    Add missing context to gitlab webhooks by @thetruecpaul in #120082
    Add missing context to unmerge2 by @thetruecpaul in #120002
    Add missing context to bitbucket webhook by @thetruecpaul in #119996
    Add missing context to occurrence consumer by @thetruecpaul in #119976
    Add missing context to github webhook issues by @thetruecpaul in #119974
    Add missing context to clear expired snoozes task by @thetruecpaul in #119975
    Add context scope to post-process by @thetruecpaul in #119754
    Re-enable gating around activity double-write by @thetruecpaul in #119766
    Gdd
    Incorporate generated_at into incremental update checks by @kcons in #120239
    Add SeerRCA action to track_root_cause by @kcons in #119782
    Include more resolution events in track_status by @kcons in #119778
    Integrations
    Report matching result count in search analytics by @cvxluo in #119649
    Allow rotating token-only app secrets by @scttcper in #120050
    Issues
    Restore status banner progress markers by @scttcper in #120411
    Serialize Autofix trigger activity type by @scttcper in #120372
    Use ContainerQueries for IssueListFilters by @TkDodo in #120314
    Restore sidebar comment actions in activity v2 by @scttcper in #120283
    Clean up timeline marker prop by @scttcper in #120264
    Handle invalid release resolution searches by @scttcper in #120127
    Handle non-numeric issue IDs in bulk PUT endpoint by @sentry in #119984
    Stop activity line at final marker by @scttcper in #119972
    Keep ongoing status transitions atomic by @scttcper in #119882
    Adjust minor issue activity details by @scttcper in #119756
    Make Recommended sort selectable in command palette by @roggenkemper in #119850
    Balance stack trace frame headers by @scttcper in #119792
    Ourlogs
    Scope Open in Explore link to the whole trace by @JoshuaKGoldberg in #120066
    Prefetch trace item details on hover for embedded rows by @JoshuaKGoldberg in #119752
    Pr Metrics
    Stop aborted check reruns from erasing a recorded verdict by @vaind in #120123
    Resolve run_id/group_id locally for Cursor attribution by @giovanni-guidini in #119815
    Preprod
    Link snapshot PR comments to /snapshots/ settings route by @mtopo27 in #120493
    Escape untrusted artifact metadata in VCS Markdown by @jamieQ in #119742
    React
    Move Date.now() out of render in useReplayPageview hook by @sentry in #120022
    Hoist component resolution in OverrideOrDefault by @sentry in #120028
    Replays
    Resolve complete-hook-dependencies in useReplayCurrentTime by @sentry in #120020
    Use window.location.assign for video download by @sentry in #119980
    Search
    Blur query builder after Ask Seer selection by @nsdeschenes in #120125
    Make ctrl/cmd+delete in search delete to the cursor by @JoshuaKGoldberg in #120097
    Prevent Ask Seer overflow and bleed-through by @nsdeschenes in #119900
    Preserve negation on quoted colon-value filters by @mrduncan in #119789
    Seer
    Anchor overview vitals tooltips to their text and show local time by @jshchnz in #120478
    Skip page filter URL sync on autofix overview by @NicoHinderling in #120415
    Support agent tokens in release endpoints by @gricha in #120173
    Correct overview action pending and empty-state checks by @NicoHinderling in #120397
    Rate-limit autofix triggers from night shift by @trevor-e in #120347
    Restore issue summary generation for seat-based orgs by @Mihir-Mavalankar in #120222
    Stop night shift org fan-out from sharing one trace by @trevor-e in #119997
    Fix autofix prompt key and register it by @ryan953 in #120017
    Strengthen timestamp embed description by @natemoo-re in #119666
    Guard against undefined pullRequests in Night Shift UI by @sentry in #119689
    Fix chvron direction in seer settings by @ryan953 in #119833
    Format repository integration names by @sentry-junior in #119797
    Seer Billing
    Fix org contributors uniqueness constraint to use provider+hostname, not integration id by @srest2021 in #119965
    Look up organization contributor by provider & hostname instead of integration id by @srest2021 in #119354
    Spans
    Sample process segment task transactions by @lvthanh03 in #120207
    Do not propagate traces for process segments task by @lvthanh03 in #120203
    Handle missing span descriptions in MN + 1 detector by @lobsterkatie in #119887
    Query gen AI reasoning level attribute by @constantinius in #119719
    Trace
    Make span details replay preview independent of transactions by @mjq in #120365
    Avoid unnecessary trace metadata fallback by @nsdeschenes in #119922
    Traces
    Remove border around project icons in trace header by @priscilawebdev in #120310
    Use spans JSON endpoint for transaction deprecation orgs by @nikkikapadia in #119963
    Preserve logs when trace metadata fails by @nsdeschenes in #120098
    Ui
    Show gen AI reasoning level attribute by @constantinius in #119720
    Surface backend form submission errors by @sentry-junior in #119739
    View Hierarchy
    Handle null hierarchy from failed JSON parsing by @priscilawebdev in #120178
    Make windows optional in ViewHierarchyData type by @priscilawebdev in #120177
    Handle missing 'windows' property in ViewHierarchyData by @sentry in #120006
    Weekly Report
    Extend format_duration_ms to include larger values by @amy-chen23 in #120468
    Prevent populating cache on admin runs by @amy-chen23 in #119681
    Weekly Reports
    Reduce key error issues chunk size from 100 to 25 by @amy-chen23 in #120087
    Simplify outcomes query by removing redundant groupby by @amy-chen23 in #120089
    Eliminate expensive JOIN in issue summaries query by @amy-chen23 in #120088
    Other
    (action log) Migrate GroupActionLogEntry date_updated to have a default value of now() by @ceorourke in #119791
    (agent-monitoring) Remove Truncated label from repaired JSON output by @ArthurKnaus in #120445
    (api) Scope trace item context PUT endpoints to event:write, not org:write by @DominikB2014 in #120215
    (ask-seer) Remove duplicate header styles by @nsdeschenes in #120236
    (attachments) Preserve screenshot aspect ratio on resize by @JoshuaMoelans in #117194
    (auth) Add debug logging by @nora-shap in #120279
    (coding-conventions) Move OverrideOrDefault component definition to module scope in AccountClose by @sentry in #120027
    (crons) Move OnboardingPanelHook to module scope to satisfy static-component-definitions by @sentry in #120018
    (data-scrubbing) Prevent TypeError when relayPiiConfig is missing by @sentry in #119897
    (db) Removes unpickling logic from GZippedDictField by @GabeVillalobos in #119770
    (derived data) Log when the project-level task has nothing to do by @kcons in #119785
    (devserver) Wait for Rspack shutdown on interrupt by @jamieQ in #119942
    (difs) Jitter Objectstore multipart part upload retries by @lcian in #120188
    (hybridcloud) Honor skip-on-failure in parallel webhook drains by @joseph-sentry in #119934
    (inbound-filters) Rename custom filters tab URL segment by @shellmayr in #119812
    (inc-2344) Route replay bulk delete job to long pool by @nikkikapadia in #120353
    (issue-activity) Hide some duplicative pull request activity from the UI by @malwilley in #120387
    (issue-details) Handle null localStorage in getFoldSectionKey by @sentry in #120281
    (issue-progress) Treat escalating issues as open by @malwilley in #120259
    (issue-search) Run native progress path when date_to is now by @roggenkemper in #119923
    (js) Don't attach security token to wildcard origins by @loewenheim in #120182
    (msteams) Support single-tenant Azure Bots via new msteams.tenant-id option by @futureweb in #119389
    (nav) Highlight Explore for preprod pages by @mtopo27 in #119544
    (night-shift) Exclude rage clicks and scale re-ranking pool in agentic triage by @Mihir-Mavalankar in #120252
    (nightshift) Fix all skips by @chromy in #119896
    (options) Stop truncating option values in WebhookPresenter by @joshuarli in #120371
    (profiling) Use correct proguard uuid for android sample v2 chunks by @markushi in #120429
    (project-creation) Stop the SCM alert section bouncing on option switch by @jaydgoss in #119749
    (projectconfig_cache) Disable transactions for deletes by @sentry-junior in #119817
    (release-thresholds) Apply the status endpoint's release prefetches by @cvxluo in #120094
    (request-error) Restore prototype chain for RequestError subclassing by @sentry in #119894
    (routing) Move legacy event redirect into OrganizationContext tree by @shashjar in #120132
    (scraps) Fix responsive display flex & grid emit by @TkDodo in #120326
    (sdkcd) Attribute hybrid crashes to top-level SDK versions by @sentry-junior in #119590
    (sentry apps) Add user to rpc calls by @Christinarlong in #120268
    (settings) Fill organization in MCP URLs by @sentry-junior in #120110
    (source-maps) Fall back to JavaScript docs by @sentry-junior in #120101
    (stats) Hide no_parent_span client outcome by @Lms24 in #120302
    (stories) Wrap stories in their own TrackingContextProvider by @TkDodo in #120190
    (structuredEventData) Remove inline Wrapper component in RecursiveStructuredData by @sentry in #120038
    (symbolication) Attach original event ID to SDK scope by @coyaSONG in #119779
    (tooltip) Prevent TypeError when value is undefined in chart tooltip by @sentry in #119609
    (trace-details) Prevent RangeError from invalid timestamp query param by @sentry in #119981
    (trace-items) Align metrics context to the attributes details shape by @DominikB2014 in #120344
    (tracemetrics) Allow equations in validation endpoint by @narsaynorath in #119747
    Use TopBar.Slot instead of manual h1 heading by @TkDodo in #120055
    Revert "ref(feedback): emit metric instead of outcome for ingest denylist (#97970)" by @aliu39 in #119793
    Documentation 📚
    (seer) Add embeds story w/ examples by @natemoo-re in #120108
    Internal Changes 🔧
    Api
    Correct release threshold response types by @cvxluo in #119925
    Type org member user as always present and nullable by @cvxluo in #119867
    Rename trace item stats symbols and response key by @cvxluo in #117055
    Billing
    Add trace_log_sample_rate to service_method decorator by @volokluev in #119839
    Bump sentry-protos to 0.45.0 by @skonves in #119773
    Control
    Pending deletion for dead OrganizationMemberTeamReplica table by @strongs in #120165
    Remove control callees for OrganizationMemberTeam replication by @strongs in #120161
    Stop regions from replicating OrganizationMemberTeam by @strongs in #120156
    Remove last/test-only reader of OrganizationMemberTeamReplica by @strongs in #120155
    Actually drop the dead TeamReplica table by @strongs in #119654
    Pending deletion for dead TeamReplica table by @strongs in #119651
    Conversations
    Drop New suffix from redesigned components by @ArthurKnaus in #120439
    Remove redesign feature flag and old components by @ArthurKnaus in #120434
    Use scraps UserMessage in UserMessageBlock by @priscilawebdev in #120301
    Dashboards
    Remove data-browsing-heat-map-widget flag declaration by @gggritso in #119913
    Remove data-browsing-heat-map-widget flag usage by @gggritso in #119855
    Remove data-browsing-heat-map-widget backend flag usage by @gggritso in #119854
    Unregister visibility-dashboards-async-queue flag by @cvxluo in #119674
    Graduate visibility-dashboards-async-queue flag by @cvxluo in #119673
    Deps
    Bump the sentry-dependencies group across 1 directory with 4 updates by @dependabot in #120090
    Bump sentry-protos to 0.46.0 by @shellmayr in #120322
    Bump vroomrs to 0.1.23 by @markushi in #120305
    Move to proper pnpm monorepo by @natemoo-re in #120117
    Bump type-fest from 5.2.0 to 5.8.0 by @dependabot in #119577
    Bump yaml from 2.8.3 to 2.9.0 by @dependabot in #119958
    Bump the sentry-dependencies group across 1 directory with 5 updates by @dependabot in #119956
    Update Dependabot groups by @scttcper in #119950
    Detectors
    Use logging helper in HTTP overhead detector by @lobsterkatie in #120261
    Refactor get_span_evidence_value and strip whitespace by @lobsterkatie in #120121
    Always denote no span ids with an empty list by @lobsterkatie in #119866
    Dynamic Sampling
    Remove unused small transactions option by @shellmayr in #120330
    Remove dead small-transactions pass from tx boosting by @shellmayr in #120195
    Skip orgs without active projects in per-org scheduler by @shellmayr in #119889
    Stop double-capturing per-org task errors by @shellmayr in #119906
    Add xfail test for per-org tx volume query starvation by @shellmayr in #119915
    Move blended-100% gate out of the comparison path by @shellmayr in #119723
    Eslint
    No-unnecessary-condition for alert by @TkDodo in #120197
    Skip irrelevant files in default export rule by @scttcper in #120210
    Explore
    Clean up now-unused code for direct exports (as opposed to modals) by @JoshuaKGoldberg in #120139
    Re-balance heat map chunk loading by @gggritso in #119748
    Forms
    Migrate admin user edit off JsonForm to scraps form by @priscilawebdev in #119183
    Migrate organization join request off deprecatedforms to scraps form by @priscilawebdev in #119194
    Migrate accept project transfer off deprecatedforms to scraps form by @priscilawebdev in #119193
    Migrate create issue view modal off deprecatedforms to scraps form by @priscilawebdev in #119190
    Migrate rename issue view modal off deprecatedforms to scraps form by @priscilawebdev in #119189
    Migrate project Seer settings off JsonForm to scraps form by @priscilawebdev in #119185
    Gal
    Clean up 100%-open rollout option by @thetruecpaul in #119871
    Use composite (datetime, id) cursor for project backfill by @yuvmen in #119744
    Gdd
    Remove group_id from _process_batch by @kcons in #120232
    Add _drain_log helper by @kcons in #120164
    Issues
    Make preview priority and assignee icon-only by @roggenkemper in #120462
    Remove awaiting input page by @malwilley in #120476
    Remove Details and Events tabs from issue preview by @roggenkemper in #120448
    Remove activity-based issue progress derivation by @malwilley in #120350
    Drop the merge-unmerge max-group-times-seen option by @cvxluo in #120273
    Remove virtual auto-resolve UI by @scttcper in #120154
    Remove dead group module by @mrduncan in #119767
    O11y
    Bump sentry-sdk to 2.66.1 by @alexander-alderman-webb in #120329
    Modify sample_rate header in MultiplexingTransport by @alexander-alderman-webb in #120306
    Ourlogs
    Remove ourlogs-pinning feature flag (backend) by @JoshuaKGoldberg in #120064
    Remove ourlogs-pinning feature flag (frontend) by @JoshuaKGoldberg in #120063
    Scm Project Creation Flow
    Fixing flaky test by @Abdkhan14 in #119745
    Centralizing and using disabled sub… by @Abdkhan14 in #119420
    Scraps
    Rename UserBubble to UserMessage and add width prop by @priscilawebdev in #120300
    Add chat primitives (MessageRow, AssistantMessage, MessageActions) by @priscilawebdev in #120052
    Add dedicated container query breakpoint tokens by @priscilawebdev in #119804
    Rename ProjectsSavedBadge to ProjectsBadge by @TkDodo in #120187
    Stabilize InfoText overflow handling by @TkDodo in #119904
    Improve InfoText overflow handling by @TkDodo in #119892
    Search
    Share Ask Seer combobox implementation by @nsdeschenes in #120346
    Match Ask Seer option hover color by @nsdeschenes in #120216
    Seer
    Remove verbose debug_log instrumentation from GitLab webhooks by @billyvg in #118192
    Move bash mode enablement to SeerAgentClient construction by @Zylphrex in #120225
    Register autofix-rca-in-seer feature by @rbro112 in #120104
    Remove post_process_fixability autofix for seat based orgs by @chromy in #119811
    Sentry Apps
    Clean up sentry app form by @cvxluo in #120217
    Extract the sentry app form fields by @cvxluo in #120471
    Stop capturing external-request errors from the issue form by @priscilawebdev in #119891
    Spans
    Add default parameter to attribute_value helper by @lobsterkatie in #119870
    Log full problem objects on span-first detector mismatch by @lobsterkatie in #119137
    Taskbroker
    Update taskbroker-client to 0.20.13 by @evanh in #120489
    Add raw-named namespaces for profiles/events ingest tasks by @untitaker in #120079
    Ui
    Make TypeScript checker opt in by @scttcper in #120474
    Keep Story discovery out of app HMR rebuilds by @scttcper in #119885
    Upgrade gettext-parser to v9, add local loader by @scttcper in #119848
    Remove unused Node polyfill buffer by @scttcper in #119835
    Remove process browser polyfill by @scttcper in #119828
    Weekly Report
    Batch issue summaries query to avoid statement timeout by @amy-chen23 in #120297
    Rename weekly report functions by @amy-chen23 in #119841
    Include error issues in "Resolved Last Week" by @amy-chen23 in #119437
    Weekly Reports
    Remove weekly-report-project-exclusions backend flag by @amy-chen23 in #119852
    Remove weekly-report-project-exclusions frontend flag check by @amy-chen23 in #119851
    Update admin page for sending weekly reports by @amy-chen23 in #119746
    Workflow Engine
    Update results for detectors to use the DetectorEvaluation class by @saponifi3d in #119998
    Remove resolution rollout option usage by @leeandher in #120247
    Update the workflow_engine/evaluations for Detector / Workflow Evals by @saponifi3d in #119967
    Refactor ProcessedDataConditionGroup as DataConditionGroupEvaluation by @saponifi3d in #119434
    Other
    (acceptance) Cover SCM project creation flow by @jaydgoss in #120364
    (action_log) More efficient new GroupActionLogEntry entry querying by @kcons in #119879
    (activity) Rename set_resolved module to status_change by @leeandher in #119847
    (activity-alerts) Remove _id params from notification data by @leeandher in #119553
    (apigw) Disable static files serving by @gi0baro in #120340
    (auth) Index case-insensitive user lookups by @lcian in #119901
    (autofix) Refine overview section layout by @NicoHinderling in #120417
    (billing-platform) Bump sentry-protos 0.45.1 by @brendanhsentry in #119927
    (chat) Adopt MessageRow primitive and add density in AI chat blocks by @priscilawebdev in #120427
    (codeowners) Assign ai_monitoring to telemetry-experience by @vgrozdanic in #120312
    (derived) Move framework-only tests into their own file by @kcons in #120277
    (devenv) Split sentry-specific taskbroker back out from the generic one by @untitaker in #119898
    (difs) Use simple Objectstore put under 128 MiB by @lcian in #120311
    (external-mcp) Rename datadog integration by @wedamija in #120137
    (github) Always enable webhook mailbox bucketing by @joseph-sentry in #119948
    (issue-workflow) Remove option registration by @leeandher in #120248
    (jest) Mock root ECharts imports by @scttcper in #120049
    (llm-proxy) Remove unused JWT minting endpoint by @sehr-m in #119875
    (metrics) Add a metric for legacy debug file reads by @jan-auer in #120446
    (mypy) Ignore transient mypy worker files by @leeandher in #119765
    (native) Remove compatibility code by @jjbayer in #119822
    (objectstore) Use JWT auth for presigned download URLs by @lcian in #119814
    (pr-metrics) Gate the activity document on an org feature flag by @vaind in #120071
    (preprod) Extract shared size evaluation core by @mtopo27 in #119428
    (project-creation) Replace SCM experiment gate by @jaydgoss in #120351
    (refactor-tasks) Drop repo.yaml, update README, add scan workflow by @ryan953 in #119864
    (release-health) Pre-cache organization in _handle_release_adoption by @shellmayr in #120174
    (replays) Uncomment archived replay test by @mjq in #119309
    (scm) Upgrade sentry-scm to 1.1.0 by @sentry-junior in #119908
    (seer-activity) Remove the lonely button by @leeandher in #119762
    (seer-alerts) Remove *_started options (again) by @leeandher in #120369
    (seer-infra-telemetry) Set up temporary code to provide Seer with GCP integration internally… by @shashjar in #120106
    (seerExplorerHeader) Switch to built-in container queries by @TkDodo in #120338
    (sentry apps) Silence inner value error but retry by @Christinarlong in #120280
    (slack) Increase nudge frequency to 30% and remove weekly limit by @alexsohn1126 in #119926
    (span-buffer) Reduce Lua memory allocation pressure and function call overhead by @cmanallen in #119542
    (tests) Add types to most {}-typed fixture params by @JoshuaKGoldberg in #119912
    (trace) Add feature flag for new trace view version banner by @mjq in #120460
    (trace-items) Always store metric context at org level by @DominikB2014 in #119757
    (tracemetrics) Remove equation label const function call by @narsaynorath in #120399
    (traces) Migrate trace header and vitals media queries to container queries by @priscilawebdev in #120315
    (txn-summary) Move event view creation to point of use by @mjq in #119676
    (waterfall) Improve streamed span detection logic by @Lms24 in #119602
    Bump sentry-protos 0.50.1 by @brendanhsentry in #120497
    Remove member limit forced trial and modals by @noahsmartin in #120457
    Remove slack forced trial by @noahsmartin in #120423
    Bump protos by @noahsmartin in #120396
    Bump sentry-protos 0.49.0 by @brendanhsentry in #120377
    Remove now-unused organizations:explore-modal-export feature flag by @JoshuaKGoldberg in #120140
    Move noUnresolvedIssues to scraps primitives by @TkDodo in #120339
    Remove unused Seer RPC record_pr_attribution function by @giovanni-guidini in #120058
    Remove fly.io modal by @noahsmartin in #120162
    Bump sentry-scm to 1.2.0 by @getsentry-bot in #120070
    Improve efficiency of username_is_available logic by @markstory in #119964
    Exclude API URL codegen from frontend/backend warning by @jamieQ in #118795
    Bump sentry-sdk[http2] to 2.66.0 by @cleptric in #119820
    Bump sentry-kafka-schemas to 2.2.0 by @getsentry-bot in #119763
    Bump new development version by @sentry-release-bot[bot] in 99d5faf7
    Other
    Ensure SAML assertions called with valid fields by @michelletran-sentry in #120467
    Added: Tokens 'container' in 'size.tsx' by @Jesse-Box in #120069
    deps(api-docs): Replace js-yaml with yaml by @scttcper in #120107
    deps(ui): Remove webpack dependency by @scttcper in #120095
    deps(ui): Upgrade Sentry Jest environment to v7 by @scttcper in #120083
    ref(outbox) Move user outboxes to async by @markstory in #119018
    fix(relocation) Avoid integrity errors on self-hosted import pt2 by @markstory in #119859
    chore(relocation) Capture errors during relocations by @markstory in #119832
    deps(ui): Upgrade jest-fetch-mock to 4.2.0 by @scttcper in #119799
    Enhance SplitPanel documentation with usage guidelines by @ChrisandraVaz in #119555
    debug(code-review): add sentry-org webhook handler instrumentation by @joseph-sentry in #119781
    Add issue status reconciliation on group details view by @ceorourke in #119769

    Original source
  • Jul 15, 2026
    • Date parsed from source:
      Jul 15, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    26.7.0

    Sentry ships a broad product update with major Action Log work, a redesigned AI Conversations and Traces experience, richer issue progress and preview drawers, and expanded Seer and Autofix workflows. It also improves dashboards, search, integrations, auth, and export tools.

    New Features ✨
    Action Log
    Efficient project bulk GroupDerivedData generation task by @kcons in #119664
    Feat(action_log): More GroupAction-based aggregators by @kcons in #119551
    Track pull request lifecycle activities by @malwilley in #119523
    Make OrganizationGroupIndexProgressEndpoint optionally use GroupDerivedData.progress by @kcons in #119165
    Ensure we have GroupActions for all type enums by @kcons in #119535
    Property for typed action data by @kcons in #119442
    Add ReconcileStatusAction action by @kcons in #119128
    Add backfill_group_activities by @kcons in #119162
    Outbox-based GroupActionLogEntry management by @kcons in #117836
    Admin
    Flag when a user belongs to orgs in other regions by @rahulchhabria in #118112
    Probe other regions when org search lacks an exact slug match by @rahulchhabria in #118064
    Indicate when a customer exists in another data region by @rahulchhabria in #117619
    Agent Monitoring
    Drop redundant stream_gen_ai_spans from Python onboarding by @obostjancic in #118714
    Drop redundant streamGenAiSpans from JS onboarding by @obostjancic in #118654
    Add setUser step to Conversations onboarding by @obostjancic in #118441
    Render placeholder for empty AI text parts by @obostjancic in #118235
    Improve conversation detail message rendering by @obostjancic in #118236
    Agents
    Preview multiple tool-call arguments by @matejminar in #119107
    Promote reasoning effort in span details UI by @matejminar in #118144
    Ai
    Unify XML tag collapsing across chat and span details by @ArthurKnaus in #119201
    Return input and output tokens in conversations response by @obostjancic in #118341
    Ai Conversations
    Add traces link to redesigned conversation header by @priscilawebdev in #118718
    Add redesigned conversation detail header by @priscilawebdev in #118682
    Render linked issues in conversation span details by @obostjancic in #118555
    Link issues in AI conversation span details by @obostjancic in #118550
    Register gen-ai-conversations-columns flag by @obostjancic in #118008
    Api
    Advertise required scopes on token-scope 403s (RFC 6750) by @gricha in #118612
    Add response schemas to private events and notes endpoints by @azulus in #118518
    Add COMMUNITY ApiOwner for endpoints from disbanded teams by @vgrozdanic in #118336
    Document issue/release/team params; mark legacy endpoints deprecated by @gricha in #117874
    Document accepted query params on issue & release list endpoints by @gricha in #117843
    Auth
    Add "Verify your email" pending page by @nora-shap in #119160
    Add PendingUser model and cleanup task by @nora-shap in #118532
    Add signup email verification endpoint by @nora-shap in #117952
    Add signup email verification utility by @nora-shap in #117591
    Autofix
    Render unknown PR iteration feedback sources by @joseph-sentry in #119667
    Type PR iteration feedback sources and prefer ui_text by @joseph-sentry in #119627
    Add header to autofix slack response sections by @Zylphrex in #119563
    Add optional user param to trigger_autofix_agent by @Zylphrex in #119446
    Enable CONFIGURATION issues as Autofix Automation targets by @sentry-junior in #119393
    Disable agent hand off for GitLab in Seer Drawer by @billyvg in #118465
    Make FE changes to match github mentions by @joseph-sentry in #118261
    Add Alpha badge to PR iteration feedback form by @chromy in #118559
    Add issue hyperlink to coding agent handoff by @sehr-m in #118319
    Add route analytics params for Seer setup state by @Zylphrex in #118371
    Add analytic event for set up seer button by @Zylphrex in #118354
    Enable pr_context_tools for PR iteration by @joseph-sentry in #118149
    PR iteration frontend changes by @joseph-sentry in #118049
    Pin base shas via prompt metadata by @joseph-sentry in #117956
    Handle no write permissions in autofix by @Zylphrex in #117937
    Push changes after PR iteration by @joseph-sentry in #117918
    Restore result description and fix button overflow in coding agent card by @sehr-m in #117774
    Add GroupAutofixRepos endpoint by @Zylphrex in #117848
    Add iteration_index and pr_iteration_enabled to analytics by @joseph-sentry in #117219
    Add pr_iteration endpoint step and operator activity by @joseph-sentry in #117218
    Cells
    Register synapse devservices public key in cell-routing mode static relays by @lynnagara in #118315
    Set CSRF trusted origins for cell-routing mode by @lynnagara in #118306
    Use :7899 instead of :7901 for relay-edge in devservices by @lynnagara in #118308
    Conversations
    Let the layout use available horizontal space by @ArthurKnaus in #119712
    Redirect to detail on single conversation ID search by @ArthurKnaus in #119616
    Add direct-hit redirect header for conversation ID search by @ArthurKnaus in #119613
    Return tool call result on conversation spans by @ArthurKnaus in #119508
    Make conversation detail resizable by @priscilawebdev in #119199
    Deselect span when closing detail by @matejminar in #119220
    Add dot separator to metric/duration meta by @ArthurKnaus in #119221
    Polish transcript layout width and spacing by @ArthurKnaus in #119218
    Drop span-detail Show More clips for scroll + role folding by @priscilawebdev in #119186
    Show selected agents first in agent selector by @priscilawebdev in #119182
    Indent nested collapsible XML tags by @obostjancic in #119110
    Make messages selectable in the transcript view by @obostjancic in #119094
    Auto-open span detail on the timeline view by @priscilawebdev in #119049
    Show saved query name in breadcrumbs by @constantinius in #118988
    Add conversation transcript redesign by @obostjancic in #118898
    Add redesigned span detail panel by @priscilawebdev in #118894
    Add saved query support for AI conversations by @constantinius in #118727
    Show AI span timeline in trace drawer behind flag by @priscilawebdev in #118892
    Redesign conversation timeline view by @priscilawebdev in #118821
    Move project and copy ID into detail breadcrumbs by @priscilawebdev in #118811
    Add input as a default table column by @priscilawebdev in #118815
    Make thinking blocks searchable and copyable by @obostjancic in #118630
    Add tool call breakdown hover card by @priscilawebdev in #118554
    Add editable, persisted table columns by @priscilawebdev in #118445
    Move LLM Calls column next to Tool Calls by @priscilawebdev in #118433
    Add redesigned conversations table by @priscilawebdev in #118428
    Add conversations-redesign feature flag by @priscilawebdev in #118335
    Add missing input/output alert by @obostjancic in #117680
    Dashboards
    Add ordering changes to starred dashboards ordering by @adrianviquez in #119675
    Chunk heat map fetches by @gggritso in #119584
    Add Mobile Vitals "About this page" widget by @buenaflor in #116366
    Add ability to sync prebuilt favorited dashboards by @adrianviquez in #119575
    Add feature flag for starred dashboards by @adrianviquez in #119559
    Put in backend validation for heat map request fields by @nikkikapadia in #119145
    Disable non-distribution metrics for heat map widgets by @gggritso in #118779
    Improve the heat map widget tooltip by @gggritso in #118706
    Improve heat map axis tick placement by @gggritso in #118412
    Improve heat map color scaling by @gggritso in #118326
    Enable heat map cross-navigation by @gggritso in #118108
    Re-add Heat Map widget with heat-map-only config validation by @gggritso in #118199
    Data Export
    Pass query Filter to EAP's EndpointExportTraceItem by @manessaraj in #119410
    Serve small Discover and Explore exports synchronously by @JoshuaKGoldberg in #118148
    Improve observability for failure emails by @sentry in #116917
    Difs
    Redirect to Objectstore for Objectstore-backed DIF downloads by @lcian in #119392
    Set filename metadata on Objectstore-backed DIFs by @lcian in #119308
    Add capability to write new difs to Objectstore by @lcian in #117502
    Add capability to read difs from Objectstore by @lcian in #117501
    Dynamic Sampling
    Replace MOD-based org bucketing with CursoredScheduler by @constantinius in #118920
    Match legacy 100% handling in per-org pipeline by @shellmayr in #118644
    Add smallest-transaction factor bucket metric by @shellmayr in #118463
    Add eap count sample debug metric by @constantinius in #118437
    Add generic metrics volume to sliding window comparison by @constantinius in #118224
    Emit last-item age debug metric for project balancing by @shellmayr in #118130
    Record EAP and outcomes volume in sliding-window comparison by @shellmayr in #118013
    Compare EAP vs outcomes org sliding-window rate by @shellmayr in #117908
    Add per-project sample rate override for custom DS by @shellmayr in #117796
    Eap
    Surface a context brief for the project attribute by @DominikB2014 in #119113
    Add OTel GenAI token usage attributes by @constantinius in #117300
    Add failure_count_if formula for spans by @vgrozdanic in #118349
    Explore
    Allow pinned range bounds on heat map endpoint by @gggritso in #119414
    Validate explore column editor fields by @nsdeschenes in #118377
    Added data export modal to Discover and Traces by @JoshuaKGoldberg in #117949
    Surface and apply Seer's cross-event queries by @manessaraj in #118685
    Add drag-to-zoom for metrics heat maps in Explore by @gggritso in #118945
    Show agent filter in saved queries list view by @constantinius in #118986
    Add warning message for low sampled data by @adrianviquez in #118423
    Add ai_conversations dataset to ExploreSavedQuery by @constantinius in #118725
    Increase resolution of heat map widgets by @gggritso in #118748
    Forbid selecting a heat map for non-distribution metrics by @gggritso in #118661
    Register gen_ai conversation and operation attributes as search keys by @obostjancic in #118542
    Unfurl Explore Heat Maps by @nikkikapadia in #117943
    Consistent chart expand/collapse for Logs and Traces by @JoshuaKGoldberg in #118174
    Validate spans search attributes by @nsdeschenes in #118015
    Add search suggestions to trace logs view by @JoshuaKGoldberg in #118153
    Add Chartcuterie config for Explore heat maps by @gggritso in #118253
    Add table to store metric context by @DominikB2014 in #117933
    Add sentry conventions context to trace item attributes by @DominikB2014 in #117913
    Add table to store attribute and attribute context by @DominikB2014 in #117930
    Add flagged schema hints removal to conversations by @JoshuaKGoldberg in #117715
    Features
    Register organizations:ui-migration-breadcrumbs flag by @Jesse-Box in #119211
    Add data-browsing-attribute-context flag by @DominikB2014 in #117839
    Register organizations:am3-tier permanent feature flag by @chromy in #117805
    Gal
    Add idempotency key to publish functions by @thetruecpaul in #119534
    Add project-level backfill task for Activity to GroupActionLog by @yuvmen in #119164
    Add reset_and_backfill task for group action log by @yuvmen in #119355
    Add bulk-publish function by @thetruecpaul in #119326
    Add single-group backfill task by @yuvmen in #119248
    Add Activity-to-GroupAction translator by @thetruecpaul in #117721
    Gale
    Schedule processing task on invalidation by @ceorourke in #119166
    Invalidate derived data on merge by @ceorourke in #118378
    Gsadmin
    Drop Unmatched stat card from invoice-comparison summary by @armcknight in #118060
    Rework invoice-comparison summary + link receipt cells by @armcknight in #117970
    Icons
    Add bar antenna, sun, and pull request draft icons by @Jesse-Box in #118995
    Add InProgress, InReview, and Resolved status icons by @malwilley in #117697
    Inbound Filters
    Add custom inbound filter detail endpoint by @shellmayr in #118726
    Add custom inbound filters list/create endpoint by @shellmayr in #118142
    Add custom inbound filter audit log event by @shellmayr in #118141
    Add model for new inbound filters v2 by @shellmayr in #116666
    Add v2 page skeleton by @shellmayr in #116665
    Integrations
    Type referrer on integration analytics events by @alexsohn1126 in #118746
    Track referrer on auto-opened install modal by @alexsohn1126 in #118740
    Send custom webhook_headers on SentryApp webhooks by @billyvg in #117090
    Add webhook_headers field to SentryApp API by @billyvg in #117089
    Add feature flag for custom webhook headers by @billyvg in #117917
    Customizable install modal title and description by @alexsohn1126 in #118286
    Auto-open install modal from query param by @alexsohn1126 in #118285
    Default sentry-app-schema-form-migration to enabled by @priscilawebdev in #118158
    Add MCP hint to the new integration type modal by @cvxluo in #117945
    Issue Details
    Add pull request closed activity type by @malwilley in #118591
    Add details tab to issue preview drawer by @malwilley in #118316
    Add action buttons to issue preview drawer by @malwilley in #118074
    Add activity feed to issue preview drawer by @malwilley in #118066
    Add issue preview drawer with header content by @malwilley in #117961
    Issue Progress
    Add frontend rendering for new PR lifecycle activities by @malwilley in #119659
    Update progress on new PR lifecycle actions by @malwilley in #119582
    Update action log progress logic to support new logic by @malwilley in #119329
    Default awaiting input page to progress sort by @malwilley in #118069
    Add progress activity hovercard by @malwilley in #117858
    Issue Search
    Add regressed and newness boosts to recommended_v2 by @roggenkemper in #118159
    Add suspect-commit relevance to recommended_v2 by @roggenkemper in #118160
    Issues
    Add issue activity stories by @scttcper in #119686
    Redesign resolution banners by @scttcper in #119682
    Refine activity feed copy and wrapping by @scttcper in #119546
    Link commit activities to pull requests by @scttcper in #119373
    Link release resolution activities to commits by @scttcper in #119372
    Move merge/unmerge tasks to dedicated namespace by @yuvmen in #119233
    Add new-feature badge to the Recommended dropdown option by @roggenkemper in #119301
    Move Recommended sort to top of sort dropdown by @roggenkemper in #119302
    Serve recommended_v2 behind the recommended sort key by @roggenkemper in #119232
    Add new-feature badge for the Recommended sort default by @roggenkemper in #119136
    Add dedicated issues.merge task namespace by @yuvmen in #119161
    Log and count restricted large merges/unmerges by @yuvmen in #119157
    Add group links and activity section to issue preview drawer by @malwilley in #118590
    Add single line activity feed items by @scttcper in #118571
    Restrict merge/unmerge for large groups by @yuvmen in #118615
    Add merge task killswitch by @cvxluo in #118611
    Split recommended-sort default flag, add experimental sort option by @roggenkemper in #118471
    Use stored PR status for linked PRs by @scttcper in #118405
    Add attribution to pull-requests by @scttcper in #118416
    Show linked PR attribution avatars by @scttcper in #118417
    Add recommended-sort default and experimental flags by @roggenkemper in #118470
    Add recommended sort with localStorage persistence by @roggenkemper in #116320
    Record auto-resolve as a system action in the action log by @yuvmen in #117856
    Add Progress sort option to the issue stream by @roggenkemper in #117771
    Track linked pull request clicks by @scttcper in #117770
    Logs
    Validate selected table columns by @nsdeschenes in #118634
    Add logging wrapper by @lobsterkatie in #119276
    Validate logs search query fields by @nsdeschenes in #118350
    Onboarding
    Explain the disabled Create CTA in the SCM wizard by @jaydgoss in #117342
    Show all SCM project-creation steps at once by @jaydgoss in #117553
    Ourlogs
    Add specialized exports for aggregates by @JoshuaKGoldberg in #118693
    Show pinned logs in sort order by @JoshuaKGoldberg in #118450
    Prefer message template for cell action filters if available by @JoshuaKGoldberg in #118651
    Clarify export form columns and format by @JoshuaKGoldberg in #118196
    Pr Iteration
    Comment when @sentry iteration hits an ineligible PR by @joseph-sentry in #119519
    Add nudge for updating github app permissisons by @joseph-sentry in #119111
    Add github app permission nudge to autofix drawer by @joseph-sentry in #119059
    Pr Iteration
    Fold PR review-comment anchor into Autofix prompt by @alexsohn1126 in #119334
    React to inline PR review comments via SCM platform by @alexsohn1126 in #119416
    Pr Metrics
    Close SENTRY_APP attribution gaps for autofix PRs by @giovanni-guidini in #119628
    Add per-PR activity document model and reducer (dark) by @vaind in #119570
    Emit judge-ineligible PRs via a fallback verdict by @giovanni-guidini in #119385
    Handle synchronous delegated-agent-match response by @giovanni-guidini in #119380
    Derive ci_failing_at_close on the no-judge close path by @giovanni-guidini in #119504
    Include autofix referrers in scm.pr.closed by @giovanni-guidini in #119492
    Add human-involvement signals to scm.pr.closed by @giovanni-guidini in #119217
    Defer scm.pr.closed emission behind a cooldown by @giovanni-guidini in #119198
    Record sentry-app PR attribution on close by @giovanni-guidini in #119106
    Instrument the delegated-agent attribution funnel by @giovanni-guidini in #119036
    Derive participants_count and reviews_count by @vaind in #118956
    Constrain PullRequestActivity table size and fix activity tracking gates by @giovanni-guidini in #118734
    Add typed signal_details to SENTRY_APP attribution by @giovanni-guidini in #118738
    Call Seer delegated-agent match RPC from webhook by @giovanni-guidini in #117911
    Capture review dismissals and merge-intent signals by @vaind in #118188
    Capture check_suite/check_run CI status for the judge by @vaind in #118183
    Emit conversation-judge analysis to BigQuery by @vaind in #118028
    Restrict judge and activity capture to Seer-eligible orgs by @giovanni-guidini in #117899
    Include GroupLinks from PR activity commits in resolved group IDs by @giovanni-guidini in #117524
    Preprod
    Add preprod-size-analysis-pr-comments feature flag by @mtopo27 in #119409
    Show install groups on the install page by @mtopo27 in #119312
    Prefer build_number_raw for display by @trevor-e in #119267
    Add install_groups to build-details distribution info by @mtopo27 in #119303
    Store raw build number for display purposes by @trevor-e in #119262
    Add Releases breadcrumb to install page by @mtopo27 in #119140
    Render web-UI snapshots on their canvas_theme by @jamieQ in #118903
    Add adjustable opacity to the snapshot diff overlay by @mtopo27 in #118875
    Support per-image canvas_theme in snapshot API by @jamieQ in #118749
    Sync snapshot sidebar search to URL by @mtopo27 in #118834
    Add URL route resolving to latest base snapshot by @mtopo27 in #118658
    Show existing size comparisons on the compare page by @jamieQ in #118674
    Add endpoint listing existing size comparisons for a build by @jamieQ in #118526
    Re-emit preprod.snapshots.diff.duration_s metric by @NicoHinderling in #118603
    Add org context to snapshot pipeline logs by @NicoHinderling in #118602
    Roll out TaskProducer for preprod tasks by @bmckerry in #118583
    Record client attribution on snapshot archive download by @mtopo27 in #118491
    Record client attribution on snapshot read endpoints by @mtopo27 in #118387
    Record approval analytics for web UI and auto approvals with source by @mtopo27 in #118307
    Add tracing spans to snapshot details GET handler by @NicoHinderling in #118177
    Add Download CSV button to build distribution view by @jamieQ in #117927
    Support zstd-compressed snapshot manifest uploads by @NicoHinderling in #117884
    Use one relevant-filtered link per snapshot row by @mtopo27 in #117863
    Add build distribution CSV export endpoint by @jamieQ in #117539
    Surface errored snapshot images in web viewer by @NicoHinderling in #117599
    Profiling
    Support sample v2 profiles for Android by @markushi in #118849
    Add attachment download control to the flamegraph toolbar by @markushi in #118071
    Add support for profiling chunk attachments by @markushi in #118029
    Project Creation
    Track returning to the detected platform by @jaydgoss in #118420
    Notification options in the SCM alert section by @jaydgoss in #118394
    Make alert frequency collapsible via ScmCollapsibleSection by @jaydgoss in #117849
    Add reusable collapsible section for create flow by @jaydgoss in #117847
    Add integration selector to repo connect step by @jaydgoss in #117731
    Relay
    Remove graduated feature flag by @jjbayer in #119711
    Add a metric to verify that the billing metrics consumer is not producing outcomes. by @klochek in #119304
    Warn on Client Keys pages when a Relay DSN endpoint override is set by @ArthurKnaus in #119098
    Add option to configure attachment inline limit by @tobias-wilfert in #119034
    Add DSN endpoint override input to org Relay settings by @ArthurKnaus in #118710
    Allow a custom Relay endpoint to override DSNs by @ArthurKnaus in #118707
    Expose feature flag for minidump with extra exceptions by @jjbayer in #118431
    Replays
    Support querying segment_names by @mjq in #119633
    Show mobile-specific network details setup instructions by @romtsn in #118544
    Port ingest-replay-recordings to a taskbroker task by @untitaker in #118645
    Scm
    Surface installation and repository ids on webhook events by @alexsohn1126 in #119629
    Add check_suite and pull_request_review to event stream by @joseph-sentry in #119419
    Scm Multi Platform Detection
    Conditional use of new multi dete… by @Abdkhan14 in #118500
    Removing parallel call of test endpoint in FE by @Abdkhan14 in #118501
    Registering flag by @Abdkhan14 in #118494
    Parallelizing repo and content reads by @Abdkhan14 in #118359
    Adding new metrics by @Abdkhan14 in #118099
    Implementing scoped matching by @Abdkhan14 in #117720
    Scraps
    Add prefer-stack-for-column-flex ESLint rule by @priscilawebdev in #119397
    Add JS container-query parity via useContainerBreakpoint by @TkDodo in #118912
    Add SplitPanel core component by @priscilawebdev in #118230
    Sdk
    Double-write dashboard tags to attributes by @Lms24 in #118841
    Double-write alert rule tags to attributes by @Lms24 in #118840
    Double-write remaining tags to attributes by @Lms24 in #118843
    Double-write profiling tags to attributes by @Lms24 in #118838
    Double-write performanceForSentry tag to attribute by @Lms24 in #118839
    Double-write explore spans tag to attribute by @Lms24 in #118842
    Double-write initializeSdk tags to attributes by @Lms24 in #118837
    Double-write bootstrap request tags to attributes by @Lms24 in #118836
    Migrate frontend to span streaming by @vgrozdanic in #116466
    Search
    Move Ask Seer action to filter menu footer by @nsdeschenes in #119656
    Render multi-select filter values as chips by @JoshuaKGoldberg in #118191
    Always show multi-select checkboxes in value dropdown by @JoshuaKGoldberg in #118024
    Add color indicators next to severity values in search by @JoshuaKGoldberg in #118569
    Track multi-select value toggles in dropdown by @JoshuaKGoldberg in #118027
    Add issue progress sort by @roggenkemper in #117707
    Seer
    Redesign the Sentry Workflows page shard and issue UI by @trevor-e in #119662
    Surface issue titles and PRs on night-shift triage results by @trevor-e in #119661
    Include low-value-span issues in night shift triage by @chromy in #119503
    Include five_whys reasoning in Slack autofix root cause u… by @Zylphrex in #119408
    Trigger autofix iteration from PR review comments by @alexsohn1126 in #119225
    Give each project its own night shift candidate quota by @trevor-e in #119265
    Scope night shift result dedupe to (run, kind, idempotency_key) by @trevor-e in #119141
    Markdown embed registry by @natemoo-re in #119159
    Record a night shift result row for every triage verdict by @trevor-e in #118976
    Block coding-agent handoff for non-GitHub projects in the table by @billyvg in #118588
    Add get_issue_ownership RPC to Seer tools by @hobzcalvin in #118802
    Detect GitLab bots in contributor seat tracking by @billyvg in #117762
    Add validate endpoint to the execute table query rpc by @wmak in #118953
    Restrict GitLab repos to Seer handoff in Autofix settings by @billyvg in #118493
    Allow custom questions on the org Seer runs endpoint by @chromy in #118929
    Mirror a SeerAgentRun for start_feature_run by @trevor-e in #118962
    Accept viewer context auth on the Seer RPC endpoint by @azulus in #118948
    Add referrer column to SeerRun by @trevor-e in #118931
    Add group filter to the org Seer runs search by @chromy in #118896
    Expose per-run one-shot outputs on the runs list via ?outputs by @chromy in #118827
    Summarize a run via the agent_question one-shot by @chromy in #118826
    Add organization Seer runs list endpoint by @chromy in #118732
    Add Seer one-shot client by @chromy in #118565
    Enable streaming animation by @natemoo-re in #118068
    Include SeerRun uuid in webhook and PR groups responses by @trevor-e in #118594
    Poll Seer Explorer by UUID by @trevor-e in #117780
    Write SeerRunPullRequest links for Seer-created PRs by @trevor-e in #118580
    Add get_organization_projects RPC method by @aliu39 in #118427
    Surface convention attribute context in built_in_fields by @DominikB2014 in #118567
    Add SeerRunPullRequest model linking runs to PRs by @trevor-e in #118572
    Persistent seer panel by @TkDodo in #117898
    Restrict night shift to an org's allowed project slugs by @trevor-e in #118411
    Send connected repos to night-shift triage by @trevor-e in #118407
    Skip night-shift projects that can't open a PR by @trevor-e in #118386
    Backfill night shift run shards from legacy seer_run by @trevor-e in #118154
    Shard night shift triage into per-chunk feature runs by @trevor-e in #118080
    Route night shift feature delivery through the outbox by @trevor-e in #118040
    Add validate_llm_proxy_key RPC endpoint by @sehr-m in #117885
    Run night shift every 12 hours by @chromy in #117929
    Add Sentry Workflows run history page by @jshchnz in #117820
    Add per-org night shift run-option overrides by @chromy in #117826
    Return sentry_run_id from runs list and dashboard generate by @trevor-e in #117808
    Return sentry_run_id from explorer chat GET by @trevor-e in #117778
    Register seer-explorer-persistent-sidebar feature flag by @TkDodo in #117791
    Register seer-explorer-thinking-summary feature flag by @natemoo-re in #117688
    Pass enable_tool_summary to agent_run_options by @natemoo-re in #117689
    Seer Activity
    Better communicate incompatible alerts by @leeandher in #119007
    Support webhooks for Sentry Apps by @leeandher in #118255
    Use a strategy for emailing issue owners by @leeandher in #118106
    Implement notification platform handlers for activity alerts by @leeandher in #117543
    Seer Billing
    Write integration hostname to organization contributors, attempt 2 by @srest2021 in #119589
    Add nullable hostname column to organization contributors by @srest2021 in #119430
    Write organization contributor provider by @srest2021 in #119274
    Add nullable provider column to OrganizationContributors model by @srest2021 in #119272
    Cut over seat assignment to OrganizationContributorAction by @srest2021 in #118763
    Add billable contributor action processor to GitHub and GitLab for dual-writing contributor actions by @srest2021 in #118205
    Add OrganizationContributorAction model for tracking billable PRs by @srest2021 in #118194
    Seer Explorer
    Add dismissible Slack reinstall nudge by @alexsohn1126 in #118684
    Dock auto sidebar right in landscape mobile by @TkDodo in #118563
    Seer Infra Telemetry
    Include non-dismissed available monitoring providers in explorer chat request by @srest2021 in #119357
    Add standalone Connectors settings page for monitoring providers by @shashjar in #118967
    Add success return URL to connect/reauth monitoring provider payloads by @srest2021 in #118702
    Pass a custom OAuth return URL to the identity pipeline by @srest2021 in #118704
    Add GCP support to McpIdentityProvider for MCP tool calls by @shashjar in #118695
    Reauthenticate monitoring provider in explorer by @srest2021 in #118592
    Add PUT reauthenticate to monitoring provider endpoint by @srest2021 in #118577
    Scope monitoring provider connections to organizations by @shashjar in #118181
    Add Datadog PAT connect flow to monitoring providers UI by @shashjar in #118382
    Add auth method field to monitoring provider connections RPC by @srest2021 in #118283
    Add OrganizationIdentity model for per-org monitoring provider connections by @shashjar in #118179
    Add get monitoring provider connections RPC by @srest2021 in #118210
    Wire up DatadogPatIdentityProvider to monitoring provider endpoints by @srest2021 in #118073
    Add a PAT-only DatadogIdentityProvider by @srest2021 in #118072
    Pass monitoring providers in explorer chat request by @srest2021 in #117768
    Add monitoring providers section to Seer Advanced Settings page by @shashjar in #117758
    Add monitoring provider refresh access token RPC by @srest2021 in #117472
    Implement monitoring provider connection API endpoints by @shashjar in #117854
    Auto create IdentityProvider for Datadog in IdentityPipeline by @srest2021 in #117705
    Store Datadog org id when building identity, to be used as IdentityProvider external id by @srest2021 in #117491
    Sentry Apps
    Append text summary to claude routine webhooks by @cvxluo in #119448
    Send custom headers on all external requests by @cvxluo in #119530
    Per-event webhook subscription checkboxes by @cvxluo in #119324
    Expose exact event subscriptions as webhookEvents by @cvxluo in #118940
    Accept granular webhook events on the API by @cvxluo in #118932
    Match webhook subscriptions per-event by @cvxluo in #118928
    Allow anthropic-version and anthropic-beta webhook headers by @billyvg in #118582
    Forward integrator error status and reason from external requests by @priscilawebdev in #116956
    Slack
    Log channel id on successful message sends by @alexsohn1126 in #119636
    Add referrer to issue alert reinstall nudge link by @alexsohn1126 in #118745
    Nudge per-workspace to update outdated Slack app installs by @alexsohn1126 in #118587
    Also emit alert nudge metrics to the Sentry metrics product by @alexsohn1126 in #118596
    Add metrics for slack reinstall nudge outcomes by @alexsohn1126 in #118564
    Nudge users to reinstall the Slack app on issue alerts by @alexsohn1126 in #118288
    Spans
    Increase process_segment_task deadline to 65s by @lvthanh03 in #119117
    Add option to rollout process_segment task by @lvthanh03 in #119003
    Create a task for process segment by @lvthanh03 in #118950
    Set conversation_id and session_id on TraceItem by @phacops in #118419
    Spans Migration
    Discover transactions to spans saved queries by @nikkikapadia in #118681
    Transactions to spans dashboard widget self hosted migration by @nikkikapadia in #104803
    Self-hosted migration for transaction alerts by @nikkikapadia in #111348
    Taskbroker
    Remove Taskworker Topics from Topic Enum by @george-sentry in #119150
    Add taskworker-process-segments to Topic enum by @lvthanh03 in #119061
    Add taskworker-launchpad-push to Topic enum by @evanh in #118161
    Taskworker
    Make merge/unmerge self-chaining idempotent by @yuvmen in #118966
    Make the router default topic configurable by @enochtangg in #119238
    Add --min-concurrency Flag to Taskworker by @george-sentry in #118850
    Add --prometheus-port to run taskworker by @enochtangg in #118780
    Trace
    Add operation-type icons to AI span details title by @obostjancic in #119093
    Add compressed timeline mode by @nsdeschenes in #116686
    Trace Items
    Add endpoint to create/update metric context by @DominikB2014 in #119431
    Add endpoint to create/update attribute context by @DominikB2014 in #118498
    Serve context for Sentry-defined attributes by @DominikB2014 in #118759
    Add context to Sentry-defined attributes by @DominikB2014 in #118739
    Match attribute context by convention, not source by @DominikB2014 in #118509
    Ungate sentry-conventions attribute context by @DominikB2014 in #118362
    Always return context key when expand=context by @DominikB2014 in #118157
    Traces
    Use new transcript in AI trace tabs by @obostjancic in #119039
    Use redesigned AI span detail panel across trace views by @priscilawebdev in #118987
    Show value counts in item search dropdown by @JoshuaKGoldberg in #117426
    Utils
    Add mismatch logging options to SafeRolloutComparator by @lobsterkatie in #119665
    Add exact match callback option to rollout comparator by @lobsterkatie in #118965
    Add callsite-specific sample rates to rollout comparator by @lobsterkatie in #117629
    Weekly Report
    Add batching for all + removing FF by @amy-chen23 in #119679
    Total Issues chart rendering by @amy-chen23 in #119229
    Update notification page for project customization by @amy-chen23 in #118934
    Add API endpoints and report filtering by @amy-chen23 in #118696
    Add WeeklyReportProjectExclusion model by @amy-chen23 in #118522
    Remove "Most Frequent Transactions" section by @amy-chen23 in #118396
    Add "Past Resolved Issues" by @amy-chen23 in #117751
    Weekly Reports
    Combine error and performance issues into top issues by @amy-chen23 in #119677
    Add data layer for Total Issues graph by @amy-chen23 in #119154
    Other
    (action log) Use derived data for search and sort by @ceorourke in #119423
    (activity) Emit group activity when a linked PR is closed by @malwilley in #118524
    (ai-spans) Adjust JSON expansion defaults by @constantinius in #119505
    (alerts api) Double frequency of deprecation brownouts by @kcons in #119536
    (api-docs) Publish group integration details endpoint by @cvxluo in #118698
    (assisted-query) Support org-level flags in the assisted query agent by patching via Sentry Request by @manessaraj in #118744
    (billing-platform) Register getsentry over-usage shadow referrer by @armenzg in #118677
    (broadcasts) Add sdk_update broadcast category by @sfanahata in #117476
    (claude-code) Persist vault per GitHub installation by @sehr-m in #118271
    (cmdk) Route "api key" search to auth token settings pages by @JoshFerge in #117693
    (core) Add xs size variant to Radio by @jaydgoss in #118374
    (dev) Add CMD+K command to toggle analytics debug mode on/off by @ryan953 in #118290
    (developer-settings) Add webhook headers field to custom integrations by @billyvg in #117091
    (discover) Errors product relocation info banner by @nikkikapadia in #119306
    (ecosystem) Add activity for created external issues by @scttcper in #117428
    (events) Add more information to the id errors by @wmak in #118485
    (frontend) Add route-map generator by @azulus in #118195
    (github) Handle new_permissions_accepted installation webhook by @joseph-sentry in #119006
    (gitlab) Track merge request lifecycle state on PullRequest by @malwilley in #118604
    (grouping) Add more context to Seer exception-type mismatch log by @yuvmen in #118391
    (ingest-metrics) Ensure billing metrics consumer avoids outcome double-billing by @klochek in #117186
    (insights) Add analytics events for AI trace interactions by @obostjancic in #117906
    (issue-list) Add issue preview drawer for awaiting input page by @malwilley in #117934
    (issue-preview) Add autofix tab to issue preview drawer by @malwilley in #118292
    (issue-workflow) Action log derived data by @kcons in #117238
    (issueList) Add ProgressState enum and progress column icons by @malwilley in #117736
    (llm-proxy) Add internal endpoint for JWT key generation by @sehr-m in #119138
    (merge) Separate start task names for merge and unmerge chains by @yuvmen in #119641
    (metrics) Validate metrics search filters by @nsdeschenes in #118355
    (migration) Add webhook_headers field to SentryApp by @billyvg in #117088
    (nav) Open starred issue views in a new tab on modifier-click by @cvxluo in #117879
    (notif-platform) Support in-paragraph link blocks by @leeandher in #118280
    (onboarding-multi-platform-detection) Updating UI for multiple detected platforms by @Abdkhan14 in #118930
    (outcomes) Begin porting track_outcomes to TaskProducer by @bmckerry in #118487
    (platform) Add service worker proxy by @cmanallen in #117814
    (processing_errors) Roll out TaskProducer to EAP producer by @bmckerry in #118585
    (producer) Start rolling out rdkafka poll metrics by @bmckerry in #119565
    (quotas) Add value-based equality and ordering to QuotaConfig by @armenzg in #118861
    (releases) Improve release bubble interactions by @scttcper in #119440
    (rollout) Allow overriding rollout comparison metric sample rate by @lobsterkatie in #118474
    (scm-onboarding-multi-platform-detection) Removing test endpoint… by @Abdkhan14 in #118621
    (sdk-crashes) Add is_anr_or_apphang tag to sdk crash monitoring metrics by @romtsn in #118983
    (search-query-builder) Convert to filter key on comparison ops by @nsdeschenes in #117207
    (span buffer) Add span-first slow DB span detector by @lobsterkatie in #117551
    (startup) Add SENTRY_TRACE_STARTUP instrumentation for initialize_app by @untitaker in #118444
    (taskworkers) Add option to set skip_await_futures by @bmckerry in #118462
    (text) Allow responsive display prop, exclusive with ellipsis by @TkDodo in #118908
    (tracemetrics) Add standard metric attributes to query builder by @nsdeschenes in #114708
    (unmerge) Add killswitch by @cvxluo in #118595
    (upload) GA upload endpoint by @jjbayer in #119050
    (uptime) Roll out TaskProducer to EAP producer by @bmckerry in #118584
    (validate) Use the filter mode by @wmak in #118401
    (validator) Add query validation by @wmak in #117781
    (viewer-context) Add project_id to ViewerContext by @sehr-m in #119663
    (web) Add WebMCP/agent discovery endpoints, robots.txt update, a… by @elijames-codecov in #117830
    Add organizations-explore-modal-export flag by @JoshuaKGoldberg in #119216
    Wire up examples of service-worker "requests" that return a result from the worker by @ryan953 in #119088
    Add highlight ability to compact select component by @adrianviquez in #118705
    Container queries by @TkDodo in #118724
    Add github webhook handling for PR pr_iteration_webhook by @joseph-sentry in #118050
    Support 'acks' kafka producer config by @untitaker in #118379
    Update autofix PR description footer by @joseph-sentry in #118037
    Seer drawer pictureInPicture by @TkDodo in #116670
    Options read hook by @joshuarli in #117547
    Bug Fixes 🐛
    Aci
    Update the resolution API to use create_group_activity by @saponifi3d in #118854
    Add more debug information to the metric, so we can filter by detector type by @saponifi3d in #118806
    AlertRuleTriggerAction.DoesNotExist fix by @saponifi3d in #118383
    Error when updating non-Anomaly Detection to Anomaly Detection by @saponifi3d in #117947
    Action Log
    Make progress gate project-level by @kcons in #119569
    Move publish API to a dependency-light module to avoid import cycles by @kcons in #119266
    Serialization improvements by @kcons in #119076
    Fail consistently on schema violation in process_group_action_log_event by @kcons in #118974
    Only send updates for columns that change by @kcons in #118048
    Change publish interface to require a Project; use it in feature gate by @kcons in #117776
    Ai Conversations
    Use uniform 16px padding on conversation detail page by @priscilawebdev in #118722
    Widen AI conversations filter to include tool spans by @obostjancic in #118553
    Alerts
    Scope lookup to project in path by @ceorourke in #118961
    Populate metric_alert webhook actions for native monitors by @Christinarlong in #118388
    Return fallthrough type by @ceorourke in #118404
    Stronger typing around human_desc by @kcons in #117883
    Auth
    Do not update email in UserDetailsEndpoint by @nora-shap in #119253
    Avoid false no-org access on login by @JoshFerge in #118666
    Autofix
    Don't treat queued PR feedback as iterating by @joseph-sentry in #119624
    Add word boundary check for @sentry mention parsing by @joseph-sentry in #119543
    Consume queued PR iteration feedback after push by @joseph-sentry in #118676
    Pin repo branch/sha at root cause by @Zylphrex in #119132
    Fix Overlapping Feedback Attribution with Feedback by @alexsohn1126 in #119086
    Fix autofix drawer UI bugs by @joseph-sentry in #118538
    Avatars
    Avoid orphaning avatar file handle on resized requests by @shellmayr in #117973
    Close avatar file in get_cached_photo by @shellmayr in #117903
    Conversations
    Show "no cost recorded" instead of a misleading amount by @ArthurKnaus in #119617
    Remember last selected project by @ArthurKnaus in #119620
    Fix blank detail view on mobile breakpoint by @ArthurKnaus in #119625
    Show connected issues in the span detail panel by @ArthurKnaus in #119601
    Fetch more conversation list items by @obostjancic in #119391
    Sort tools in the tool calls breakdown tooltip by @ArthurKnaus in #119386
    Stop 'Add a Column' from appending Conv. ID forever by @priscilawebdev in #119379
    Stop Last Message time bumping on row hover by @matejminar in #119314
    Show loading instead of stale rows on refetch by @priscilawebdev in #119298
    Remove 800px cap from tool and thinking blocks by @ArthurKnaus in #119283
    Don't auto-select a span in the timeline view by @ArthurKnaus in #119223
    Fix contrast in the transcript loading skeleton by @ArthurKnaus in #119222
    Align transcript turn metadata by @obostjancic in #119205
    Keep tool calls tooltip open when hovering into the card by @priscilawebdev in #119213
    Widen tool calls tooltip trigger area by @priscilawebdev in #119209
    Show skeleton for span details to avoid layout shift by @priscilawebdev in #119200
    Don't auto-select a span on the transcript view by @ArthurKnaus in #119206
    Sort agent selector options alphabetically by @priscilawebdev in #119202
    Fix size hierarchy in AI span detail card by @priscilawebdev in #119197
    Redesign the timeline loading skeleton by @priscilawebdev in #119103
    Reset agent selection when switching projects by @priscilawebdev in #119099
    Keep repeated user messages in transcript by @obostjancic in #119041
    Stop table rows growing in Safari on back-nav by @priscilawebdev in #119100
    Show 0 B for tool size when output bytes are unavailable by @obostjancic in #119095
    Make the agent selector wrap on narrow viewports by @priscilawebdev in #119096
    Scroll the whole span detail card, not just the tab content by @priscilawebdev in #119089
    Anchor summary heading tooltip to the title text by @priscilawebdev in #119091
    Keep span detail on the right at narrower widths by @priscilawebdev in #119048
    Show errors summary link in red to match table by @priscilawebdev in #119047
    Remove native tooltips on tool-calls in table by @priscilawebdev in #119045
    Increase span detail metadata font-size to 14px by @priscilawebdev in #119044
    Preserve agent filter on saved query navigation by @constantinius in #119040
    Fix AI span detail panel overflow on narrow screens by @priscilawebdev in #119035
    Tag entry-point links for referrer attribution by @ale-cota in #118816
    Preserve list filters when using detail breadcrumb by @obostjancic in #118631
    Separate AI span timeline rows on hover by @priscilawebdev in #118893
    Fix analytics event tracking by @obostjancic in #118629
    Treat "None" user fields as missing by @priscilawebdev in #118549
    Show single (no value) for redacted multi-part messages by @obostjancic in #118453
    Dashboards
    Unify timeseries loading and empty state by @nikkikapadia in #119335
    Reset Heat Map aggregate to count on metric fallback by @gggritso in #119269
    Fetch attributes while typing in categorical bar X-axis by @gggritso in #119084
    Explain why Heat Map visualization is unavailable by @gggritso in #119264
    Carry Heat Map visualize when saving from Explore by @gggritso in #119255
    Show correct type badge for categorical bar X-axis attributes by @gggritso in #119071
    Fetch attributes while typing in the widget builder field dropdown by @DominikB2014 in #118664
    Align time series X axis ticks to user timezone by @gggritso in #109881
    Stop chart drag-to-zoom selecting the wrong time range by @gggritso in #119013
    Preserve spans table timestamp column in Explore by @mjq in #118949
    Preserve page filters when opening an issue from a widget by @DominikB2014 in #118683
    Consider error for trace.status errors by @mjq in #118497
    Keep legend breakdown when group by changes by @gggritso in #118300
    Keep saved column in widget builder dropdown when missing from attributes by @DominikB2014 in #118252
    Deps
    Bump js-beautify to 2.x for minimatch ReDoS (GHSA-3ppc-4f35-3m26) by @oioki in #118989
    Bump @rsdoctor/rspack-plugin and dedupe ws to 8.21.0 (GHSA-96hv-2xvq-fx4p) by @oioki in #118996
    Bump api-docs fast-uri to 3.1.3 for host confusion (GHSA-v39h-62p7-jpjc) by @oioki in #118999
    Bump fast-uri to 3.1.3 for path traversal (GHSA-q3j6-qgpj-74h6) by @oioki in #118998
    Bump api-docs picomatch to 2.3.2 for ReDoS (GHSA-c2c7-rcm5-vvqj) by @oioki in #118997
    Raise api-docs form-data override floor to 4.0.6 (GHSA-hmw2-7cc7-3qxx) by @oioki in #118994
    Bump defu to 6.1.7 for prototype pollution (GHSA-737v-mqg7-c878) by @oioki in #118993
    Dedupe minimatch 3.1.2 to 3.1.5 for ReDoS (GHSA-7r86-cg39-jmmj) by @oioki in #118990
    Bump @figma/code-connect to pull form-data 4.0.6 by @oioki in #118902
    Bump idna to 3.18 for GHSA-65pc-fj4g-8rjx by @oioki in #118895
    Bump cryptography to 49.0.0 for GHSA-537c-gmf6-5ccf by @oioki in #118868
    Discover
    Convert ColumnEditCollection to functional component by @sentry in #118796
    Coerce issue.id tag value to string for transactions by @phacops in #118222
    Dynamic Sampling
    Restore 100% project fallback in per-org pipeline by @shellmayr in #118639
    Rename metric tags to avoid _id suffix stripping by @constantinius in #117783
    Eap
    400 instead of 500 for InvalidSearchQuery in trace-item attribute endpoints by @kcons in #118700
    Skip validation for empty-string sentinel in has: queries by @kcons in #118703
    Explore
    Lock span id column in table editor by @nsdeschenes in #119727
    Allow numeric attrs for drilldown by @narsaynorath in #119724
    Preserve compact span count rendering by @nsdeschenes in #119548
    Dedupe logs/traces history via a shared location provider by @JoshuaKGoldberg in #118952
    Prettify validated aggregate labels by @nsdeschenes in #119540
    Respect span field definitions in tables by @nsdeschenes in #119522
    Stop Heat Map drag-to-zoom writing duplicate history entries by @gggritso in #119336
    Guard against null series entries in ECharts by @sentry in #119131
    Remove Seer project filter from search bar by @isaacwang-sentry in #118960
    Validate spans group by selections by @nsdeschenes in #118452
    Import sentry_sdk.ai submodule in conversation onboarding by @vgrozdanic in #119295
    Report aggregate sort in Seer on-page context by @shruthilayaj in #119219
    Reduce time window in trace item details by @k-fish in #118566
    Render square Heat Map cells in unfurled charts by @gggritso in #119069
    Allow agent filter in saved query serializer by @constantinius in #118982
    Keep timestamp column when opening logs widget by @JoshuaKGoldberg in #118847
    Allow max/min aggregations on timestamp column by @vgrozdanic in #118448
    Cap heat map unfurl grid to a fixed-density size by @gggritso in #118598
    Prevent grouping by the same attribute twice by @JoshuaKGoldberg in #118468
    Wait for org range before spans filters by @nsdeschenes in #118346
    Make missing description rendering consistent by @mjq in #118243
    Clarify logs export modal email copy by @JoshuaKGoldberg in #118151
    Include AI usage token fields in visualize options by @the21st in #117901
    Include AI cost fields in visualize options by @nsdeschenes in #117817
    Externalissues
    Migrate ticketRuleModal API request to async/await by @sentry in #118268
    Migrate api.request to api.requestPromise in useIntegrationExternalIssues by @sentry in #117755
    Feedback
    Don't orphan feedback payloads in the processing store by @evanh in #119642
    Show inline integrations on feedback details by @scttcper in #117772
    Flags
    Loosen statsig webhook deserialization by @cmanallen in #118858
    Validate webhook signature before organization lookup by @skaasten in #118649
    Gal
    Avoid derived-data processing on idempotency conflict by @thetruecpaul in #119579
    Allow null values in SetEscalatingAction expired_snooze by @yuvmen in #119639
    Github
    Ungate inbound issue status sync from removed feature flag by @souredoutlook in #119079
    Don't set external_id on @localhost CommitAuthors by @scttcper in #117574
    Gsadmin
    Render the doc integration logo preview correctly by @cvxluo in #119171
    Add CTA to reset stranded partner billing by @dashed in #118464
    Integrations
    Show admin tooltip on disabled Update Now button by @joseph-sentry in #119657
    Re-register github project management feature flag by @cvxluo in #118575
    Show disabled configuration count in integration row by @souredoutlook in #118469
    Issue Details
    Remove misleading author from PR closed activity by @malwilley in #118762
    Avoid leaking issue filters into trace links by @nsdeschenes in #118655
    Provide GroupIdProvider for EventGraphWidget in releases drawer by @malwilley in #118197
    Issue Progress
    Keep progress column visible at smaller viewport widths by @malwilley in #119146
    Include projects in progress fetch by @malwilley in #118804
    Treat manual unresolve as a progress reset by @malwilley in #117828
    Issues
    Center runtime highlight text by @scttcper in #119692
    Scope commit resolution to release projects by @scttcper in #119697
    Show activity after workflow changes by @scttcper in #119432
    Show deleted team names in activity by @scttcper in #119418
    Align activity detail text with the title and timestamp by @scttcper in #118979
    Restrict low-value span estimated cost to owners and managers by @ArthurKnaus in #119387
    Hide trace section when trace_id is synthetic by @malwilley in #119241
    Contain activity sidebar names by @scttcper in #119163
    Show logs under hydration error and rage-click replays by @JoshuaKGoldberg in #118656
    Re-parent children when filtering low-value spans by @ArthurKnaus in #118813
    Polish new issue activity feed rows by @scttcper in #118890
    Add activity actor tooltips by @scttcper in #118881
    Make activity drawer easier to open by @scttcper in #118874
    Use linked PR authors in sidebar by @scttcper in #118510
    Truncate long release names by @scttcper in #118325
    Stop pr grouplink removal from reopening issues by @scttcper in #118330
    Tighten multi-select form state (jira) by @scttcper in #118209
    Tweak linked pull request rows by @scttcper in #118043
    Return all matched short ids instead of redirecting to one by @cvxluo in #118032
    Hide linked issue title prefixes by @scttcper in #117891
    Resolve PR activity users by external actor by @scttcper in #117829
    Simplify linked issue rows by @scttcper in #117841
    Use AI_DETECTED category for code health group type by @roggenkemper in #117845
    Clean up tags drawer header by @scttcper in #117777
    Move external issue tabs into modal header by @scttcper in #117706
    Use short timestamps by @scttcper in #117592
    Jira
    Prevent algorithm-confusion attack by @ceorourke in #118694
    Migrate issueActions.tsx to requestPromise by @sentry in #117726
    Logs
    Set correct groupBy for Open in Explore with tables by @narsaynorath in

    Original source
  • Jun 15, 2026
    • Date parsed from source:
      Jun 15, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    26.6.0

    Sentry adds broader project-slug support, expands Seer and Autofix workflows, and improves issues, search, replays, dashboards, and snapshots with new navigation, attribution, and performance updates across the platform.

    New Features ✨
    Api
    Accept project slugs in product integration endpoints by @gricha in #117495
    Accept project slugs in replay endpoints by @gricha in #117494
    Accept project slugs in release endpoints by @gricha in #117493
    Accept project slugs in organization filters by @gricha in #117446
    Add project ID-or-slug parser by @gricha in #117445
    Backfill Serializer[T] across 61 serializers by @azulus in #116816
    Tighten Response[T] on 14 endpoints (typed cohort) by @azulus in #116800
    Make organization tags endpoint public with OpenAPI spec by @MathurAditya724 in #116751
    Migrate Tag(Key|Value)Serializer to Serializer[T] by @azulus in #116743
    Tighten Response on 3 endpoints + add as_validation_errors helper by @azulus in #116736
    Tighten Response annotation on 6 endpoints (no-cast subset) by @azulus in #116717
    Attributes
    Roll out TaskProducer to attributes_snapshot_producer by @bmckerry in #117360
    Remove internal attributes on /trace-item/attributes/ by @nsdeschenes in #116372
    This adds count to string attribute values by @wmak in #116811
    Autofix
    Handle PR iteration completion and introspection by @joseph-sentry in #117217
    Trigger PR iteration runs and surface PR links in prompts by @joseph-sentry in #117216
    Add PR iteration variants to enums and type registrations by @joseph-sentry in #117215
    Has:issue.seer_last_run only show last 30 days by @Zylphrex in #116924
    Explain when code changes step makes no edits by @chromy in #116957
    Cells
    Require explicit locality configuration by @lynnagara in #117462
    Route org listing through control silo if option is set by @lynnagara in #117116
    Add option to route org listing through control silo by @lynnagara in #117115
    Wire devservices ingest path for cell-routing mode by @lynnagara in #116714
    Cmdk
    Route NEXT_PUBLIC_SENTRY_DSN search to Client Keys (DSN) by @JoshFerge in #117677
    Suggest auth token destinations by @JoshFerge in #117106
    Surface Client Keys (DSN) when searching "SENTRY_DSN" by @JoshFerge in #116883
    Events
    Wire up TagDerivers behind feature flag by @Christinarlong in #116989
    Add a log for query errors by @wmak in #116696
    Explore
    Heat maps fixed buckets by @nikkikapadia in #117083
    Apply Seer-suggested interval to Explore charts by @DominikB2014 in #117196
    Check attribute key and name for hidden values by @nsdeschenes in #117304
    Surface and apply Seer's expanded project scope by @manessaraj in #117122
    Use heatmap icon for Heat Map chart type by @gggritso in #117180
    View random trace from aggregates table by @nsdeschenes in #116972
    Add to filter option in heatmaps tooltip by @nikkikapadia in #116690
    Ingest
    Run save_event inline for ingest events raw task by @lvthanh03 in #117580
    Match messages in custom inbound filter by @oioki in #116701
    Integrations
    Normalize path mapping roots and refine field copy by @evanpurkhiser in #117375
    Add PathMapping component for repo code mappings by @evanpurkhiser in #117191
    ExternalActor from login-with-github identity by @hobzcalvin in #116823
    Set Perforce integration popularity weight by @souredoutlook in #116998
    Create ExternalActor from public GH email opportunistically by @hobzcalvin in #116737
    Create ExternalActor mappings on new CommitAuthors by @hobzcalvin in #116645
    Issues
    Add a new "Progress" column to the awaiting input page by @malwilley in #117485
    Model Sentry App and org callers as distinct action-log actors by @yuvmen in #117354
    Instrument Sentry App platform external issue attach/unlink by @yuvmen in #117273
    Add issue.progress search filter to frontend by @malwilley in #117326
    Add "Awaiting Input" page to issue stream nav by @malwilley in #117460
    Add issues-progress endpoint by @malwilley in #117431
    Add optional project scoping to qualified short id lookups by @oioki in #117047
    Move issue tracker actions into external links header by @scttcper in #117343
    Show linked pull requests in issue sidebar by @scttcper in #117271
    Add issue.progress search filter by @malwilley in #117250
    Add issue-stream-progress-ui feature flag by @malwilley in #117251
    Add endpoint for pull requests linked to an issue by @scttcper in #116744
    Instrument integration inbound handlers and update_group_status by @yuvmen in #116797
    Instrument TRIGGER_AUTOFIX on autofix kickoff by @yuvmen in #116939
    Instrument external issue create/link/unlink endpoints by @yuvmen in #116781
    Send resolving commit id on issue_resolved signal by @Zylphrex in #116991
    Add GroupActionLogEntry by @kcons in #115771
    Add GroupActionLog instrumentation for issue mutations by @yuvmen in #116347
    Improve merged issues drawer by @scttcper in #116634
    Jira Server
    Add frontend pipeline steps for integration setup by @evanpurkhiser in #117185
    Add API-driven pipeline backend for integration setup by @evanpurkhiser in #117181
    Onboarding
    Add Hono SDK (Deno) by @s1gr1d in #117416
    Wire ScmProjectDetailsCore into single-view project creation by @jaydgoss in #117213
    Wire ScmPlatformFeaturesCore into single-view project creation by @jaydgoss in #116626
    Wire ScmIntegrationConnect into single-view project creation by @jaydgoss in #116582
    Complete SCM task when Perforce integration is added by @souredoutlook in #117009
    Scaffold SCM-first project creation as a single view by @jaydgoss in #116577
    Ourlogs
    Switch from LoadingIndicator to Placeholder for loading pinned rows by @JoshuaKGoldberg in #117352
    Add 'all columns' option to export modal by @JoshuaKGoldberg in #116192
    Sync hover state between pinned and tbody log rows by @JoshuaKGoldberg in #117034
    Only re-query truncated logs on significant viewport width increases by @JoshuaKGoldberg in #117014
    Fetch not-yet-available pinned logs and invalidate on filter changes by @JoshuaKGoldberg in #116614
    Pr Metrics
    Forward needs-judge terminal PR events to Seer by @vaind in #117512
    Scaffold delegated-agent PR detection from GitHub webhooks by @giovanni-guidini in #117171
    Deterministic verdict + redelivery guard for PR terminal events by @vaind in #117290
    Capture branch_name in CodingAgentResult for delegated agents by @giovanni-guidini in #117402
    Add merge_commit_id to the PR close/merge event by @Zylphrex in #117318
    Add Seer judge callback update_pr_metrics by @vaind in #117246
    Attribute PRs opened by Seer-delegated coding agents by @giovanni-guidini in #117072
    Ensure to emit linked group ids to pr closed events by @Zylphrex in #117192
    Persist PR opened_at, draft, and metrics JSONB; make emit payload-free by @vaind in #117062
    Persist PR lifecycle fields and use them as emit fallback by @vaind in #116962
    Populate PullRequestActivity from GitHub PR lifecycle webhooks by @giovanni-guidini in #116856
    Emit a BigQuery row on PR close/merge (no-judge path) by @vaind in #116842
    Write PullRequestAttribution on PR open via GitHub webhook by @giovanni-guidini in #116834
    Attribute PRs from the seer.pr_created event by @vaind in #116759
    Extend PullRequest + add PullRequestAttribution, PullRequestMetrics, PullRequestActivity tables by @giovanni-guidini in #116586
    Preprod
    Surface errored images in snapshot status check and PR comment by @NicoHinderling in #117560
    Support selective builds as bases for stacked PRs by @NicoHinderling in #117366
    Add odiff desync detection and unchanged-diff telemetry by @NicoHinderling in #117210
    Add copy insight diff as JSON to clipboard by @jamieQ in #116965
    Smart-download or email-deliver snapshot images by @NicoHinderling in #116952
    Prefill original filename when saving snapshot images by @NicoHinderling in #116954
    Set Content-Disposition filename on snapshot images by @NicoHinderling in #116953
    Store and email-deliver snapshot image archives by @NicoHinderling in #116928
    Fan out snapshot comparison into bounded chunk tasks by @NicoHinderling in #116813
    Collapse duplicate files within a group by @jamieQ in #116815
    Add async resumable snapshot archive download endpoint by @NicoHinderling in #116825
    Replays
    Add EAP spans dataset support to replay counts endpoint by @mjq in #116150
    Hooked up logs search to standard TraceItemSearchQueryBuilder by @JoshuaKGoldberg in #115944
    Scm Multi Platform Detetion
    Extending multi platform detector functionality by @Abdkhan14 in #117444
    Calling platforms-test endpoint in the FE by @Abdkhan14 in #117113
    Search
    Add recommended_v2 sort using the Postgres-data sort framework by @roggenkemper in #117227
    Add Postgres-data sort framework for issue search by @roggenkemper in #116896
    Downrank capture_message issues in recommended sort by @roggenkemper in #116588
    Add release:latest as an autocomplete option in the issue feed by @shashjar in #116742
    Seer
    Wire enable_streaming flag to Seer agent runs by @natemoo-re in #117573
    Register seer-explorer-stream feature flag by @natemoo-re in #117571
    Enable autofix code review purely on the option by @chromy in #117523
    Backfill SeerAgentRun.group_id from autofix category_value by @trevor-e in #117561
    Accept and return SeerRun UUID in explorer autofix by @trevor-e in #117464
    Treat night-shift RCA verdicts as skips by @trevor-e in #117480
    Return and accept SeerRun UUID in explorer chat by @trevor-e in #117265
    Return _seer_error_detail on timeseries query 400s by @aliu39 in #117395
    Add CPU connection pools and rollout options for severity and fixability by @Mihir-Mavalankar in #117359
    Allow Seer Agent POST endpoints in sandbox demo mode by @constantinius in #117397
    Move troubleshooting context to the serialized event by @ArthurKnaus in #117303
    Register CPU rollout options for severity and fixability by @Mihir-Mavalankar in #117350
    Populate SeerAgentRun.group from the client's group by @trevor-e in #117314
    Poll search agent using UUID instead of numeric run ID by @trevor-e in #115307
    Add cross-event filter params to execute_table_query by @manessaraj in #117195
    Add issue troubleshooting context by @ArthurKnaus in #117068
    Add autofix RCA and solution to issue details LLM context by @Mihir-Mavalankar in #116978
    Register seer-explorer-embeds feature flag by @sentry-junior in #116780
    Add autofix high-intelligence and code-review org experiments by @chromy in #116843
    Add seer-use-agent-sandbox feature flag by @chromy in #116841
    Handle @sentry review notes in GitLab merge_request webhook handler by @sentry-junior in #116599
    Add deliver_feature_result RPC for Seer agent features by @trevor-e in #116734
    Pass ready_for_review when creating Explorer PRs by @trevor-e in #116746
    Add award-emoji parity to GitLab merge-request webhook handler by @cmanallen in #116766
    Seer Activity
    Implement activity action registry by @leeandher in #117016
    Add the frontend form for seer activity condition by @leeandher in #116689
    Seer Infra Telemetry
    Add DatadogIdentityProvider for OAuth2 by @srest2021 in #117035
    Bypass DCR if user is already linked to an Identity with existing client id and secret by @srest2021 in #117358
    Add Datadog OAuth2 views with PKCE and DCR by @srest2021 in #117026
    Add GCP MCP identity provider for OAuth2 by @shashjar in #117279
    Spans
    Add visuals to spans that have warnings/errors by @adrianviquez in #117380
    Add any function by @wmak in #116882
    Taskbroker
    Add taskworker-push Topic by @george-sentry in #117151
    Add TASKWORKER_INGEST_PUSH to Topic Enum by @george-sentry in #117135
    Teams
    Add avatar upload UI to team settings by @shashjar in #117140
    Update team serializer to return avatar data by @shashjar in #117132
    Recreates the TeamAvatar model by @shashjar in #117128
    Trace Waterfall
    Add time compression feature flag by @nsdeschenes in #117109
    Render warning icon with count by @nsdeschenes in #116566
    Tracemetrics
    Update dashboard prompts to include equations by @narsaynorath in #117103
    Switch widget builder to toggle between series and equations by @narsaynorath in #116383
    Vercel
    Activate the API-driven pipeline for Vercel installs by @evanpurkhiser in #116625
    Add API-driven pipeline backend for Vercel integration setup by @evanpurkhiser in #113094
    Vsts
    Drive Marketplace installs through the API pipeline modal by @evanpurkhiser in #117085
    Accept the Marketplace account as API pipeline initial data by @evanpurkhiser in #116974
    Webhooks
    Add org-scoped legacy webhooks endpoint by @Christinarlong in #116817
    Add legacy-webhook-ui feature flag by @Christinarlong in #116731
    Weekly Report
    Removing dropped counts from snuba queries by @amy-chen23 in #117578
    Remove dropped columns from chart by @amy-chen23 in #117577
    Adding week over week percentage change to total errors and transactions by @amy-chen23 in #117037
    Other
    (account) Improve close account UX copy and confirmation by @sentry-junior in #117051
    (agents) Warn about wrongly reported tokens in span details by @obostjancic in #117067
    (apigw) Add cell address override support by @gi0baro in #116846
    (billing) Paginate invoice comparison admin UI by @armcknight in #116647
    (broadcasts) Add organization targeting to broadcast admin UI by @michelletran-sentry in #116723
    (clock-pulse) Rollout TaskProducer as checkin_producer by @bmckerry in #117107
    (cmd-k) Hide deprecated API Keys from command palette by @sentry-junior in #116922
    (config-issues) Add beta badge to Sentry Configuration by @ArthurKnaus in #117156
    (conversations) Support reasoning/thinking message parts by @obostjancic in #117401
    (cursor) Make agent display name editable and drop email from default by @JoshFerge in #117559
    (dashboards) Add backend support for heat map widgets by @gggritso in #117575
    (dev) Suppress mypy unused configs warnings when running via prek by @lcian in #117281
    (devserver) Tee console output to a local dev log file by @trevor-e in #117486
    (difs) Add Objectstore columns to ProjectDebugFile by @lcian in #117500
    (dynamic-sampling) Add config option to set the minimum implicit factor by @constantinius in #116571
    (eslint) Only run ESLint on impacted files, transitively by @JoshuaKGoldberg in #116718
    (explorer) Wire enable_embeds flag to Seer agent runs by @natemoo-re in #117270
    (fix) Update the sync export to send error to UI by @manessaraj in #117077
    (GAL) Add handling of GALEs during group merge by @thetruecpaul in #117111
    (gitlab) Track contributor seat on merge request opened by @tnt-sentry in #116576
    (grouping) Add feature flag to skip v1 fallback for grouping v2 by @yuvmen in #117566
    (heatmaps) Disable heat maps selection for equations by @nikkikapadia in #117334
    (icons) Add heatmap visualization icon to IconGraph by @gggritso in #116977
    (inbound-filters) Add spring boot globs by @tobias-wilfert in #117157
    (issue-sort) Skip zero-weighted factors in recommended sort by @roggenkemper in #116726
    (logs) Wire Seer AI visualization params into logs explore by @isaacwang-sentry in #115585
    (low-value-spans) Redesign configuration issue details by @ArthurKnaus in #117160
    (mcp-attribution) Create pull request attribution for mcp usage by @Zylphrex in #117443
    (mypy) Auto-derive Serializer[T] from typed serialize() returns by @azulus in #116879
    (navigation) Add search button to topbar by @JonasBa in #116443
    (night_shift) Gate Seer feature delivery behind an option by @trevor-e in #116890
    (options) Add configoptions validate subcommand by @wedamija in #116831
    (post-process) Add overridable SIEM security logging hook by @oioki in #116820
    (project transfer) Attempt to reconnect integration when Action is transferred by @ceorourke in #116910
    (report) Add metrics for weekly report pipeline observability by @amy-chen23 in #116810
    (reports) Cache per-project weekly report metrics by @amy-chen23 in #116739
    (repositories) Auto-link new projects to repos via name matching by @wedamija in #116636
    (scraps) Add no-double-dollar-interpolation eslint rule by @JoshuaKGoldberg in #117121
    (seer-agent) Include integration id on repo_pr_state by @Zylphrex in #117687
    (snapshots) Show label for active diff mode in toolbar by @mtopo27 in #117118
    (span-fields) Hide internal attributes by @nsdeschenes in #116384
    (trace-item-stats) Hide internal attributes by @nsdeschenes in #116380
    (trace-items) Remove internal attributes by @nsdeschenes in #116329
    (validate) Add a new validate endpoint by @wmak in #117474
    (values) Add a way to start deprecating this api by @wmak in #117129
    Add event stream only github webhook handlers by @joseph-sentry in #116312
    Emit issue.view.attribution events for mcp by @Zylphrex in #116699
    Bug Fixes 🐛
    Aci
    Handle missing conditions in DataConditionGroup create by @malwilley in #117036
    Add better condition validation by @malwilley in #117007
    Api
    Correctly serialize integration issues in group details by @sentry in #117163
    Document project param on replay count endpoint by @betegon in #116836
    Handle non-numeric group_id in project event details endpoint by @sentry in #116866
    Document missing query params on Teams, Projects, and Project Issues endpoints by @betegon in #116835
    Correct OpenAPI spec type gaps in issue_id and query params by @betegon in #116782
    Cells
    Fixes potential misalignment in group serializer when users are inactive or deleted by @GabeVillalobos in #116886
    Org member serialization returns empty email if user and email fields not available" by @GabeVillalobos in #116871
    Charts
    Flip tall tooltips below the cursor when needed for space by @JoshuaKGoldberg in #117264
    Restore chart drag-to-select by @JoshuaKGoldberg in #117256
    Ci
    Pass GITHUB_TOKEN to devservices by @mchen-sentry in #117345
    Bump pytest-rerunfailures to 16.3 for pytest 9 compatibility by @mchen-sentry in #117232
    Dashboards
    Allow existing tracemetrics table widgets to save by @DominikB2014 in #117452
    Prevent crash on time series widgets with missing aggregates by @gggritso in #117382
    Collapse Seer system prompt in dashboard chat by @DominikB2014 in #117307
    Hide internal error messages from widget error state by @skaasten in #116970
    Reduce dashboard generation validation loop failures by @shruthilayaj in #116501
    Deletions
    Normalize group-deletion pagination cursor for Snuba by @mrduncan in #117537
    Avoid cross-table JOIN in GroupEnvironment bulk delete during org deletion by @shashjar in #116627
    Explore
    Preserve agent-selected interval not in the dropdown by @DominikB2014 in #117355
    Setting metrics heat map visualization with previous groupby by @nikkikapadia in #117131
    Reset cursor when searching saved queries by @matejminar in #117177
    Heatmap z-axis value in tooltip showing logarithmic value by @nikkikapadia in #116844
    Grouping
    Match Dart bootstrap stub frames by trimmed function name by @buenaflor in #117161
    Mark Flutter runtime native frames as non-app by @buenaflor in #116177
    Fix performance issues in grouping parameterization regexes by @shashjar in #116897
    Intercom
    Switch from user_hash to intercom_user_jwt by @scttcper in #117378
    Clear cookies before boot by @scttcper in #117277
    Wait before shutdown/restart by @scttcper in #117149
    Reboot messenger after first show by @scttcper in #117127
    Issues
    Show auto-resolve activity age by @scttcper in #117481
    Keep searched release selected in resolve modal by @scttcper in #117496
    Show auto ongoing activity duration by @scttcper in #117477
    Correct external issue activity title by @scttcper in #117473
    Shorten sidebar activity timestamps by @scttcper in #117451
    Decode issue stream query params by @scttcper in #117435
    Stop over-reporting status updates for already-matching groups by @yuvmen in #117146
    Key bulk short id lookup on (project, short id) pairs by @oioki in #117046
    Prefer closed status for closed draft PRs by @scttcper in #117249
    Serve org-prefixed public share links without login by @cvxluo in #117200
    Handle prototype tag roots by @scttcper in #117155
    Use map for project member index by @scttcper in #116996
    Show issue row checkbox on keyboard focus" by @macuzi in #116750
    Tighten activity feed marker spacing by @scttcper in #116828
    Improve pull request activity wrapping by @scttcper in #116785
    Low Value Spans
    Handle null op/description in explore link and snippets by @ArthurKnaus in #117292
    Clarify extrapolation window in tooltips by @ArthurKnaus in #117282
    Correct typo in problem description by @ArthurKnaus in #117189
    Improve troubleshooting docs links by @ArthurKnaus in #117176
    Metric Issues
    Filter contributing issues by detector environment by @malwilley in #117367
    Show contributing issues for crash rate metric monitors by @malwilley in #116703
    Metrics
    Sync trace metric from assisted query agent output by @DominikB2014 in #116975
    Remove metric fallback attribute loading by @nsdeschenes in #116840
    Load fallback attributes in metric filters by @nsdeschenes in #116764
    Add group by attribute fallback by @nsdeschenes in #116763
    Onboarding
    Add dataCollection.httpBodies to setup snippet by @s1gr1d in #117498
    Keep getting-started rendered while back nav deletes by @jaydgoss in #117325
    Hide trial and volume info outside onboarding by @jaydgoss in #117199
    Route SCM modal analytics by flow by @jaydgoss in #116730
    Gate experiment exposure to recently created orgs by @jaydgoss in #117017
    Ourlogs
    Preserve graph type when adding a chart to dashboard by @JoshuaKGoldberg in #117420
    Reuse useVisualizeFields to avoid Visualize field resetting to None by @JoshuaKGoldberg in #117528
    Disable charts automerge outside of auto-refresh by @JoshuaKGoldberg in #117421
    Use dynamic back-to-top button offset by @JoshuaKGoldberg in #116976
    Shift pin icon 6px away from right scrollbar by @JoshuaKGoldberg in #117030
    Keep last column alignment stable on hover by @JoshuaKGoldberg in #116900
    Source observed timestamp from hover-prefetched trace item attributes by @JoshuaKGoldberg in #116804
    Perforce
    Fix the client usage and path settings by @mujacica in #117422
    Extend the hostname checks by @mujacica in #117296
    Fix the URL parsing when Release/Commit info is available by @mujacica in #117158
    Extend the logic for the perforce transport checks by @mujacica in #117178
    Add support for repo external ID and sync by @mujacica in #116771
    Performance
    Hide sample transaction button without event:write by @skaasten in #116801
    Use full issue URL in trace drawer by @scttcper in #116819
    Preprod
    Post snapshot PR comment when all images errored by @NicoHinderling in #117585
    Prevent duplicate snapshot PR comments under fanout by @NicoHinderling in #117467
    Stop chunk crash from reserved LogRecord key by @NicoHinderling in #117550
    Run expired-artifacts reaper every 30 minutes by @NicoHinderling in #116860
    Reap stuck PROCESSING snapshot comparisons by @NicoHinderling in #116708
    Replays
    Stop showing setup message for status-0 network requests by @JoshuaKGoldberg in #117554
    Keep replay reader from mutating records by @scttcper in #116606
    Clear stale filters when changing replay tabs by @nsdeschenes in #116768
    Search
    Treat Seer datetimes as plain UTC instead of Z-stripping by @isaacwang-sentry in #117108
    Ignore prototype keys in recent filters by @scttcper in #117040
    Search Query Builder
    Cache async key info by @nsdeschenes in #117415
    Sync external query while disabled by @nsdeschenes in #116772
    Seer
    Add GitLab support to autofix integration setup check by @billyvg in #117678
    Fix alignment of repo-count column by @ryan953 in #117384
    Send pull_request_review_comment as code-review trigger type by @billyvg in #117433
    Navigate same-origin markdown links with the router by @natemoo-re in #117432
    Fix an issue where the Autofix Agent filter wasnt working properly by @ryan953 in #117381
    Save Autofix modal repos through Seer endpoints by @billyvg in #117340
    Prefer to fall through to redirects for non-seat based orgs by @ryan953 in #116483
    Settings
    Fix the layout of the integrations page after a search by @ryan953 in #117119
    Handle prototype scrubbing sources by @scttcper in #117008
    Tests
    Correct mock for users endpoint in related issues test by @sentry in #117535
    Disable endpoint config fetch in RelayStoreHelper tests by @joshuarli in #117243
    Tracemetrics
    Add validation for single equation for timeseries by @narsaynorath in #117568
    Switching to equation mode clears aliases by @narsaynorath in #117229
    Read equation for total count in widget by @narsaynorath in #116973
    Add empty state for empty equation in metrics by @narsaynorath in #116869
    Auto select equation when switching to equation mode by @narsaynorath in #116873
    Ui
    Reset Intercom session on customer-domain org switches by @scttcper in #116878
    Remove /groups/ endpoints from endpoint list by @scttcper in #116934
    Exclude legacy issue URLs from generated types by @scttcper in #116818
    Workflow Engine
    Validate AssignedTo condition targets belong to the organization by @malwilley in #117110
    Skip deescalating condition for groups without open periods by @malwilley in #116802
    Other
    (action_log) Refine usage of idempotency key by @kcons in #117391
    (apigw) Handle multiple set-cookie headers in proxied requests by @gi0baro in #117289
    (apps) Fix theme issues with a divider by @Asynchronite in #117231
    (attachments) Disable preview for prosperodmp attachments by @JoshuaMoelans in #117187
    (auth) Redirect inactive authenticated users to reactivate, not next_uri by @sentry-junior in #117052
    (autofix) Remove non-null assertion in getFinalExplanation by @sentry-junior in #116967
    (billing) Clear region details in billing address if incorrect by @krithikravi in #117590
    (cell) Adds actor serialization fix for monitors by @GabeVillalobos in #117020
    (components) Fix copy block handler by @aliu39 in #116833
    (configuration-issues) Show event header in details by @ArthurKnaus in #117162
    (conversations) Stop rendering raw tool call JSON as message content by @obostjancic in #117065
    (crons) Add trace ID to occurrences by @thetruecpaul in #117374
    (devserver) Exclude .artifacts from granian reload watcher by @kitlord in #117609
    (discover) Wrap attribute values with spaces in quotes by @nsdeschenes in #117532
    (dynamic-sampling) Rename project_id in logs to avoid built-in column collision by @constantinius in #117671
    (email) Add login links to deactivation and org deletion emails by @sentry-junior in #117053
    (events) Add silo decorator by @wmak in #117569
    (external-issues) Preserve user-entered values when issue type changes by @sentry-junior in #117043
    (frontend) Migrate issueActions.tsx to requestPromise by @sentry in #117626
    (heatmaps) Change minimum duration unit to microsecond for small values by @nikkikapadia in #117214
    (issue details) Show PR author name instead of "Sentry" in activity feed by @shashjar in #116888
    (issue-detection) Exclude cached queries from N+1 DB detection by @roggenkemper in #117190
    (issueList) Convert undoAction to promise-based API by @ryan953 in #117627
    (monitors) Show "no projects" component in monitors list view by @malwilley in #116814
    (notifications) Use triggering event metadata in regression notifications by @vgrozdanic in #117414
    (options) Bump max option value length by @bmckerry in #117316
    (profile-issues) Bump vroomrs to 0.1.21 by @Zylphrex in #117124
    (project transfer) Clone shared workflows when transferring project by @ceorourke in #116522
    (replay) Guard against undefined frame.data in BreadcrumbIssueLink by @scttcper in #117593
    (report) Enforce enhanced privacy settings for weekly report by @amy-chen23 in #116909
    (reports) Fixing weekly report dev env by @amy-chen23 in #116779
    (scm) Adds additional check to GHE integration building step by @GabeVillalobos in #117240
    (sdk-crash) Add Trace ID by @thetruecpaul in #117372
    (seer-activity) Use preferred detector instead of issue stream by @leeandher in #116695
    (seer-explorer) Key tool-call rows by id, not function+index by @trevor-e in #117365
    (seer-settings) Scope Seer settings bulk PUT to all accessible projects by @srest2021 in #117247
    (sentry-apps) Omit empty optional fields from issue-link submissions by @priscilawebdev in #116757
    (smartSearchBar) Handle prototype filter keys by @scttcper in #116999
    (snapshots) Use sentry-cli snapshots upload, bump cli to 3.5.0 by @sentry-junior in #117002
    (snuba) Only tag snuba rejected queries by @cvxluo in #117145
    (suspect commits) Use release date as the upper bound for SCM-based commit filtering by @shashjar in #117013
    (tagstore) Skip array meta-columns in tag value paginator by @Zylphrex in #117018
    (taskbroker) Override Topic and Namespace in Task Sender Locally by @george-sentry in #117466
    (teams) Guard team avatar serializer on avatar_type instead of file_id by @shashjar in #117320
    (traces) Add fallbacks for renamed gen_ai span attributes by @obostjancic in #117301
    (txn-summary) Clean up getEAPTotalsEventView by @mjq in #116711
    (uptime) Rename 'View alert details' CTA to 'View monitor details' by @souredoutlook in #117423
    (vroom) Add Trace to Vroom occurrences by @thetruecpaul in #117468
    (webhooks) Return disabled projects in org legacy webhooks endpoint by @Christinarlong in #116914
    (workflow) Fix type choices being a snapshot list of grouptype registry by @Christinarlong in #116637
    (workflows) Validate delayed workflow tag filter keys by @kcons in #117344
    Improve 500 error page by @markstory in #117437
    Adjust grid template columns values to constraint attribute tree text by @adrianviquez in #117019
    Revert "ref(webhooks): Hide PLUGIN action type from available actions endpoint (#116458)" by @getsentry-bot in 4e8716f0
    Documentation 📚
    Agents
    Mention conversation IDs in onboarding by @obostjancic in #117165
    Fix prek mypy run command by @lcian in #117198
    Point static/AGENTS.md design-system to the skill by @JoshFerge in #116881
    Trim noise from root and tests AGENTS.md by @JoshFerge in #116875
    Remove cross-doc duplication in AGENTS.md files by @JoshFerge in #116874
    Trim noise and stale duplication from src/AGENTS.md by @JoshFerge in #116868
    Api
    Migrate project users docs by @JoshFerge in #116908
    Migrate project stats docs by @JoshFerge in #116906
    Migrate organization repositories docs by @JoshFerge in #116905
    Other
    (backup) Document backup test coverage steps for new models by @shellmayr in #117293
    (seer) Add simple stories for the two AutofixRepositories components, aka "Connected Repos" lists by @ryan953 in #117616
    Added note about accuracy on sampled data / documented yAxis values by @bcoe in #117684
    Internal Changes 🔧
    Aci
    Cleanup the code from rolling out the new activity handler by @saponifi3d in #117388
    Remove workflow_status_update_handler and use generic handler by @saponifi3d in #117152
    Add / adopt DetectorId instead of int by @saponifi3d in #116902
    Alerts
    Migrate handleOwnerChange from api.request to requestPromise by @ryan953 in #117628
    Bump up brownout schedule and include private endpoints by @ceorourke in #117469
    Api
    Use token operationIds + summary for replay endpoints by @betegon in #117166
    Use token operationIds + summary for discover endpoints by @betegon in #117302
    Use token operationIds + summary for dashboard endpoints by @betegon in #117297
    Type source_map_debug endpoint by @cvxluo in #117274
    Extract isSimilarOrigin and resolveHostname to utils/api/ by @ryan953 in #117263
    Tighten group_details.put() return to Response[T] by @azulus in #117203
    Tighten 2 more endpoint returns to Response[T] by @azulus in #117197
    Tighten 4 more paginate-based endpoint returns by @azulus in #117154
    Tighten 2 more Goal #1 endpoint methods by @azulus in #117144
    Tighten 5 more endpoint returns to Response[T] by @azulus in #117138
    Tighten 3 more PUBLIC endpoint returns to Response[T] by @azulus in #117123
    Tighten 11 endpoint methods to Response[T] by @azulus in #117117
    Tighten 3 endpoint returns to Response[T] by @azulus in #117028
    Move ApiResult/ResponseMeta types to a leaf module by @JoshuaKGoldberg in #116854
    Tighten 2 endpoint annotations via local TypedDict by @azulus in #116918
    Tighten 4 workflow-engine endpoint annotations by @azulus in #116898
    Tighten 15 endpoint return annotations to Response[T] by @azulus in #116893
    Remove legacy blue-thunder-edition URL by @cvxluo in #116859
    Remove publish-status allowlist and the UNKNOWN status by @gricha in #116747
    Document remaining UNKNOWN endpoints, drain publish-status allowlist by @gricha in #116745
    Resolve UNKNOWN publish_status for release and deprecated endpoints by @gricha in #116650
    Autofix
    Gate "open in seer agent" button behind a option by @joseph-sentry in #117322
    Declare seer-agent-debug-view flag by @joseph-sentry in #117321
    Remove get_autofix_state function by @Zylphrex in #117228
    Remove instances of launch coding agents for run by @Zylphrex in #117174
    Remove unused group ai autofix from frontend by @Zylphrex in #117134
    Remove legacy autofix state from PR by @Zylphrex in #117125
    Delete unused autofix update endpoint by @Zylphrex in #117112
    Make stopping point validation aware of billing tier by @srest2021 in #116724
    Remove unused legacy autofix path by @Zylphrex in #116769
    Billing
    Bump sentry-protos to 0.24.0 by @dashed in #117038
    Bumped protos to 0.22.3 by @krithikravi in #117027
    Bumped sentry protos to 0.22.2 by @krithikravi in #116992
    Buffers
    Handle none value in non-pickle dump by @dmajere in #116993
    Disable deprecated transactions in buffer usage by @dmajere in #116916
    Cell
    Updates apigateway metrics with method, removes old resolution code by @GabeVillalobos in #117042
    Changes netloc checks to match cells by hostname instead by @GabeVillalobos in #116727
    Cleans up import loops with apigateways by @GabeVillalobos in #116658
    Cells
    Unregister cells.use-control-org-listing by @lynnagara in #117556
    Stop exposing use-control-org-listing via client_config by @lynnagara in #117373
    Fetch org listing from control silo unconditionally by @lynnagara in #117371
    Adds Error Embed pages to metric allowed paths by @GabeVillalobos in #117039
    Codecov
    Remove OrganizationMapping codecov_access replication by @giovanni-guidini in #116754
    Remove Codecov client, helper, credentials and feature flag by @giovanni-guidini in #116681
    Dashboards
    Lower async queue parallel limit default to 10 by @DominikB2014 in #117075
    Remove dashboards-revisions feature flag (backend) by @skaasten in #116969
    Remove dashboards-revisions feature flag (frontend) by @skaasten in #116971
    Deps
    Bump @rsdoctor/rspack-plugin to 1.5.13 (clears shell-quote CVE-2026-9277) by @oioki in #117620
    Bump sentry-conventions to 0.11.0 by @constantinius in #117286
    Bump echarts from 6.0.0 to 6.1.0 by @gggritso in #117139
    Bump @emotion/is-prop-valid from 1.3.1 to 1.4.0 in the emotion-dependencies group across 1 directory by @dependabot in #109269
    Bump @sentry/conventions from 0.4.0 to 0.8.0 by @dependabot in #114825
    Dynamic Sampling
    Correct the project_id column to specify ds by @shellmayr in #117418
    Add logging of project volumes for dynamic sampling per-org debugging by @shellmayr in #117179
    Additional debug data logging for per-org project sample rates by @shellmayr in #117066
    Clarify naming in per-org transaction balancing code by @shellmayr in #116755
    Events
    Remove unusable spansIndexed dataset by @wmak in #117530
    Add TagDeriver protocol for auto-tag extraction by @Christinarlong in #116824
    Flags
    Graduate organizations:uptime-backlog-retry by @wedamija in #117225
    Graduate organizations:processing-errors-eap by @wedamija in #117224
    Remove organizations:relay-default-trace-id by @thetruecpaul in #116867
    Graduate organizations:github-repo-auto-sync-webhook by @wedamija in #116728
    Graduate organizations:code-review-experiments-enabled by @wedamija in #116657
    Integrations
    Use stock Button for uninstall action by @natemoo-re in #117439
    Remove the legacy web-view setup pipeline from integrations by @evanpurkhiser in #117362
    Remove unused legacy extension configuration view by @evanpurkhiser in #117338
    Remove the unused setupDialog from the integration type by @evanpurkhiser in #117370
    Always use the pipeline modal on the integration link page by @evanpurkhiser in #117363
    Remove the legacy popup install flow by @evanpurkhiser in #117364
    Remove GA coding agent feature flags by @JoshFerge in #116850
    Remove Intercom support flag by @ceorourke in #116738
    Issues
    Make project_ids required on qualified short id lookups by @oioki in #117508
    Scope issue endpoint short id lookups to authorized projects by @oioki in #117299
    Bulk hide environments via new API endpoint by @amy-chen23 in #117105
    Add malicious detection hook contract by @gricha in #117096
    Use TaskProducer as the occurrence producer in tasks (round 2) by @bmckerry in #117081
    Use group naming for action log events and stringify IDs by @yuvmen in #116988
    Jest
    Add Sentry SDK instrumentation to snapshot tests by @ryan953 in #117459
    Mark flaky jest tests - 2026-06-08 by @cursor in #117063
    Mark flaky jest tests - 2026-06-01 by @ryan953 in #116575
    Markdown
    Add more to copy to markdown for performance issues by @shayna-ch in #117130
    Add span evidence section to performance issues by @shayna-ch in #116884
    Mypy
    Remove ActorSerializer + GroupEventReleaseSerializer from autoderive denylist by @azulus in #116981
    Remove 5 serializers from autoderive denylist by @azulus in #116944
    Remove IntegrationSerializer + DashboardListSerializer from autoderive denylist by @azulus in #116927
    O11y
    Add scope.set_attribute calls in tasks by @sentrivana in #117517
    Add scope.set_attribute calls in organization misc endpoints by @sentrivana in #117516
    Add set_attribute calls in data export tasks by @sentrivana in #117505
    Add scope.set_attribute calls in organization events endpoints by @sentrivana in #117515
    Add scope.set_attribute calls in API bases and query utils by @sentrivana in #117514
    Add set_attribute calls in middleware integration classifications by @sentrivana in #117510
    Add set_attribute calls in deliver webhooks by @sentrivana in #117507
    Add set_attribute calls in hybridcloud RPC service by @sentrivana in #117506
    Add scope.set_attribute calls in organization traces by @sentrivana in #117413
    Add set_attribute calls in reprocessing2 by @sentrivana in #117511
    Add set_attribute calls and switch to top level API in SCIM members by @sentrivana in #117504
    Add set_attribute calls in integrations base by @sentrivana in #117409
    Add scope.set_attribute in authentication by @sentrivana in #117405
    Add scope.set_attribute calls in organization releases by @sentrivana in #117407
    Add scope.set_attribute calls in Jira issue details by @sentrivana in #117408
    Add scope.set_attribute call in onboarding tasks by @sentrivana in #117411
    Add scope.set_attribute call in api base by @sentrivana in #117406
    Onboarding
    Drive the project-details form from host state by @jaydgoss in #117333
    Extract project-details form into a reusable hook and core by @jaydgoss in #117209
    Initialize TanStack Start React SDK from a dedicated client init file by @nicohrubec in #117173
    Extract ScmPlatformFeaturesCore from ScmPlatformFeatures by @jaydgoss in #116624
    Replace sendDefaultPii with dataCollection in JS snippets by @s1gr1d in #117064
    Extract ScmIntegrationConnect from ScmConnect by @jaydgoss in #116581
    Options
    Allow options to be fetched without an organization or project instance by @cmanallen in #116680
    Cleaning up more unused options by @kenzoengineer in #116741
    Ourlogs
    Rename PinnedLogs query prop to pinnedLogsQuery by @JoshuaKGoldberg in #116966
    Removed observed_timestamp from AlwaysPresentLogFields by @JoshuaKGoldberg in #115505
    Pr Metrics
    Type signal_details for delegated-agent attributions; add run_id by @giovanni-guidini in #117519
    Remove PullRequestAttribution REFERENCED_ISSUE from pull_request path by @giovanni-guidini in #117284
    Derive close_action from the PR row in emit by @vaind in #117242
    Add index for GroupLink by @Zylphrex in #117204
    Collapse SEER_APP into SENTRY_APP attribution signal by @giovanni-guidini in #116958
    Preprod
    Log exception type on chunk failure by @NicoHinderling in #117552
    Remove unused snapshot download endpoint by @NicoHinderling in #117324
    Hide overlay color picker at xs in toolbar snapshot by @mtopo27 in #117104
    Use file_path as React key for duplicate file rows by @jamieQ in #117074
    Download snapshot images via direct browser request by @NicoHinderling in #116795
    Relay
    Add option to disable internal ip auth bypass by @Dav1dde in #116980
    Remove unused feature flag 'relay-new-error-processing' by @Dav1dde in #116620
    Releases
    Tighten 4 release-file-details endpoint returns to Response[T] by @azulus in #117208
    Remove defer commit resolution flag by @JoshFerge in #116848
    Replays
    Speed up spans replay count query by @mjq in #117456
    Remove control-silo URL pattern for removed data export endpoint by @DominikB2014 in #116298
    Cut two type-only edges into the import cycle by @JoshuaKGoldberg in #117031
    Read live location in nuqs test adapter by @NicoHinderling in #116803
    Search
    Resolve issue: short ids org-wide with explicit project_ids=None by @oioki in #117398
    Deduplicate SeerComboBox components with shared hooks by @isaacwang-sentry in #116205
    Seer
    Move Seer components into components/seer/ by @ryan953 in #117613
    Scope Seer short id lookups; mark org-wide callers explicit by @oioki in #117399
    Drop night shift in-process triage path by @trevor-e in #117032
    Refactor Autofix settings to use the new endpoints, and cleaner table abstractions by @ryan953 in #117000
    Wrap settings pages with a Stack and hoist seer specific settings wrappers by @ryan953 in #117099
    Return SeerRun from start_run to drop a re-query by @trevor-e in #117025
    Tighten SeerModelsEndpoint.get() to Response[SeerModelsResponse] by @azulus in #116997
    Add diagnostic logs to GitLab MR emoji reaction path by @billyvg in #116982
    Default SeerRun double-write and drop flag gates by @trevor-e in #116955
    Remove coding agent frontend flag checks by @JoshFerge in #116849
    Send explorer experiment flags as nested agent_run_options by @chromy in #116761
    Span Buffer
    Add pipelined queue deadline lookups by @cmanallen in #117436
    Use bulk project lookup and cache results locally by @cmanallen in #117442
    Improve performance of span buffer processor with typed msgspec deserializer by @cmanallen in #117673
    Exit early if the add_buffer script was previously loaded by @cmanallen in #117427
    Support
    Remove remaining Zendesk references by @ceorourke in #116870
    Remove Intercom support flag from front end by @ceorourke in #116822
    Types
    Move SelectValue out of types/core into scraps/select by @JoshuaKGoldberg in #116880
    Move PlatformKey to a leaf module by @JoshuaKGoldberg in #116809
    Relocate context and shared types into leaf modules by @JoshuaKGoldberg in #116774
    Typing
    Remove sentry.search.events.datasets.filter_aliases from mypy ignore list by @shashjar in #116937
    Remove sentry.search.events.builder.metrics from mypy ignore list by @shashjar in #116733
    Remove sentry.search.events.builder.errors from mypy ignore list by @shashjar in #116621
    Ui
    Enable tsgo in rspack-typescript-checker by @scttcper in #117315
    Type isEmptyObject inputs, block Map type by @scttcper in #117211
    Vsts
    Remove legacy web setup views in favor of API pipeline steps by @evanpurkhiser in #117336
    Remove the vsts-extension provider and redirect the configure URL by @evanpurkhiser in #117101
    Webhooks
    Restructure project sidebar and add dedicated legacy-webhooks route by @Christinarlong in #117143
    Show webhooks on integrations directory page by @Christinarlong in #117045
    Route /integrations/webhooks/ to WebhookDetailedView by @Christinarlong in #117033
    Add standalone org-level webhook detail page by @Christinarlong in #116830
    Replace plugin page with standalone webhook settings by @Christinarlong in #116735
    Weekly Report
    Batch key errors Snuba query by @amy-chen23 in #117329
    Add cache hit metric by @amy-chen23 in #117346
    Workflows
    Cache assignee lookup in-memory by @cmanallen in #115863
    Add batch DataConditionGroup lookup by @cmanallen in #115864
    Other
    (_admin) Remove unused customer details components by @ceorourke in #116877
    (action log) Verify publish transactionality by @kcons in #117567
    (apidocs) Add x-learn-more pagination link to cursor query param by @JoshFerge in #116936
    (apigw) Pass host headers to control proxied requests by @gi0baro in #117202
    (attribute-values) Remove unused endpoint by @wmak in #117230
    (auth) Make signed-URL email verification the only path by @nora-shap in #116748
    (automations) Hide plugin action type from action picker by @Christinarlong in #117479
    (avatars) Refactor AvatarChooserProps to a discriminated union on type by @shashjar in #117348
    (cmdk) Add all dashboards to global Cmd+K action with search by @JonasBa in #116863
    (code-review) Add flagged logging in gitlab note flow by @suejungshin in #116983
    (constants) Split consts to leaves to break import cycles by @JoshuaKGoldberg in #116792
    (data-forwarding) Add a metric for non-scheduled for direct comparison by @leeandher in #116725
    (detectors) Remove unnessary parameters and interfaces by @cmanallen in #116709
    (explore) Clean up experimental validation by @nsdeschenes in #117332
    (flake8) Add S019 rule banning reserved LogRecord keys in logging extra= by @NicoHinderling in #117562
    (gitlab) Add select logging for gl webhooks by @suejungshin in #116832
    (grouping) Add test cases for duration regex word boundary behavior by @shashjar in #116907
    (gsAdmin) Add responsive CSS for narrow screens by @sentry-junior in #117056
    (hybrid-cloud) Explicitly handle errors rather than 500ing by @cmanallen in #117335
    (icons) Import theme types from the theme types leaf by @JoshuaKGoldberg in #116777
    (ingest) Add taskbroker raw task for ingest-events by @lvthanh03 in #117133
    (issueDetails) Move DetectorDetails type to a leaf module by @JoshuaKGoldberg in #116787
    (jest-balance) Parallelize balancer across 8 shards by @ryan953 in #117059
    (jira-server) Remove legacy pipeline setup views by @evanpurkhiser in #117311
    (kafka) Remove --cluster kwawg from consumer CLI by @enochtangg in #117434
    (logging) Configure grpc logger so its errors aren't dropped by @untitaker in #116806
    (merge) Refactor for GAL by @thetruecpaul in #116710
    (migrations) Delete migration tests older than a week by @JoshFerge in #116940
    (monitors) Batch issue stream detector fetches on Monitors list by @shashjar in #116794
    (overlay) Import NODE_ENV/defined from leaves to break import cycle by @JoshuaKGoldberg in #116805
    (plugins) Break language plugin preprocessors out of plugin infrastructure by @Christinarlong in #117441
    (profiles) Begin TaskProducer rollout by @bmckerry in #117549
    (profiling) Extract clamp into a leaf module by @JoshuaKGoldberg in #116855
    (scm) Pass timeouts through the internal hybrid-cloud proxying by @cmanallen in #117098
    (scm-multi-platform-detetion) Adding metrics for single platform detector. by @Abdkhan14 in #117060
    (scraps) Rename CompactSelect grid prop to mode by @natemoo-re in #117454
    (sdk) Bump JS SDK to 10.57.0 and migrate to dataCollection by @cleptric in #117169
    (seer-activity) Update the data condition endpoint, revert-revert by @leeandher in #116721
    (seer-infra-telemetry) Create a feature flag to gate third-party infra telemetry providers by @shashjar in #117458
    (sentry apps, webhooks) Remove unused flags by @ceorourke in #116713
    (sentry-apps) Tighten sentry_app_details + installation_details to Response[T] by @azulus in #117095
    (settings) Migrate project issue grouping form to scraps form by @priscilawebdev in #116465
    (snapshots) Add diff mode snapshots for toolbar by @mtopo27 in #117114
    (source-maps) Point source map debug at the canonical endpoint by @cvxluo in #116691
    (span consumer) Use new reference to transaction name by @lobsterkatie in #116646
    (span-flusher) Remove script-exists option check by @cmanallen in #117679
    (stats) Remove barMinHeight from usage chart bars by @priscilawebdev in #116762
    (stories) Extract for re-use in stories by @ryan953 in #117614
    (taskbroker) Migrate ingest-profiles devenv to new config format by @untitaker in #116758
    (teams) Remove deprecated callback-based joinTeam function by @sentry in #117625
    (tracemetrics) Use useEffectEvent for restoring equation mode state by @narsaynorath in #117685
    (txn-summary) Remove old (pre-EAP) transaction summary by @mjq in #116720
    (utils) Move issue-tag query helpers out of the utils barrel by @JoshuaKGoldberg in #116807
    (vercel) Replace legacy configure view with the pipeline redirect by @evanpurkhiser in #116857
    (workflow_engine) Tighten access checks on open periods endpoint by @JoshFerge in #116062
    Fix up pnpm-lock.yaml from bad merge; enable oxfmt's --no-error-on-unmatched-pattern by @JoshuaKGoldberg in #117691
    Remove legacy upgrade request page by @noahsmartin in #117597
    Replace am2/3 checks with capability checks by @noahsmartin in #117565
    Bump sentry-protos 0.28.0 by @armcknight in #117579
    Replace isEnterprise frontend check with backend field by @noahsmartin in #117563
    Remove support for admin provisioning of non-am plans by @noahsmartin in #117546
    Register an empty service worker by @ryan953 in #117470
    Add new feature-flag definition organizations:api-fetch-v2 by @ryan953 in #117471
    Remove frontend for grace period by @noahsmartin in #117492
    Delete system.logging-format by @joshuarli in #117465
    Bump taskbroker-client to 0.18.6 by @getsentry-bot in #117447
    Link colocated stories when a component file changes by @evanpurkhiser in #117438
    Bump sentry-protos 0.27.1 by @brendanhsentry in #117425
    Post story preview links on PRs that change stories by @evanpurkhiser in #117309
    Lint PUBLIC endpoints for typed return annotations by @azulus in #117356
    Bump taskbroker-client to 0.18.5 by @getsentry-bot in #117357
    Type final 4 PUBLIC endpoints, closing the Goal #1 gap by @azulus in #117280
    Type 3 preprod snapshot PUBLIC endpoints via cast() on pydantic .dict() by @azulus in #117278
    Type 8 Goal #1 PUBLIC endpoints (trace, profiling, replay, releases) by @azulus in #117276
    Remove barely used tabs prop from SettingsPageHeader by @ryan953 in #117266
    Type 9 more PUBLIC endpoints incl. multi-shape & drift cases by @azulus in #117268
    Update imports of ApiQueryKey to read from apiQueryKey.ts instead of queryClient by @ryan953 in #117254
    Type 12 PUBLIC endpoints via local error TypedDicts and serializer typing by @azulus in #117252
    Update imports of QueryKeyEndpointOptions by @ryan953 in #117253
    Type 14 PUBLIC core/workflow/repo endpoints by @azulus in #117248
    Upgrade to devservices 1.4.1 by @joshuarli in #117244
    Type 16 PUBLIC endpoints via typed-variable + existing TypedDicts by @azulus in #117237
    Type PUBLIC monitor get/put endpoints via mixin by @azulus in #117235
    Extend length of repository.name by @markstory in #117205
    Ty

    Original source
  • Similar to Sentry with recent updates:

  • Jun 12, 2026
    • Date parsed from source:
      Jun 12, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    Better, faster, less wrong: Enhancing issue grouping

    Sentry improves AI-powered issue grouping with a new v2 model that cuts duplicate issues, halves incorrect merges, and runs faster with lower GPU and database overhead. It’s live for all customers and rolled out seamlessly with zero reported regressions.

    Sentry’s job is to tell you when your app breaks. To do that, we group individual errors into issues. First by fingerprinting, which lexically matches errors based on their structure, then by an AI fallback: when fingerprinting can’t find a match, an ML model compares the new error’s stacktrace against existing issues and merges it if they’re semantically similar. We recently upgraded the model, preventing 20% more duplicate issues from being created while halving the rate of incorrect merges.

    AI-powered issue grouping is enabled by default and live for all Sentry customers.

    What makes grouping hard

    We talked about v1 of AI grouping in Using a transformer-based text embeddings model to reduce Sentry alerts by 40% and cut through noise.

    A good grouping algorithm minimizes both undergrouping and overgrouping. Minimizing undergrouping means Sentry isn’t spamming your feed with new issues for the same underlying problem. Minimizing overgrouping means Sentry always tells you about new categories of errors your app is experiencing. Striking the right balance between these can be tricky and subjective.

    Overgrouping is arguably the more sinister failure mode. When Sentry incorrectly merges an error into an issue, we’re hiding a problem that should be addressed by a different work stream; this error may have a different priority, root cause, and fix.

    To demonstrate how easy it is to mess this up, here’s a real example of 2 nearly identical stacktraces from the Sentry repo that have distinct root causes:

    Stacktrace A

    ReadTimeoutError / TimeoutError
    autofix.py::generate_summary_and_run_automation
    issue_summary.py::get_issue_summary → _generate_summary
    → run_automation → get_autofix_state

    <-- diverges here

    utils.py::make_get_autofix_state_request
    signed_seer_api.py::make_signed_seer_api_request → urlopen

    Stacktrace B

    ReadTimeoutError / TimeoutError
    autofix.py::generate_summary_and_run_automation
    issue_summary.py::get_issue_summary → _generate_summary
    → run_automation → get_and_update_group_fixability_score

    <-- diverges here

    issue_summary.py::_generate_fixability_score
    signed_seer_api.py::make_signed_seer_api_request → urlopen

    Both errors are timeouts from the Seer Autofix feature and share the same request path. The needle in the haystack is in two stacktrace frames. The first timeout is from the get_autofix_state flow: a DB query that’ll run on a standard web server. The second timeout is from the _generate_fixability_score flow: an ML model call that’ll run on a GPU server through a separate connection pool with a 2x higher timeout threshold. Improving client-side and server-side handling of these requests entails independent work. Yet the v1 model merges these errors into a single issue. The v2 model separates them.

    Grouping stacktraces is a nuanced task, not the kind that embeddings APIs are trained to handle. The heavyweight gemini-embeddings-2 model, for example, flops on our task. While Jina AI’s code embeddings model was accurate and efficient for v1 of AI grouping, we knew we could do better than anything off the shelf. We’re sitting on a trove of production stacktraces, plus two years of v1 failure modes the team has internalized as tribal knowledge. LLMs let us apply that knowledge at scale through a labeling algorithm we ran on hundreds of thousands of stacktraces. The v2 model is trained on those labels and has been powering AI grouping since April.

    Here’s how v2 is doing in production

    We’re making fewer issues

    AI grouping is preventing 70% of all new issues from being created, up from 50% before we started rolling out v2 on April 22. Among 3,800 large Sentry projects (projects ingesting at least 100 new issues/day with stable error volume before and after v2), 18% saw their rate of AI-prevented issues double since v2.

    Overgrouping has been cut in half

    v1’s overgrouping rate, or its rate of incorrect merges, is 8%. While this number doesn’t sound terrible in the aggregate, the kicker is that the v1 model has a tendency to overgroup errors from certain platforms. Platform biases can significantly harm the Sentry experience at the project level. In a small but focused exploration, we found projects whose v1 overgrouping rates ranged from 30% to 60%. It’s not uncommon to find issues in these projects that are bloated with errors representing many distinct root causes.

    v2’s overgrouping rate is 4%, and is low across all platforms. All projects in the cohort above now overgroup 2-15% of the time while maintaining or improving on v1 merge rates.

    v2 improves across every platform where v1 significantly overgrouped. Merge rate is the fraction of new errors which are merged into an existing issue. The overgrouping rate is the fraction of these merges which are incorrect; the error is in an issue that it doesn’t truly belong to.

    How we trained v2

    Sampling and labeling data were, by far, the most critical parts of our training pipeline. We sampled stacktraces from hundreds of consenting Sentry projects, selecting for a wide variety in project merge rates and stacktrace lengths, and partially stratified by platform to counter Sentry’s majority JavaScript makeup. We also increased sample weights for stacktrace pairs that were closer to the v1 model’s decision boundary, based on the hypothesis that these pairs are the ones where a successor stands to gain the most.

    We labeled the data by prompting Claude Sonnet 4.5 with a thinking budget of 1,024 tokens. The prompt was carefully iterated to follow Sentry’s guidelines around issue grouping, including weighing the error’s underlying cause over surface-level semantics. We measured the prompt’s accuracy against expert-labeled stacktrace pairs from internal Sentry projects. The expert labelers were Sentry’s grouping czars: employees who have mulled over stacktrace similarity for years. We err on the side of avoiding overgrouping in our own labels and instructed Claude to do the same.

    We then trained lightonai/modernbert-embed-large on these labeled stacktrace pairs. The training data contains hundreds of thousands of pairs of stacktraces ranging from 10 to 8192 tokens. Most training runs tested genuine improvement ideas. Some runs were for the love of the game. A couple of unique training choices are that we use a loss function from 2005, group the dataloader’s scan order to deduplicate forwards passes, and we do something funny with DDP after losing an afternoon failing to install flash-attn for varlen. Our findings, including interesting experiments that did not yield improvements, are documented in the grouping-trainer repo.

    Since we were running experiments in parallel to eke out accuracy, we built some baby training infra to reduce headaches induced by GPU stockouts. We’ve gotten up to 20 L4, A100, and H100 GPUs going at the same time (a modest fleet for a team of our size), and all running within 30 minutes of being triggered.

    Our training, offline eval, and baby infra code is available at getsentry/grouping-trainer.

    On the evaluation side, we now measure overgrouping in production. Overgrouping has been a silent but deadly failure mode in the past. Uncovering it used to require manually scrutinizing merged issues in the UI based on customer reports. Today, we have a pipeline that can batch-label 1000s of merged issues from a SQL query.

    Modernizing v2 inference

    We also upgraded the v2 model’s inference to reduce its overhead on Sentry’s ultra-hot error ingestion path. AI grouping v2 is 6x faster than v1, uses less GPU memory, and saves hundreds of GBs of DB space.

    The most impactful modernization is embedding truncation. Because the v2 model is trained via Matryoshka Representation Learning, truncating v2 embeddings from 768 dimensions to 64 sacrificed just 2% in accuracy while reducing p50 HNSW lookup times by 4x, p50 insertion times by 20x, and pgvector DB storage by 12x.

    We also run the model in bfloat16 and enabled PyTorch’s SDPA to get an easy inference speedup and eliminate CUDA OOMs in production. These changes are a one-liner thanks to Hugging Face:

    model = SentenceTransformer(
      "lightonai/modernbert-embed-large",
      model_kwargs={"dtype": torch.bfloat16, "attn_implementation": "sdpa"}
    )
    

    Finally, we compiled the model to fit our latency-sensitive + plain PyTorch server setup, reducing p50 model inference latency by almost 3x compared to no compilation. In case you have a similar setup and a long-tailed token distribution, we benchmarked this CUDA graph compilation strategy and made it available on GitHub.

    All of these changes were stress-tested offline by running them through a load test that closely mimics production: start with a pgvector DB backfilled with real projects’ stacktraces, and concurrently send the app real, new stacktraces from those projects.

    How we’ve enabled seamless model upgrades

    Upgrading ML models for stateless inference is conceptually simple: load in the new model and serve it. AI grouping is far from stateless: it inserts embeddings at a rate proportional to issue creation, and stores this data for up to 90 days. Naively replacing the v1 model with the v2 one would cause a massive surge in new issues, as v2 has nothing in the database to match against. This meant we needed to ship the new model and backfill its embeddings without hurting the customer experience.

    We considered a full backfill (like v1, which took months), waiting 90 days to accumulate v2 embeddings before switching, or going live with v2 immediately and falling back to v1 whenever v2 doesn’t have enough data. We went with option 3: customers get v2’s benefits from day one, and v2 can only improve on v1’s decisions, never undo them.

    The mechanism hinges on two parameters we added to Seer’s grouping API: model and training_mode. When a project is opted into v2 via a feature flag, Sentry sends stacktraces to Seer with model=v2. Seer searches the v2 embedding space first; if it comes up empty, it falls back to v1.

    There’s a subtlety, though: Seer uses threshold-gated indexing, which means embeddings are only stored when no sufficiently close match already exists in the index. This keeps the HNSW graph compact and improves search efficiency: since we only need any match within the threshold rather than the true nearest neighbor, a sparser graph with bounded edges (m=16) is all we need. The consequence, however, is that v2’s corpus would only grow from genuinely new events, leaving existing groups without v2 representations.

    That’s where training_mode comes in. For group hashes that were previously only sent under v1, Sentry fires a request with training_mode=true. Seer stores the v2 embedding but returns no grouping result, which bypasses near-duplicate suppression to deliberately backfill the index. This populates v2’s database in real time, piggybacking on live traffic instead of running a separate job.

    We rolled out project by project, starting internally. The entire migration took about 6 weeks with zero customer-reported regressions. And the infrastructure is reusable. If we train a v3 tomorrow, the upgrade path is the same: add a column, flip a flag, and let the fallback chain handle the transition.

    What’s next?

    Labeling more data and finetuning a much bigger model will help. A more interesting line of research is to improve the model’s input. Today, the model only looks at the error’s stacktrace. A smarter model should be able to use signals attached to the error on ingestion, e.g., the transaction and variable values. Going a step further, what if Sentry accumulated knowledge about your app and attached relevant context dynamically: what’s the higher-level purpose of a transaction, how do downstream users experience an error? We’re currently exploring this context accumulation problem through Seer.

    In the meantime, v2 will be chugging along, routing your stacktraces to the right issue.

    Original source
  • Jun 11, 2026
    • Date parsed from source:
      Jun 11, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    Catch visual regressions with Snapshots, now in beta

    Sentry launches Snapshots in beta, bringing screenshot diffing in CI to catch unintended visual changes and block PRs when visuals change. It works on any frontend platform and adds a lightweight guardrail for better visual testing and faster verification.

    TL;DR

    Sentry Snapshots is in beta. Get screenshot diffing in CI to catch unintended visual changes. Works for any platform with a frontend. Read the Snapshots docs to get started.

    Sentry Snapshots diffs screenshots on every commit and blocks the PR if there are any visual changes so you can confirm they’re intentional. Users don’t interact with code, they interact with something they can see and touch. Snapshots gives you a lightweight way to test it.

    It’s easier than ever to change code. It’s also easier than ever to trade quality for speed. Modern codebases need guardrails to ensure correctness. Our goal with Snapshots is to be a check for your code and a resource to improve your workflow.

    What is snapshot testing

    The core flow of snapshot testing is simple:

    1. Make a code change
    2. Generate screenshots of your application
    3. Compare those screenshots against a baseline
    4. Surface any changes

    In Sentry Snapshots, you upload screenshots, we diff them, then post in the PR if there are any diffs.

    You can then jump into the UX to see what exactly those changes are:

    This simple workflow adds an axis of visual coverage. Test your application looks as expected in different themes, languages, or viewports. Snapshot testing validates that you’re not changing more than intended.

    How Sentry Snapshots works with agents

    Snapshot testing as it’s always existed, as a guardrail for visual changes, is especially helpful for agents. Maybe you have a haphazard prompt, agent makes a change, run snapshot testing, block PR if a change is detected.

    But Snapshots can also be an artifact that can be used by agents. Here’s a runthrough of how we recently used Snapshots to help make a visual change to Snapshots itself.

    The issue

    Multiple users gave similar feedback around our “Snapshot Toolbar”:

    • Being confused at the initial red “diff mask” on a snapshot
    • Wanting to hide the mask (this was already possible)
    • Wanting to change “diff” views, but not being sure how to

    Basically, we had discoverability issues for features that exist.

    Snapshots as context

    The first step was to increase our coverage. We had some tests in place, but wanted to add screenshots for different active states in our component (there are slight differences depending on the active view):

    To add to our test, we obviously need to find where our test is.

    Sentry Snapshots lets you add context metadata to every image. This can be whatever you want and is designed to provide information to agents. In Sentry’s dogfooding of Snapshots, we pass a source_test_file, which is just a path to where the file is.

    To add more snapshot tests, all I had to do was copy-paste the metadata to an LLM and explain what I wanted to do:

    Find this snapshot test and add states for the different diff views

    {
    "display_name": "all controls @md",
    "group": "SnapshotsToolbar/light",
    "image_file_name": "static/app/views/preprod/snapshots/main/snapshotstoolbar-light-allcontrols-md.png",
    "width": 1984,
    "height": 90,
    "tags": {
    "area": "snapshots",
    "theme": "light",
    "viewport": "md"
    },
    "context": {
    "test_file_path": "static/app/views/preprod/snapshots/main/snapshotsToolbar.snapshots.tsx"
    }
    }
    

    If you have a good framework for writing snapshot tests, agents are very good at writing more, especially if you tell them exactly where to look. Here’s the new tests we produced (unique UI highlighted for example purposes):

    In this case, I was doing work related to snapshot tests so copy-pasting was easy, but this data is also available via the sentry-mcp and our REST API to use in other scenarios. I used the literal context prop to direct the agent, but you also have access to the produced images and diffs to pass in, which are a helpful reference for agents.

    Reviewing diffs from CI

    Our initial stab to improve discoverability was to show the active label. But this didn’t do as much as we wanted, specifically for the overlay mask.

    We passed in the link to the snapshot to the LLM:

    I want to make the color picker more noticeable, but it's still too subtle.
    Make it have a light border on dark theme and dark border on light theme:
    https://sentry.sentry.io/preprod/snapshots/299186/?selectedTypes=changed&selectedSnapshot=static%2Fapp%2Fviews%2Fpreprod%2Fsnapshots%2Fmain%2Fsnapshotstoolbar-dark-allcontrols-sm.png

    This triggered the agent to use the sentry-mcp to get the snapshot resource, including:

    • Base image
    • Head image
    • Diff mask
    • Metadata

    The agent easily made the change. Realistically, this simple change probably could have done without the resource, but the screenshot data + context metadata provides context specific to the task. The context includes narrowed screenshot data, as well as your local PR information. This is a repeatable, programmatic way of hitting your LLM with a screenshot + “do the thing.”

    Snapshots as local verification

    To finish the loop, we need our agent to be able to produce and diff snapshots. Producing snapshots is bespoke to the repo. The sentry-cli lets you download the baseline images and diff your local set against them. We can have our agent do the diffing and then expose the results to us (or if you also like to live dangerously, have the LLM judge and commit if it looks intended).

    The local flow is roughly:

    # 1. download base
    sentry-cli snapshots download --app-id {your-id} --branch {main}
    # 2. generate snapshots locally
    # 3. diff snapshots
    sentry-cli snapshots diff ./snapshots-base path-to-local --fail-on-diff --selective
    

    This can be useful independent of an agent, but you can also have your agent do this as part of the pre-commit process or in a prompt.

    The local diff is exactly as expected. We pushed up the new commit, where Snapshots in CI also flagged the diff. We approved, merged, and voila:

    This was a simple change, but it’s easy to see how all of these workflows can be extended. Snapshots can be used as hyper-relevant context, which your agent can query against, make changes, and run verification loops locally.

    For full reference, read our local testing documentation.

    Snapshot testing isn’t perfect

    Snapshot testing is not for everyone, nor is it a good fit for every repo. There is a non-zero chance you’ve read this far out of anger, seething to yourself that snapshot testing is a useless PITA. It can be more trouble than it’s worth to produce good screenshots. You may have fought with managing “goldens” or git-lfs in the past.

    We agree, which is why we first built Snapshots at Emerge Tools. Our original Snapshots product focused on mobile apps and abstracted all the painful parts away and was used by companies like OpenAI to build out ChatGPT and Codex. Sentry Snapshots takes what we thought worked well and extends the functionality to any platform.

    It might be true that your code is not easy to snapshot; we’re in the midst of improving how we use Snapshots at Sentry ourselves. But we’ve seen how effective a snapshot testing workflow can be and are excited to keep building it out.

    Getting started with Snapshots

    Sentry’s motto is “code breaks, fix it faster.” Snapshots is a step to prevent it from breaking at all.

    Snapshots is now available in beta for all users. There are recommended workflows for iOS and Android to go from Previews to Screenshots (the iOS repo was recently highlighted as part of Codex’s new iOS functionality). You can use Snapshots on any platform with a frontend.

    Have questions or feedback?

    New to Sentry?

    • Try Sentry for free
    Original source
  • Jun 2, 2026
    • Date parsed from source:
      Jun 2, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    26.5.2

    Sentry ships a broad release packed with admin billing tools, expanded API docs endpoints, Autofix and Seer improvements, richer conversations and issue search, plus dynamic sampling, repository auto-linking, and many stability fixes across the product.

    New Features ✨

    Admin

    • Filter invoice comparison to both-sides orgs + parity metric by @armcknight in #116420
    • Add Billing Platform admin page with invoice comparison by @armcknight in #116269

    Api

    • Union response annotations with plugin narrowing + relaxed linter by @azulus in #116659
    • Add [T] to 33 Serializer subclasses by @azulus in #116629
    • Add Serializer[T] generic; pilot on environments by @azulus in #116538
    • Opt 43 endpoints into Response[T] typed bodies by @azulus in #116433
    • Type @extend_schema responses via Response[T] stub + linter by @azulus in #116335

    Api Docs

    • Publish source map debug endpoint by @cvxluo in #116649
    • Publish organization profile chunks endpoint by @cvxluo in #116632
    • Publish organization trace endpoint by @cvxluo in #116596
    • Publish project profiling profile endpoint by @cvxluo in #116597
    • Publish organization profiling flamegraph endpoint by @cvxluo in #116449
    • Publish group hashes endpoint by @cvxluo in #116029
    • Publish event attachment details endpoint by @cvxluo in #116580
    • Publish organization trace meta endpoint by @cvxluo in #116445
    • Publish event attachments list endpoint by @cvxluo in #116536
    • Publish project releases list endpoint by @cvxluo in #116220
    • Publish organization trace item attributes endpoint by @cvxluo in #116398
    • Publish project debug files list endpoint by @cvxluo in #116444
    • Publish group details endpoint by @cvxluo in #116119

    Autofix

    • Allow retry creating PR by @Zylphrex in #116518
    • Link linear ticket in autofix PR by @Zylphrex in #116510
    • Add Seer Agent debug button to Autofix header by @sentry-junior in #116166

    Bitbucket Server

    • Route install through API pipeline modal by @evanpurkhiser in #116314
    • Add frontend pipeline steps for Bitbucket Server integration setup by @evanpurkhiser in #116294
    • Add API-driven pipeline backend for Bitbucket Server integration setup by @evanpurkhiser in #116295

    Cells

    • Use control silo organization listing for setup wizard by @lynnagara in #116423
    • Implement owner=1 on control silo org listing by @lynnagara in #116439
    • Remove cross-org feature gating from quota notifications by @lynnagara in #115937

    Conversations

    • Add conversation ID to freeform search suggestions by @obostjancic in #116568
    • Update default search hints for AI conversations by @obostjancic in #116561
    • Improve freeform search to target conversation fields by @obostjancic in #116562
    • Expand JSON with higher auto-collapse limit in messages panel by @obostjancic in #116368

    Dynamic Sampling

    • Per-org transaction rebalancing by @constantinius in #116475
    • Add project rebalancing to per-org pipeline by @shellmayr in #116393
    • Add sliding window calculation to per-org by @shellmayr in #116083
    • Add per-org EAP transaction volume query by @constantinius in #115161

    Eslint

    • Add css interpolation semi rule by @scttcper in #116428
    • Add no-raw-css-in-styled rule by @scttcper in #115934
    • Add prefer-info-text lint rule and migrate existing usages by @TkDodo in #116211

    Explore

    • Promote schema hints removal from now-done logs to remaining pages by @JoshuaKGoldberg in #116224
    • Switch feature flag from ourlogs- to explore-schema-hints-removal by @JoshuaKGoldberg in #116225
    • Space out heat maps y-axis labels by @nikkikapadia in #116341

    Issues

    • Add issue.agent search filter by @malwilley in #116584
    • Add pretty rendering for Android Runtime (ART) event context by @markushi in #116270
    • Extend event context formatters for mobile SDKs by @markushi in #116273
    • Restore issue details tour, remove guide by @scttcper in #116355
    • Refine low-value span configuration UI by @ArthurKnaus in #116460
    • Fully enable recording of Seer actions as issue activities (with option) by @shashjar in #116424
    • Use shared markdown component for activity notes by @scttcper in #116300
    • Consolidate user feedback activity styles by @scttcper in #116318

    Jira

    • Wire Marketplace installs through the API pipeline modal by @evanpurkhiser in #116525
    • Support installing through the API pipeline modal by @evanpurkhiser in #116500

    Msteams

    • Wire Teams Marketplace installs through the API pipeline modal by @evanpurkhiser in #116488
    • Support installing through the API pipeline modal by @evanpurkhiser in #116490

    Ourlogs

    • Add truncate RPC parameter for logs events query by @JoshuaKGoldberg in #116008
    • Add tab click tracking for Logs and Traces explore tabs by @JoshuaKGoldberg in #115748
    • Use truncate parameter in page-level logs requests by @JoshuaKGoldberg in #116009

    Preprod

    • Fix snapshot tag filtering and make tags interactive by @mtopo27 in #116330
    • Add structured tags to snapshot test metadata by @mtopo27 in #116307

    Repositories

    • Backfill auto-link repos by name matching by @wedamija in #116541
    • Auto-link repos to projects by name matching by @wedamija in #116533

    Seer

    • Gate structured context routes on rollout flag by @Mihir-Mavalankar in #116605
    • Add flag to roll out structured page context to all orgs by @Mihir-Mavalankar in #116600
    • Remove stale feature flag organizations:seer-agent-pr-consolidation by @cvxluo in #116438
    • Add structured LLM context for metrics and profiling explorer page by @Mihir-Mavalankar in #116250

    Workflow Engine

    • Update delayed processing and add evaluation logs by @saponifi3d in #115692
    • Implement Seer Activity handler by @leeandher in #116410

    Other

    • (activity) Add (project, type) index on sentry_activity by @malwilley in #116524
    • (apidocs) Support union Response[T] annotations in structural linter by @azulus in #116496
    • (cmdk) Add search keywords to reduce no-result queries by @JonasBa in #116431
    • (dashboards) Track dashboard generation validation attempts by @DominikB2014 in #116502
    • (discord) Wire App Directory installs through the API pipeline modal by @evanpurkhiser in #116429
    • (eap) Add superuser debug param to trace item attributes by @mjq in #116579
    • (flagpole) Register onboarding-scm-project-creation-experiment feature flag by @jaydgoss in #116189
    • (github-enterprise) Route install through API pipeline modal by @evanpurkhiser in #116316
    • (ingest) Allow custom global inbound filter by @oioki in #116685
    • (issue-details) Enable Autofix for low-value spans by @ArthurKnaus in #116468
    • (loader) Add pride loader by @natemoo-re in #116348
    • (markdown) Add tag extension by @natemoo-re in #116504
    • (night-shift) Be more conservative about which issues get autofixed by @chromy in #116476
    • (onboarding) Add ScmAnalyticsFlow for project-creation reuse by @jaydgoss in #116434
    • (replays) Add superuser replay debugger dropdown option by @billyvg in #116391
    • (scm) Add github_enterprise support to SCM Platform RPC dispatch by @tnt-sentry in #116193
    • (scraps) RevealOnHover compound component by @natemoo-re in #115953
    • (seer explorer) Add unread message count to the tab icon by @sehr-m in #114071
    • (seer-activity) Set up the new Seer Activity data condition by @leeandher in #116506
    • (settings) Support legacy usage-based Seer in project settings endpoint by @srest2021 in #115962
    • (skills) Add analytics instrumentation skill by @natemoo-re in #116437
    • (snapshots) Add viewport width support to snapshot testing framework by @mtopo27 in #115887
    • (trace) Add debug param to trace item details endpoint by @mjq in #116151
    • (trace-waterfall) Add "EAP JSON" debug button for superusers by @mjq in #116131
    • (utils) Add shuffle option to CursoredScheduler by @roggenkemper in #116297
    • (waterfall) Add visual indication for SDK-sent v2 spans by @Lms24 in #116386
    • (webhooks) Add REST API endpoint for webhook URL management by @Christinarlong in #115861
    • Add KAFKA_TOPIC_CONSUMER_CONFIG for per-topic consumer config by @enochtangg in #116611
    • Reorder get topic to resolve override before lookup by @enochtangg in #116337
    • Remove code coverage feature by @calvin-codecov in #116240
    • Install sentry-options by @joshuarli in #115835

    Bug Fixes 🐛

    Aci

    • Remove openIssues from Detector serializer response by @ceorourke in #116414
    • Scope rule workflow lookups by organization by @kcons in #116353

    Api Logs

    • Log snuba throttle_threshold on rate-limited requests by @cvxluo in #116338
    • Preserve snuba policy info on throttles by @cvxluo in #116263

    Eap

    • Handle None exception data in event forwarding by @roggenkemper in #116544
    • Recognize normalize deprecations in attribute mapping by @mjq in #116509

    Feedback

    • Remove extra padding from LayoutGrid component by @sentry-junior in #116377
    • Make UserReport name and email nullable by @TkDodo in #116362

    Integrations

    • Hide the integration Settings tab when it is empty by @evanpurkhiser in #116688
    • Return the proper error response shape from the integration details POST endpoint by @malwilley in #116447
    • Use paginated jira projects endpoint in another place by @hobzcalvin in #116418
    • Use paginated jira projects endpoint, behind flag by @hobzcalvin in #116327

    Issues

    • Make linked issue metadata clickable by @scttcper in #116583
    • Read low-value span evidence as camelCase by @ArthurKnaus in #116557

    Logs

    • Go back to prefetch query by @k-fish in #114893
    • Pass timestamp to trace item details by @nsdeschenes in #116374

    Metrics

    • Pass timestamp to trace item details by @nsdeschenes in #116315
    • Skip tag validation when deleting Snuba subscriptions by @wedamija in #116325

    Preprod

    • Document latest base project slug filter by @cameroncooke in #116102
    • Balance padding on active tag filter chips by @NicoHinderling in #116417
    • Enforce project access for artifact endpoints by @cameroncooke in #116381
    • Pre-filter latest base snapshot query by project access by @NicoHinderling in #116319

    Replays

    • Query canonical replay id in trace tab by @romtsn in #116432
    • Scope issue.id group lookup to caller's accessible projects by @JoshuaKGoldberg in #116188
    • Stop page reloads on initial tab change by @nsdeschenes in #116494

    Workflows

    • Rule deletion shouldn't automatically result in Workflow deletion by @kcons in #116537
    • Update Workflows with org-scoped envs when transfered with a project by @kcons in #116239

    Other

    • (alerts) Fall through to issue alert handler by @ceorourke in #116241
    • (api) Rename duplicated event reprocessable URL by @cvxluo in #116395
    • (api-docs) Improve flamegraph endpoint description by @cvxluo in #116633
    • (autofix) Set default stopping point based on preferences by @Zylphrex in #116340
    • (ci) Revert parallel devservices startup for backend tests by @mchen-sentry in #116648
    • (conversations) Use 24h statsPeriod on detail page back link by @obostjancic in #116361
    • (dashboards) Move global filter loading spinner to dropdown footer by @DominikB2014 in #116342
    • (data-scrubbing) Stop source field suggestion scroll from crashing by @scttcper in #116653
    • (discord) Route App Directory install through API pipeline modal by @evanpurkhiser in #116375
    • (discover) Link issue event ids directly by @scttcper in #116507
    • (dynamic-sampling) Exclude zero-volume projects from project balancing by @shellmayr in #116572
    • (events) Don't default the seer referrers by @wmak in #116704
    • (eventstream) Guard against None entries in exception values list by @roggenkemper in #116511
    • (explore) Y-axis formatting decimal truncation for heatmaps by @nikkikapadia in #116144
    • (forms) Surface backend error messages in AutoSaveForm by @malwilley in #116448
    • (grouping) Fix hostname regex bugs, take 2 by @lobsterkatie in #116587
    • (heatmaps) Very small y-axis values turning into engineering notation and throwing errors by @nikkikapadia in #116421
    • (jest) Exclude scripts/ from discovery and module resolution by @armcknight in #116413
    • (low-value-spans) Use project platform for snippets by @ArthurKnaus in #116675
    • (oauth) Use hashed token lookup and reject tokens for inactive users by @michelletran-sentry in #116323
    • (options) Suppress option seen logs in debug mode by @JoshFerge in #116324
    • (ourlogs) Stabilize ECharts chart position to prevent getAttribute crash by @JoshuaKGoldberg in #115753
    • (pageFilters) Sort bookmarked projects above non-member projects by @JonasBa in #116196
    • (project-filter) Increase bottom margin by @cvxluo in #116328
    • (releases) Combine duplicate Author type by @cvxluo in #116358
    • (scm) Map unknown referrer to shared by @cmanallen in #116403
    • (search-query-builder) Add dynamic fetching to has by @nsdeschenes in #116097
    • (seer) Fix font color and link position in autofix project settings by @ryan953 in #116602
    • (segment-enrichment) Propagate conventional user attributes by @mjq in #116492
    • (settings) List all projects in context picker instead of default 1st page by @hobzcalvin in #116072
    • (snapshots) Increase snapshot test timeout to 30s by @mtopo27 in #116378
    • (spans) Deprecations shouldn't shadow public field names by @mjq in #116387
    • (theme) Update config.theme when mutating user theme option by @TkDodo in #116336
    • (trace-item-details) Allow timestamp by @wmak in #116321
    • (trace-waterfall) Pass timestamp to trace item details by @nsdeschenes in #116376
    • (traces) Downgrade Group.DoesNotExist log to info in trace serialization by @wedamija in #116322
    • (webhooks) Check webhooks:enabled in new webhook path by @Christinarlong in #116459
    • Trigger ad-hoc explorer index runs by @shruthilayaj in #116530

    Internal Changes 🔧

    Aci

    • Remove usage of workflow engine redirect flag by @ceorourke in #116609
    • Update alerts:write settings toggle label to include reference to monitors by @malwilley in #116313

    Api

    • Mark prompts-activity as private by @cvxluo in #116702
    • Rename SourceMapDebugBlueThunderEdition to SourceMapDebug by @cvxluo in #116619
    • Remove unused source-map-debug endpoint by @cvxluo in #116594
    • Remove experimental/projects backward-compat shim by @betegon in #116498
    • Remove unused events-trace-light endpoint by @cvxluo in #116519
    • Remove stale entries from api ownership and publish status by @cvxluo in #116400
    • Promote org-scoped project creation endpoint to public by @betegon in #116333

    Api Docs

    • Add EventAttachmentSerializerResponse type and example by @cvxluo in #116515
    • Add DebugFileSerializerResponse type and example fixture by @cvxluo in #116397

    Ci

    • Skip type coverage comment if there is no change by @shellmayr in #116672
    • Skip broken trace item detail tests by @kenzoengineer in #116497

    Codecov

    • Remove auto_enable_codecov daily job by @giovanni-guidini in #116570
    • Remove GitHub Codecov account-link hooks by @giovanni-guidini in #116569
    • Remove stacktrace-coverage endpoint and codecovAccess setting by @giovanni-guidini in #116565
    • Remove Prevent API endpoints and routes by @giovanni-guidini in #116559

    Deps

    • Bump js-cookie from 3.0.5 to 3.0.7 by @dependabot in #116057
    • Update sentry-conventions to 0.10.0 by @mjq in #116517

    Dynamic Sampling

    • Document config types and simplify dir structure by @shellmayr in #116462
    • Only run sliding window calculations when config is enabled by @shellmayr in #116371
    • With multiple org volumes, make sure their duration is clear in scheduler by @shellmayr in #116367

    Explore

    • Remove raw search replacement flag checks by @nsdeschenes in #116590
    • Port schema hints list to scraps by @priscilawebdev in #116159

    Flags

    • Remove organizations:processing-error-analytics by @wedamija in #116643
    • Remove organizations:workflow-engine-redirect-opt-out by @wedamija in #116641
    • Remove organizations:seer-slack-explorer by @wedamija in #116639
    • Remove organizations:search-query-builder-raw-search-replacement by @wedamija in #116638
    • Remove organizations:insights-alerts by @wedamija in #116223

    Forms

    • Migrate RequestIntegrationModal to TanStack form system by @priscilawebdev in #115990
    • Migrate CreateTeamForm to TanStack form system by @priscilawebdev in #115991

    Github Enterprise

    • Remove legacy pipeline setup views by @evanpurkhiser in #116436
    • Remove fully-GA github.com source flag checks by @tnt-sentry in #116385

    Integrations

    • Remove organizations:integrations-github-project-management by @cvxluo in #116551
    • Drop the external-install React route by @evanpurkhiser in #116426
    • Redirect GitHub installs straight to the link page by @evanpurkhiser in #116412
    • Clean up integrationOrganizationLink by @evanpurkhiser in #116415
    • Extract GitHub installation callout from org link view by @evanpurkhiser in #116379
    • Reorganize pipeline components into per-provider folders by @evanpurkhiser in #116334

    Issues

    • Add fallback event components codeowner by @scttcper in #116505
    • Rename feature flag to be specific to displaying Seer actions as issue details activities by @shashjar in #116425
    • Minor cleanup of boolean logic in escalating issue algorithm by @shashjar in #116453
    • Remove streamline names from issue details by @scttcper in #116344

    Logs

    • Add superuser only log json debug button by @Dav1dde in #116482
    • Update trace item timestamp expectations by @nsdeschenes in #116405

    Onboarding

    • Update project creation URL to /organizations/{org}/projects/ by @betegon in #116388
    • Decouple SCM step components from OnboardingContext by @jaydgoss in #115639

    Repositories

    • When making a ProjectRepository link, upgrade the source if we have a stronger signal by @wedamija in #116543
    • Mark project repo endpoint as public by @wedamija in #116343

    Seer

    • Mark seer endpoints as private instead of experimental by @gricha in #116591
    • Remove organizations:seer-wizard by @cvxluo in #116546
    • Remove organizations:seer-issue-view by @cvxluo in #116528
    • Call project settings update helper in callsites that don't need to update the full Seer project preference by @srest2021 in #116356
    • Add GitLab code-review web hooks by @cmanallen in #116317
    • Unify Seer project settings update helper and add tuning and auto_create_pr fields by @srest2021 in #116352
    • Use get_group_list helper in supergroups-by-group endpoint by @giovanni-guidini in #116474
    • Get stopping point and handoff directly in callsites that don't need the full project preference by @srest2021 in #116222

    Settings

    • Migrate project security & privacy form to scraps form by @priscilawebdev in #116463
    • Remove service hooks forms and routes by @TkDodo in #116296

    Snapshots

    • Snapshot the snapshots toolbar by @mtopo27 in #116479
    • Resolve real design-system imports under SSR by @mtopo27 in #116478
    • Make the snapshots toolbar presentational and de-duplicate by @mtopo27 in #116477

    Snuba

    • Use metrics.timer instead of bespoke timer helper by @mrduncan in #115279
    • Use metrics.timer for get_snuba_map timing by @mrduncan in #116357
    • Re-enable boolean double-write tests by @phacops in #116390

    Spans

    • Improve flush cleanup coverage by @lvthanh03 in #116694
    • Move flushed segment cleanup into buffer store by @lvthanh03 in #116495
    • Move queue updates into spans buffer store by @lvthanh03 in #116435
    • Use full web vitals attribute strings by @mjq in #116135
    • Introduce spans buffer store abstraction by @lvthanh03 in #116382
    • Read deprecations from sentry-conventions by @mjq in #116399
    • Add loaded segment data model by @lvthanh03 in #116346

    Typing

    • Remove 9 zero-error modules from mypy ignore list by @shashjar in #116430
    • Remove sentry.services.eventstore.models from mypy ignore list by @shashjar in #116229

    Webhooks

    • Hide PLUGIN action type from available actions endpoint by @Christinarlong in #116458
    • Remove raise that short circuit url sending by @Christinarlong in #116534
    • Add legacy_webhook to the Plugin ActionType by @Christinarlong in #116454

    Other

    • (alerts) Disable alert buttons for users without write access by @malwilley in #116306
    • (apigateway) Use a threadlocal session for proxy requests by @JoshFerge in #116054
    • (assemble) Validate debug ids on assemble endpoint by @Dav1dde in #116283
    • (autofix) Remove the organizations:autofix-on-explorer feature flag by @chromy in #116165
    • (billing) Bumped sentry-protos version to 0.15.0 by @krithikravi in #116351
    • (billing-platform) Bump sentry-protos 0.21.0 by @brendanhsentry in #116539
    • (bitbucket-server) Remove legacy pipeline setup views by @evanpurkhiser in #116489
    • (cell) Renames proxy region metric tag to cell for clarity by @GabeVillalobos in #116402
    • (cells) Adds CellResolver, refactors ApiGateway to use them when special casing proxy requests by @GabeVillalobos in #116221
    • (codeowners) Reuse get_projects in associations endpoint by @giovanni-guidini in #116359
    • (conversations) Simplify conversation details endpoint by @obostjancic in #116087
    • (dashboards) Validate prebuilt widget layouts and lengths by @DominikB2014 in #116217
    • (eap) Make trace item attributes alias test less fragile by @mjq in #116545
    • (feature-flags) Remove organizations:insights-ai-and-mcp-dashboard-migration by @cvxluo in #116450
    • (inbound-filters) Add feature flag by @shellmayr in #116287
    • (ingest) Minor cleanup in issue occurrence ingestion logic by @shashjar in #116608
    • (issue-detection) Update badge for AI Issue Detection by @roggenkemper in #116311
    • (issueDetails) Migrate onDiscard to useMutation + fetchMutation by @sentry-junior in #116157
    • (jira) Replace legacy configure view with the pipeline redirect by @evanpurkhiser in #116574
    • (mcp-adoption-value-discovery) Adding utm source to mcp docs link by @Abdkhan14 in #116202
    • (metrics) Metric detail action menu tweaks by @nsdeschenes in #116292
    • (msteams) Replace legacy configure view with the pipeline redirect by @evanpurkhiser in #116520
    • (night-shift) Use default autofix model for night-shift runs by @chromy in #116469
    • (ourlogs) Switch logs pinning from context to a straightforward hook by @JoshuaKGoldberg in #116176
    • (rpc) Log from _make_rpc_request by @mjq in #116408
    • (scm) Remove /rate-limit endpoint from internal rate-limit computation by @cmanallen in #116471
    • (search-query-builder) Break up contexts by @nsdeschenes in #116126
    • (seer-grouping) Rm backfill url by @kddubey in #116253
    • (seer-slack) Remove unused flag by @leeandher in #116683
    • (slack) Remove assistant:write OAuth scope from Slack integration by @alexsohn1126 in #116567
    • (tempest) Squash migrations by @vgrozdanic in #116679
    • (timeSince) Migrate TimeSince to use InfoText internally by @TkDodo in #116369
    • (trace-items) Remove performance-sentry-conventions-fields by @mjq in #116392
    • (trace-waterfall) Drop deprecated aliases from trace meta endpoint by @cvxluo in #116514
    • (traces) Remove stale events-trace-light frontend references by @cvxluo in #116523
    • (utils) Small SafeRolloutComparator refactors by @lobsterkatie in #116257
    • (workflow-engine) Build out new registry for activities by @leeandher in #116200
    • (workflows) Dramatically more efficient DetectorGroup querying by @kcons in #116441
    • Devservices 1.4.0 by @joshuarli in #116700
    • Rollout semver-ordering-with-build-code by @ryan953 in #116622
    • Remove relay:measurements-smart-conversion feature by @loewenheim in #116615
    • Replace custom JEST_TEST_BALANCER env var with --testResultsProcessor by @ryan953 in #116661
    • Bump taskbroker-client to 0.18.0 by @getsentry-bot in #116630
    • Cleanup seer-config-reminder flag by @ryan953 in #116628
    • Fix log statement by @joseph-sentry in #116512
    • Bump taskbroker-client to 0.17.1 by @getsentry-bot in #116535
    • Bump taskbroker-client to 0.17.0 by @getsentry-bot in #116526
    • Delete unused options by @joshuarli in #116409
    • Type utils.signing.unsign return as Any by @evanpurkhiser in #116486
    • Add some logging by @shruthilayaj in #116481
    • Remove Email model by @markstory in #116245
    • Bump sentry-protos 0.17.0 by @brendanhsentry in #116456
    • Bump taskbroker-client to 0.16.0 by @getsentry-bot in #116411
    • Bump sentry-protos to 0.16.1 by @getsentry-bot in #116401
    • Delete plan migration frontend by @noahsmartin in #116331
    • Bump new development version by @sentry-release-bot[bot] in c9c46150

    Other

    • fix(cells) Hide US2 in customer facing dropdowns by @markstory in #116529
    • Remove organizations:scm-repositories-v2 by @cvxluo in #116555
    • Add new org suspension reason by @geoffg-sentry in #116616
    • Upgrade sentry-scm to 0.22.0 by @cmanallen in #116585
    • typing(release health): Remove sentry.release_health.metrics_sessions_v2 from mypy ignore list by @shashjar in #116442
    • 🐛 fix[gitlab]: add assignee sync diagnostics by @iamrajjoshi in #115356
    • feat(cells) Allow staff users to create orgs in hidden cells by @markstory in #116503
    • fix(cells) Add flag and display name for us2 by @markstory in #116513
    • Extract BoundedLRUCache into common utility module by @cmanallen in #116527
    • fix(typing) Remove sentry.db.postgres.base from ignore list by @markstory in #116493
    • deps(scm): Upgrade sentry-scm to 0.20.0 by @cmanallen in #116499
    • tracemetrics(perf): Add client_sample_rate to high-volume metrics by @k-fish in #116308
    • chore(typing) Fix typing errors in sentry.ratelimits by @markstory in #116310
    • revert changes to jest config from #116269 by @armcknight in #116416
    • chore(typing) Fix typing issues in relocations by @markstory in #116301
    Original source
  • May 27, 2026
    • Date parsed from source:
      May 27, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    26.5.1

    Sentry adds a wide release across Autofix, Seer, dashboards, issues, logs, snapshots, replays and webhooks, bringing new UI, analytics, search and workflow improvements plus many reliability fixes and platform cleanup.

    New Features ✨

    Apigw

    Expose proxy latency metrics by target by @gi0baro in #116086

    Add non-orgid/slug endpoints to proxied cell requests by @gi0baro in #115930

    Autofix

    Allow non seat based seer to skip setup in #116208

    Switch inspection to single llm call using gemini flas… by @Zylphrex in #116071

    Autofix introspection analytics by @Zylphrex in #115891

    Add UI labels for missing AutofixReferrer values by @chromy in #115655

    Render line numbers in autofix evidence by @Zylphrex in #115649

    Cells

    Remove cross-org feature gating from notification settings by @lynnagara in #115829

    Add cell-routing mode to devservices by @lynnagara in #115737

    Cmdk

    Add Open in Production and Open in Development actions in #116242

    Freeze visible action list during keyboard navigation in #115851

    Add project search action to command palette by @JonasBa in #115591

    Conversations

    Add copy conversation as markdown button in #116171

    Swap badge from alpha to beta by @obostjancic in #115712

    Add Amplitude analytics to conversation pages by @obostjancic in #115622

    Dashboards

    Add span-first support for web vital dashboard in #115882

    Validate display type against dataset config by @DominikB2014 in #115951

    Require metric_unit in AI tracemetrics aggregates by @DominikB2014 in #116101

    Teach AI dashboard generator the tracemetrics aggregate format by @DominikB2014 in #115480

    Explore

    Heatmap tooltip trace links by @nikkikapadia in #115925

    Link to aggregates from dropdown by @nsdeschenes in #115789

    Add Heat Map widget to Explore metrics by @gggritso in #115608

    Github Enterprise

    Add frontend pipeline steps for GHE integration setup in #114367

    Add API-driven pipeline backend for GHE integration setup in #114366

    Allow github.com as a source for the GitHub Enterprise integration by @tnt-sentry in #115599

    Issues

    Bring back SEER_PR_CREATED activity creation and hide from timeline in #116233

    Two-column activity icons, colors by @scttcper in #115958

    Unify issue activity streams by @scttcper in #115848

    Add activity feed v2 flag by @scttcper in #115966

    Consolidate activity comment input by @scttcper in #115824

    Replace DebugMeta store with context by @scttcper in #115842

    Low Value Spans

    Add configuration issue UI in #116271

    Add Snuba referrer for detector by @vgrozdanic in #115980

    Add low-value span issue UI by @ArthurKnaus in #115870

    Add low-value span issue type by @ArthurKnaus in #115868

    Onboarding

    Link selected repository to project after creation by @wedamija in #115761

    Update Hono onboarding with @sentry/hono by @s1gr1d in #115476

    Ourlogs

    Reduce modal export rows limit to 10k by @JoshuaKGoldberg in #116180

    Show estimated total dataset size in needle-in-haystack searches by @JoshuaKGoldberg in #115731

    Implement pinned logs with sticky header (part 1) by @JoshuaKGoldberg in #115102

    Add 'Group by attribute' to log property context menu by @JoshuaKGoldberg in #115420

    Preprod

    Display snapshot image tags in card headers in #115723

    Display images_skipped in snapshot table by @NicoHinderling in #116074

    Add images_skipped to builds API response by @NicoHinderling in #116073

    Display skipped images in snapshots UI by @NicoHinderling in #116041

    Expose is_selective flag in snapshot details API response by @NicoHinderling in #115832

    Add Snapshot status check rules API by @cameroncooke in #115621

    Search

    Add recommended sort option to issue stream dropdown in #116197

    Surface recommended sort in UI when active via query param in #116186

    Register feature flag for recommended issue sort by @roggenkemper in #116191

    Seer

    Add structured LLM context for replay list and detail pages in #116045

    Always show action buttons in explorer chat blocks by @ChrisandraVaz in #116049

    Add bulk Seer project connected repos endpoint by @srest2021 in #115942

    Add Seer project connected repo endpoint by @srest2021 in #115199

    Add structured LLM context for explore logs trace route by @Mihir-Mavalankar in #116036

    Add CRUD helpers for Seer project repos by @srest2021 in #115904

    Add structured LLM context for issue detail sub-tabs by @Mihir-Mavalankar in #115936

    Add bulk-project Seer settings endpoint by @srest2021 in #115234

    Add helper for bulk updating Seer project settings by @srest2021 in #115756

    Scope /conversations slash command lookup with start/end/project by @chromy in #115785

    Add single-project Seer settings endpoint by @srest2021 in #115230

    Add SeerRun FK to SeerNightShiftRun by @trevor-e in #115694

    Add SeerWorkflowConfig model and link to night shift runs by @trevor-e in #115615

    Mirror last_triggered_at to SeerRun on autofix triggers by @trevor-e in #115611

    Tracemetrics

    Include equations in Add to Dashboard by @narsaynorath in #116141

    Convert equation alias to full equation for queries by @narsaynorath in #116047

    Open in Explore for metrics dashboard widgets by @narsaynorath in #115805

    Lazy load trace details per metric by @nsdeschenes in #115066

    Webhooks

    Add dry run check to sentry app webhook path in #116265

    Add payload validation during dual-write migration in #116040

    Add metrics for legacy webhook migration validation by @Christinarlong in #116039

    Wire new service with feature-flagged routing by @Christinarlong in #115747

    Add standalone legacy webhook service module by @Christinarlong in #115688

    Register legacy webhook migration feature flags by @Christinarlong in #115669

    Other

    • (aci) Add sort param to workflow group history endpoint in #116031
    • (alerts) Add cleanup task to NotificationMessage in #116027
    • (amplitude) Track whether users are viewing sentry-built dashboards by @bcoe in #116138
    • (api-docs) Publish project event details endpoint in #116059
    • (apigateway) Add separated async apigw package by @gi0baro in #115624
    • (button) Add size prop to ButtonBar via SizeContext by @natemoo-re in #115728
    • (ci) Add merge_base_strategy tag to Jest CI runs by @ryan953 in #115967
    • (data-forwarding) Enable retries for data forwarders via task dispatch by @leeandher in #115511
    • (dev) Add SENTRY_CELL_ROUTING env var that runs cell-routing mode locally by @lynnagara in #115852
    • (dynamic-sampling) Add per-project volume query in #114286
    • (examples) Add task that produces by @bmckerry in #115820
    • (explorer) Add query parameter to explorer-runs API by @JonasBa in #115760
    • (integrations) Disable auth token creation button without perms by @cvxluo in #115769
    • (markdown) Expose default components via Default prop by @natemoo-re in #115745
    • (options) Add timing metric to options.get() by @kenzoengineer in #115762
    • (profiling) Add task for taskbroker passthrough mode by @untitaker in #115065
    • (repositories) Add project repo-link endpoint by @wedamija in #115754
    • (routes) Add redirect from /snapshots/ to explore releases by @NicoHinderling in #116053
    • (scm) Add streaming integration-proxy which accepts any 'Accepts' header value by @cmanallen in #115917
    • (self-healing) Add support for seer activities in workflow engine by @saponifi3d in #115933
    • (settings) Add 'Recent Error Events' column to project environments by @JoshuaKGoldberg in #115902
    • (source-map-config-issues) Updating processing errors metric by @Abdkhan14 in #115822
    • (spans) Add separate Redis cluster setting for span deduplication by @untitaker in #116010
    • (trace-waterfall) Small tweaks to trace-waterfall tab by @nsdeschenes in #115584
    • (ui) Add debug FeatureBadge variant by @chromy in #116000
    • Flags and rpc for frontend code search tool by @shruthilayaj in #116098
    • Add SENTRY_ALLOWED_IPS to allow IP, overwrite SENTRY_DISALLOWED… by @fe80 in #115773
    • Add Relay measurements conversion feature by @loewenheim in #115979
    • Track read options via seen logline by @joshuarli in #115610
    • Add toggle to migrate to billing platform by @noahsmartin in #115895

    Bug Fixes 🐛

    Alerts

    Handle gte/lte condition types in metric alert serializers by @kcons in #115972

    Update migration to not remove FK to group by @ceorourke in #115932

    Surface API error messages in create/update toasts by @malwilley in #115894

    Batch NotificationMessage delete metric alert rows by @ceorourke in #115726

    Api

    Correctly parse full parameter in project events endpoint in #116216

    Validate IDs in OrganizationGroupIndexEndpoint.delete by @kcons in #115770

    Conversations

    Restore side-by-side layout for platform option dropdown in #116272

    Improve tool badge rendering and overflow behavior by @obostjancic in #115880

    Improve truncation of non-UUID conversation IDs by @sentry-junior in #115978

    Dashboards

    Raise widget description limit to 350 by @DominikB2014 in #116185

    Propagate global filters in Open in Issues link by @DominikB2014 in #116105

    Stop widget header action clicks from bubbling by @skaasten in #116096

    Anchor Editors dropdown to the right edge of the trigger by @skaasten in #116104

    Reset table fields when switching from details widget by @DominikB2014 in #115788

    Prevent sticky navbar misalignment on scroll by @priscilawebdev in #115716

    Discover

    Add missing check for DiscoverSavedQueryVisitEndpoint in #116187

    Add org id to project filter by @nsdeschenes in #116174

    Dynamic Sampling

    Use the correct field name for dynamic sampling project id in #116279

    Update run_eap_spans_table_query_in_chunks to yield individual rows and adjust tests accordingly by @constantinius in #115995

    Events

    Debug param wasn't being passed down correctly in #116152

    Correctly parse full parameter in group hashes endpoint in #116219

    Explore

    Use unique ids for visuals in #116204

    Cross events date selector allow 7d anytime within 30 days by @nikkikapadia in #116099

    Increase strictness on URLs by @nsdeschenes in #115881

    Pymark fail on test for arrays in detail endpoint by @manessaraj in #115828

    Integrations

    Validate user-provided IDs in webhooks by @kcons in #115910

    Replace useIntegrationTabs with nuqs useQueryState by @ryan953 in #115738

    Issues

    Align collapsed activity row in #116266

    Fix undefined variable in StreamGroupSerializerSnuba feature flag check in #116259

    Move user serialization out of loop in ignored issues handler in #116246

    Fix sidebar comment box horizontal overflow in #116209

    Match short id when combined with filters in #116153

    Make GroupSearchViewPermission fail closed for unknown object types by @roggenkemper in #116183

    Provide correct value for search.sort SDK tag by @shashjar in #116065

    Use full URL for open link button in breadcrumb messages by @scttcper in #115911

    Enforce project access on event ID lookup endpoint by @oioki in #115784

    Stop double-emitting issue activities for Seer PR created by @shashjar in #115749

    Add int ID validation to a few endpoints by @kcons in #115690

    Search org members for note mentions by @scttcper in #115614

    Metrics

    Resolve flaky metrics tab tests in #116280

    Default to largest interval when using heatmaps visualization by @nikkikapadia in #116129

    Monitors

    Surface schedule config errors on cron form fields by @malwilley in #116016

    Add tooltip for disabled project in edits by @JoshuaKGoldberg in #115931

    Onboarding

    Remove broken aria-label from RadioGroup radio inputs by @scttcper in #116032

    Include shared feedback for Hono onbarding by @s1gr1d in #115721

    Perforce

    Update onboarding frontend for Unicode support by @mujacica in #116005

    Support Unicode Perforce server connections by @mujacica in #115775

    Preprod

    Reduce snapshot download concurrency to prevent stream failures in #116267

    Reapply "Include image key and field path in snapshot validation errors" by @runningcode in #115987

    Remove native lazy loading from LazyImage component by @NicoHinderling in #115922

    Eliminate race condition in snapshot status check posting by @NicoHinderling in #115650

    Skip strict jsonschema for snapshot image metadata by @runningcode in #115720

    Restore extra field passthrough in snapshot image responses by @NicoHinderling in #115658

    Change snapshot image tags from list to dict by @NicoHinderling in #115643

    Replays

    Shrink timeline hover timestamp in #116268

    Remove timeline icon z-index workaround in #116255

    Remove extra padding from BodyGrid in replayLayout by @sentry-junior in #116156

    Disable breadcrumbs autoscroll on user scroll by @JoshuaKGoldberg in #115914

    Correct query invalidation on refresh by @JoshuaKGoldberg in #115629

    Allow org admins to bulk delete replays by @jameskeane in #115886

    Make link copy button accessible and non-variable width by @JoshuaKGoldberg in #115598

    Search

    Prevent Ask AI from doubling pasted query text in #116050

    Hide size limit prompt while filtering by @nsdeschenes in #115816

    Seer

    Sort autofix project table by slug instead of name by @mrduncan in #115642

    Keep repo loading indicator active by @scttcper in #115854

    Pass issue short ID to coding agents by @JoshFerge in #115838

    Make ToolResult.content optional to prevent Pydantic validation error by @sentry in #115630

    Settings

    Fix CI permission checkbox not reflecting state by @scttcper in #116055

    Restore title on accept-invite and accept-transfer pages by @natemoo-re in #116013

    Fix Seer drawer stopping point not changing on mutate from "No Automation" by @srest2021 in #115847

    Snapshots

    Add instrumentation logging to snapshot download stream in #116079

    Add timeout override for snapshot download in emmett gateway by @NicoHinderling in #116078

    Tests

    Don't include trace context in symbolicator snapshots in #116275

    Use findByRole for async options in opJsonPath.spec.tsx by @sentry in #115645

    Correct monitor form crontab test with fireEvent by @sentry in #115644

    Update staleTime and add default mocks for external issue tests by @sentry in #115646

    Tracemetrics

    Use equation alias format for widget builder in #116213

    Expand selector dropdown menu width to 100% by @narsaynorath in #116026

    Drop placeholder unit and always use none by @narsaynorath in #116007

    Pass project and env in request filters for filter by @narsaynorath in #115920

    Ui

    Add inset focus ring to SimpleTable header cells in #116276

    Increase dropdown z-index to appear above sidebar by @jameskeane in #116139

    Add self signed package to support https by @scttcper in #115941

    Workflow Engine

    Sanitize corrupted dynamic_form_fields choice labels by @malwilley in #115855

    Normalize error.handled values to 0/1 by @kcons in #115740

    Other

    • (a11y) Add missing alt attributes to context icons and feedback images by @sentry-junior in #115772
    • (agents) Use minVersion in SDK update alert for consistency by @obostjancic in #115714
    • (api-docs) Correct event/replay/processing-error ID schemas in #116201
    • (apigw) Disable asyncpg statement cache (issues with pgbouncer) by @gi0baro in #115992
    • (attachments) Infer MIME type from filename when stored as octet-stream by @sentry-junior in #115977
    • (auth) Verify primary email on password reset by @michelletran-sentry in #115651
    • (autofix) Prevent loading spinner clip in artifact loading card by @priscilawebdev in #115988
    • (billing) Added fix to convert snuba sentry enum to the proto enum for usage stats by @krithikravi in #115856
    • (code-mapping) Update codeowners GET endpoint and tests in #116309
    • (codeblock) Improve nested scroll by @natemoo-re in #115839
    • (crons) De-flake "prefills with an existing monitor" test by @priscilawebdev in #115782
    • (cross-events) Correct styling based off date selection by @nsdeschenes in #116124
    • (cursored-scheduler) Recalculate batch size on tick interval change by @roggenkemper in #115888
    • (data_export) Cap export row limit at 10k for all callers by @manessaraj in #116048
    • (escalating) Register issue_velocity referrer in Referrer enum by @cvxluo in #115812
    • (feedback) Downgrade log level for insufficient feedback count in #116247
    • (forms) Preserve choice value types when submitting sentry app forms by @priscilawebdev in #115869
    • (grouping) Parameterize error message fingerprint variables by @lobsterkatie in #115496
    • (issue search) Fix invalid search query error message for device classes in #116243
    • (issue-detection) Add plural KBLayouts_iPhone.dat to FileIO ignore list by @roggenkemper in #116182
    • (jira) Bind JWT iss to body clientKey on install webhook by @michelletran-sentry in #114225
    • (kafkapublisher) Leaks memory: rdkafka stats grow without poll() in #116123
    • (members) Scope invite-request role updates to caller's allowed roles by @oioki in #115807
    • (migrations) Get rid of progress bar by @ceorourke in #115691
    • (mypy) Fix import location by @kcons in #115654
    • (ourlogs) Reset column sort to default on third click by @JoshuaKGoldberg in #115751
    • (pageFilters) Clear shift-click anchor on empty selection by @priscilawebdev in #115472
    • (profiles) Indicate invalid page URL state as error by @JoshuaKGoldberg in #115897
    • (profiling) Render single-sample continuous profile chunks in #116234
    • (rate-limit) Tighten rate limits on test notification endpoints by @nora-shap in #115613
    • (ratelimits) Handle AnonymousUser missing is_sentry_app attribute in #116251
    • (relay) Make trustedRelays optional on Organization type by @TkDodo in #116014
    • (releases) Pass Environment objects to get_latest_release by @mrduncan in #115637
    • (repositories) Fix deletion ordering for ProjectRepository children by @wedamija in #115739
    • (security) Add project-level access check to GroupEventJsonView by @roggenkemper in #116184
    • (self-hosted) Avoid install wizard mail TLS/SSL immutable errors by @aldy505 in #114011
    • (static) Add missing nonce attribute on app.js preload link by @oioki in #115984
    • (supergroups) Move to post process task in #116195
    • (tabs) Stop tooltips in overflowMenuItems from crashing the page by @TkDodo in #115993
    • (traces) Handle deleted groups in trace endpoint in #116248
    • (web) Redirect /scraps to stories by @priscilawebdev in #115776
    • (webauthn) Handle missing WebAuthn challenge data in #116167
    • (webhooks) Route sentry app actions through send_alert_webhook_v2 in new path in #115975
    • (workflow) Use Group cache in get_group_to_groupevent by @kcons in #115960
    • (workflows) Filter out workflows from other organizations in #116075
    • Add catch-all path to explore route and redirect to index by @adrianviquez in #116066
    • Revert "fix(ourlogs): stabilized column widths during scrolling (#115389)" by @getsentry-bot in 84d0139e

    Documentation 📚

    (replays)

    Fix OpenAPI schema/example for replay details response by @JoshFerge in #115752

    (scraps)

    Render to HTML pattern by @natemoo-re in #115943

    (snapshots)

    Add public OpenAPI documentation for snapshot endpoints in #116231

    Internal Changes 🔧

    Admin

    Migrate forkCustomer off browserHistory by @evanpurkhiser in #115915

    Drop browserHistory and HOCs from ResultGrid by @evanpurkhiser in #115908

    Alerts

    Clean up usage of AlertRuleSerializerResponse in #116218

    Remove AlertRuleSerializer in #116052

    Remove PUT and POST legacy paths for metric alerts by @ceorourke in #116017

    Fully remove metric alert columns on NotificationMessage by @ceorourke in #116025

    Remove legacy issue alert delete endpoint code by @ceorourke in #115954

    Add index on date_added, soft remove metric alert colu… by @ceorourke in #115823

    Remove legacy issue alert GET endpoint code by @ceorourke in #115948

    Migrate issue rule editor off browserHistory by @evanpurkhiser in #115924

    Remove legacy metric alerts code by @ceorourke in #115865

    Remove incident serializer usages by @ceorourke in #115845

    Remove legacy metric alert handlers by @ceorourke in #115850

    Remove metric alert columns on NotificationMessage by @ceorourke in #115578

    Replace AlertStore with GlobalAlertProvider + useGlobalAlerts by @evanpurkhiser in #115315

    Clean up old metric alert rows in NotificationMessage by @ceorourke in #115647

    Remove unused team alerts endpoints by @ceorourke in #115339

    Remove team alerts triggered modal by @ceorourke in #115336

    Api

    Type nullable fields in the base group serializer by @cvxluo in #116068

    Move GroupEventDetailsResponse to event serializer module by @cvxluo in #116058

    Resolve suggested_api from Django route names by @strongs in #115907

    Migrate auth-error navigation off browserHistory by @evanpurkhiser in #115935

    Move to_valid_int_id to a more central location by @kcons in #115581

    Apigw

    Add abort_with_json as an util, allow config httpx client limits by @gi0baro in #116037

    Enhance proxy implementation by @gi0baro in #115892

    Autofix

    Remove SCM requirement from autofix in #116206

    Remove legacy autofix path from GroupAutofixEndpoint by @chromy in #116164

    Always use explorer mode in GroupAutofixEndpoint by @chromy in #116162

    Remove old useAutofixData hook by @Zylphrex in #116103

    Remove intelligence level from group ai autofix endpoint by @Zylphrex in #116145

    Add log for autofix introspection reason by @Zylphrex in #116132

    Remove unused autofix v1 UI by @Zylphrex in #116100

    Use new Markdown primitive in v3 cards by @priscilawebdev in #115879

    Check repo connected before starting autofix by @Zylphrex in #115648

    Conversations

    Adopt scraps primitives for 4 wrappers by @priscilawebdev in #116082

    Default to 24h period in sidebar link by @obostjancic in #115873

    Dashboards

    Remove text widget flag defintion in #116212

    Remove text widget flag references frontend in #116210

    Remove text widget flag references backend in #116207

    Migrate utils.tsx off browserHistory by @evanpurkhiser in #115923

    Migrate detail.tsx off browserHistory to useNavigate by @evanpurkhiser in #115903

    Discover

    Migrate fieldRenderers off browserHistory by @evanpurkhiser in #115938

    Migrate transactionsList off browserHistory by @evanpurkhiser in #115926

    Migrate queryList off browserHistory by @evanpurkhiser in #115913

    Migrate savedQuery off browserHistory by @evanpurkhiser in #115912

    Migrate results.tsx off browserHistory by @evanpurkhiser in #115909

    Dynamic Sampling

    In per org pipeline, retrieve the project ids in config retrieval, just once by @shellmayr in #115983

    Use already queried data when computing boosted release platform by @cmanallen in #115792

    Rename dynamic sampling status enum by @shellmayr in #115360

    Cleanup transaction based health check rule by @shellmayr in #115471

    Add status for snuba timeouts by @shellmayr in #115359

    Eslint

    Turn on no-unsafe-member-access for scraps in #116004

    Add curly rule to prettier config section by @sentry-junior in #116158

    Enable no-unsafe-call for scraps by @TkDodo in #115981

    Enable no-unsafe-arguments in scraps by @TkDodo in #115877

    Enable no-unsafe-return for scraps by @TkDodo in #115722

    Flags

    Remove organizations:dashboards-drilldown-flow in #115670

    Remove organizations:scoped-partner-oauth by @wedamija in #115675

    Remove organizations:dashboards-import by @wedamija in #115671

    Remove organizations:revoke-org-auth-on-slug-rename by @wedamija in #114807

    Remove organizations:tracemetrics-alerts gates (backend) by @wedamija in #115019

    Remove organizations:workflow-engine-metric-alert-group-by-creation by @wedamija in #114805

    Remove organizations:ourlogs-stats, replace with organizations:explore-dev-features and move it to a permanent flag by @wedamija in #115673

    Remove organizations:tracemetrics-alerts gates (frontend) by @wedamija in #115018

    Remove organizations:performance-mep-reintroduce-histograms by @wedamija in #115674

    Remove organizations:ingest-through-trusted-relays-only by @wedamija in #115682

    Remove organizations:pr-page by @wedamija in #115686

    Remove organizations:performance-remove-metrics-compatibility-fallback by @wedamija in #115684

    Remove organizations:performance-transaction-name-only-search by @wedamija in #115685

    Remove organizations:starfish-mobile-ui-module by @wedamija in #115687

    Move organizations:init-sentry-toolbar to permanent by @wedamija in #115862

    Remove organizations:on-demand-metrics-extraction-experimental by @wedamija in #115683

    Remove organizations:view-hierarchies-options-dev by @wedamija in #115678

    Remove organizations:issues-suspect-tags by @wedamija in #115680

    Remove organizations:performance-spans-fields-stats by @wedamija in #115679

    Remove organizations:update-action-status by @wedamija in #115676

    Remove organizations:sentry-app-webhook-requests by @wedamija in #114813

    Forms

    Migrate projectFiltersSettings to scraps form system by @TkDodo in #115783

    Migrate highlights settings by @priscilawebdev in #115778

    Migrate early features settings by @priscilawebdev in #115777

    Migrate keyRateLimitsForm off legacy Form by @priscilawebdev in #115265

    Migrate addCodeOwnerModal off legacy Form by @priscilawebdev in #115256

    Instrumentation Issues

    Remove issue type config and types by @ArthurKnaus in #115718

    Remove fix section UI by @ArthurKnaus in #115717

    Remove nav entries and route by @ArthurKnaus in #115715

    Issues

    Use standard logging pattern in group details endpoint in #116262

    Remove redundant check on event_id in #116261

    Indicate duration when "Since First Seen" is selected in #115533

    Remove grouping store by @scttcper in #115970

    Remove the option gating custom tag resolver logic by @shashjar in #116024

    Add multiple property to select field schema by @amy-chen23 in #115814

    Prevent assigning issues to deactivated users by @amy-chen23 in #115668

    Update frontend types after removing unnecessary issue activity metadata for Seer actions by @shashjar in #115734

    Remove unnecessary structured metadata under issue activities for Seer actions by @shashjar in #115732

    Remove stray use_flagpole_for_all_features usage by @lobsterkatie in #115537

    Jest

    Mark flaky jest tests - 2026-05-25 by @cursor in #116121

    Mark flaky jest tests - 2026-05-18 by @cursor in #115729

    Onboarding

    Convert CreateSampleEventButton to functional component by @ryan953 in #115830

    Adopt useModal in onboarding flows by @evanpurkhiser in #115127

    Ourlogs

    Remove expanded and window virtualizer from LogsInfiniteTable by @JoshuaKGoldberg in #115884

    Remove ourlogs-table-expando flag backend code by @JoshuaKGoldberg in #115794

    Remove ourlogs-table-expando flag frontend code by @JoshuaKGoldberg in #115793

    Preprod

    Simplify project filtering in latest base snapshot endpoint in #116237

    Optimize snapshot download with connection reuse and progressive streaming by @NicoHinderling in #116051

    Use TimeToIdle instead of TimeToLive for upload expiration by @NicoHinderling in #116033

    Virtualize snapshot sidebar for 40k image builds by @NicoHinderling in #115836

    Replace snapshot status badges with plain text by @mtopo27 in #115659

    Remove deprecated snapshot detail TS types and update debug modal by @mtopo27 in #115653

    Remove deprecated comparison_run_info and approval_info from snapshot detail API by @mtopo27 in #115652

    Replays

    Remove unused data export notifications endpoint in #116232

    Replace useFetchSequentialPages with useInfiniteQuery by @ryan953 in #116115

    Use shared platform icon resolver by @priscilawebdev in #115705

    Repositories

    Simplify ProjectRepoLink serializer and make url better by @wedamija in #115826

    Drop old project/repository columns by @wedamija in #115741

    Remove project and repo columns from SeerProjectRepository and RepositoryProjectPathConfig by @wedamija in #115663

    Add unique index on repository_project columns by @wedamija in #115662

    Remove feature flag branching for RepositoryProjectPathConfig reads by @wedamija in #115607

    Remove feature flag branching for SeerProjectRepository reads by @wedamija in #115606

    Scm

    Merge integration-proxy endpoints by @cmanallen in #116028

    Add quota policy for GitHub API requests by @cmanallen in #115657

    Seer

    Move agent access check from entrypoint to operator in #116143

    Use elif instead of if in actionability filter logic for clarity in #116203

    Remove seer-slack-workflows and seer-slack-explorer flags in #116140

    Simplify block component states by @natemoo-re in #115589

    Persist Seer Explorer input draft per run by @aliu39 in #115919

    Replace chat history dropdown with searchable CompactSelect by @JonasBa in #115843

    Rm severity group-seer option by @kddubey in #115768

    Rm severity conditional routing by @kddubey in #115765

    Option to route severity to group-seer by @kddubey in #115702

    Settings

    Update action prop and remove hasPageFrame by @natemoo-re in #115815

    Update breadcrumbTitle spec for routes prop removal by @ryan953 in #115866

    Move routes from prop to useRoutes() in BreadcrumbTitle by @ryan953 in #115766

    Convert OrganizationAccessRequests to function component with fetchMutation by @ryan953 in #115813

    Replace billing navigation config with a react-hook by @evanpurkhiser in #115808

    Slack

    Remove widget unfurl feature flags by @DominikB2014 in #116128

    Move ephemeral message sending to workspace module by @leeandher in #115586

    Snuba

    Port query subscriptions consumer to taskbroker raw mode in #116288

    Update tests for removal of boolean double-writing in #111421

    Stop dropping deprecated spans dataset in reset_snuba by @phacops in #115973

    Add exception type for snuba timeouts by @shellmayr in #115362

    Spans

    Remove tests for deprecated standalone spans storage in #116147

    Extract flush_segment pipeline helpers by @lvthanh03 in #116149

    Split load_segment_data into helper steps by @lvthanh03 in #116136

    Split process_spans into typed pipeline steps by @lvthanh03 in #115858

    Add back cumulative flusher log and flushed segments log by @lvthanh03 in #116015

    Extract span buffer observability models by @lvthanh03 in #115849

    Remove unused dropped_segments logic and zrem cleanup option by @lvthanh03 in #115806

    Add isolated load segment data coverage by @lvthanh03 in #115804

    Add add-buffer Lua script tests by @lvthanh03 in #115801

    Ts

    Remove RouteComponent by @evanpurkhiser in #115999

    Remove unused RouteContextInterface type by @evanpurkhiser in #115996

    Typing

    Remove tests.sentry.api.helpers.test_group_index from mypy ignore list in #116199

    Remove tests.sentry.issues.test_utils from mypy ignore list in #116070

    Utils

    Make ParityChecker print out mismatches in a PII safe way in #116038

    Various clarifications in SafeRolloutComparator code in #115946

    Workflow Engine

    Remove unused const in #116230

    Edit flag with the correct prefix in #116198

    Other

    • (✂️) Remove form leftovers by @TkDodo in #115724
    • (aci) Minor cleanup to delayed workflow processing by @saponifi3d in #115758
    • (activity) Remove duplicate call to calculate initial priority from group metadata by @shashjar in #116067
    • (api-docs) Add GroupDetailsResponse type, params, and example in #116113
    • (autopilot) Delete autopilot module and all references by @vgrozdanic in #115466
    • (billing) Bump sentry-protos to 0.13.0 in #116133
    • (billing-platform) Log requests in service methods by @brendanhsentry in #115971
    • (bootstrap) Parallelize locale and moment chunk fetches by @JonasBa in #115727
    • (cells) Remove the includeFeatureFlags query param from the org listing request by @lynnagara in #115833
    • (ci) Split MDX typechecking into its own gated job by @natemoo-re in #115744
    • (compactSelect) Remove unused onSectionToggle callback by @TkDodo in #115809
    • (deps) Update sentry conventions package by @nsdeschenes in #115989
    • (detectors) Split connected and project alerts into separate sections by @malwilley in #115947
    • (dynamic-ampling) Add a metric counter to see if we sometimes have implicit-factor < 1 by @constantinius in #115834
    • (eap) Query typed-colon attribute as boolean instead of number in #116299
    • (events) Migrate ContextIcon to platformicons by @priscilawebdev in #115701
    • (explore) Port toolTags to scraps layout primitives by @priscilawebdev in #116160
    • (flagpole-wildcard-ops) Adding support for not_matches op (python) by @Abdkhan14 in #115901
    • (github-enterprise) Use monospace font for private key field in #116303
    • (hooks) Replace HookStore with a plain hook registry by @evanpurkhiser in #115811
    • (hookStore) Change HookStore to single-value semantics by @evanpurkhiser in #115796
    • (integrations) Add backfill_github_external_actor.gh_api_fetch_interval_s by @hobzcalvin in #115763
    • (issueDetails) Collapse ParticipantList wrapper div to a Flex by @evanpurkhiser in #116175
    • (issueDiff) Refactor event data fetching to use useQueries in #116042
    • (jira) Add Forge app manifest for Connect-to-Forge migration by @BYK in #115603
    • (lint) Ban React.Fragment in favor of named Fragment import by @natemoo-re in #115939
    • (metrics) Split metric attribute tree actions by @nsdeschenes in #115641
    • (mypy) Rename sort_stronger_modules to sort_weaklist in #116106
    • (np) Refactors notification context into a new class by @GabeVillalobos in #113495
    • (organization-create) Drop dead browserHistory comment by @evanpurkhiser in #115928
    • (overrides) Finish hook → override terminology rename by @evanpurkhiser in #115825
    • (oxfmt) Ignore pyproject.toml by @sentry-junior in #116181
    • (pipeline) Use Button busy prop for advancing state by @evanpurkhiser in #116179
    • (plugins) Inline PluginComponentBase into its two subclasses by @ryan953 in #116112
    • (profiling) Rename explore/profiling URL to explore/profiles in #115627
    • (project-detail) Migrate projectCharts off browserHistory by @evanpurkhiser in #115916
    • (releases) Convert ReleaseIssues to functional component by @ryan953 in #115698
    • (replay) Rename Breadcrumbs tab to Activity by @DominikB2014 in #115278
    • (routeAnalytics) Replace HookStore persistCallback with a plain module cell by @evanpurkhiser in #115810
    • (saved-queries) Align list endpoint access checks with detail by @oioki in #115379
    • (scraps) Adopt useModal in remaining call sites by @evanpurkhiser in #115132
    • (search) Add EAP API attribute visibility checks in #116091
    • (seer-explorer) Replace useSeerExplorerRunId with chat state context by @JonasBa in #115631
    • (segments) Add local cache for release creation and modification by @cmanallen in #116173
    • (snapshots) Batch image fetches and add timeouts for snapshot download by @NicoHinderling in #116076
    • (source-map-processing-errors) Emitting metric irrespective of … by @Abdkhan14 in #115661
    • (span-buffer) Remove flusher and buffer logger options by @untitaker in #115487
    • (static) Add preload hint for app.js entrypoint by @JonasBa in #115800
    • (tasks) Remove base64 encoding for bytes parameters in tasks in #116293
    • (taskworker) Move devenv for profiles consumer to taskbroker in #116194
    • (teams) Avoid organization N+1 in team projects by @scttcper in #115735
    • (test) Remove router return from initializeOrg by @evanpurkhiser in #116002
    • (tests) Replace as jest.Mock casts with jest.mocked() by @evanpurkhiser in #115790
    • (trace) Migrate virtualizedViewManager off browserHistory by @evanpurkhiser in #115927
    • (traceDrawer) Replace local SectionDivider/VerticalLine with Scraps Separator in #116168
    • (types) Add mypy types for sentry.search.snuba.executors by @saponifi3d in #114994
    • (ui) Upgrade lodash, figma connect by @scttcper in #115950
    • (vercel) Add logs on failure to add project in #116235
    • (workflows) Avoid a query on Organization in delayed_workflow by @kcons in #115965
    • Instruct agents to prefer type inference over call-side generics in #116290
    • Add right padding to seer header copy button in #116286
    • Remove code coverage stacktrace insights in #115417
    • Remove autopilot CODEOWNERS entries by @vgrozdanic in #116085
    • Replace withOrganization with useOrganization in function components by @evanpurkhiser in #115343
    • Remove withSentryRouter HOC by @evanpurkhiser in #115949
    • Migrate useRouter callsites to native RR6 hooks by @evanpurkhiser in #115945
    • Drop unused 'unmigratable' status literal from repo query types by @evanpurkhiser in #115906
    • Remove unmigratable repositories code path by @evanpurkhiser in #115905
    • Remove OrganizationConfigRepositoriesEndpoint by @evanpurkhiser in #115898
    • Remove unused PUT handler from repository details endpoint by @evanpurkhiser in #115896
    • Bump taskbroker-client to 0.1.15 by @bmckerry in #115799
    • Mark legacy react-router shim hooks as deprecated by @ryan953 in #115767
    • Merged Jest changedSince testing into main PR Jest job by @JoshuaKGoldberg in #115549
    • Replace browserHistory with useNavigate in useCleanQueryParamsOnRouteLeave by @ryan953 in #115695
    • Remove browserHistory by inlining navigate in upgradeNowModal callers by @ryan953 in #115755
    • Bump platformicons to 9.5.0 by @priscilawebdev in #115707
    • Bump new development version by @sentry-release-bot[bot] in 7ea81f9f

    Other

    • fix(relocation) Remove invalid token scopes during export in #116214
    • chore(relocation) Exclude Email model from relocations v2 in #116256
    • chore(cells) Mainline org create via control in #116046
    • deps: Upgrade sentry-scm to 0.16.0 in #116215
    • chore(relocation) Remove unused outbox handler by @markstory in #116030
    • fix(relocation) Fix type errors when spawning a task by @markstory in #116130
    • Fix category missing by @noahsmartin in #116056
    • chore(relocations) Add bucket_path to RelocationFile by @markstory in #116035
    • chore(cells) Remove rollout option for connection pooling by @markstory in #116011
    • fix(ci) Don't capture log messages in RPC schema generation by @markstory in #116003
    • fix(typing) Remove sentry.middleware.auth from the ignore list by @markstory in #115798
    • feat(cells) Make organization avatar URL cell compatible by @markstory in #115689
    • deps(ui): Upgrade Rspack to v2, 124 fewer dependencies by @scttcper in #113795
    • o11y(seer): Track block content copy in Seer Explorer by @aliu39 in #115900
    • org-scoped URL for page export by @strongs in #115844
    • feat(cells) Use connection pools for cell RPC operations by @markstory in #115827
    • lint: enable jest/prefer-jest-mocked by @evanpurkhiser in #115791
    • feat(cells); Add org scoping to GroupTagExportView by @strongs in #115841
    • Remove legacy code paths for the combined rule endpoint by @ceorourke in #115750
    • Auto-create PRs for manual Seer handoff by @JoshFerge in #115831
    • feat(cells) Provision new orgs through control with feature flag by @markstory in #115600
    • Chore org index silo metrics by @markstory in #115664
    • o11y(assisted-query): Track error outcomes and reasons for AI query analytics by @aliu39 in #115699
    • deps(ui): Upgrade jest to 30.4 by @scttcper in #115725
    Original source
  • May 18, 2026
    • Date parsed from source:
      May 18, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    26.5.0

    Sentry ships a broad release with OTLP endpoints now GA, new Seer and Autofix improvements, expanded snapshot and dashboards workflows, better logs and repo syncing, and a wave of API, alerts, and UI updates across the product.

    New Features ✨
    Aci
    Add organizations:workflow-engine-metric-alert-endpoints-delete flag to allow deletes in the legacy API in #115382
    Add deprecation headers to legacy rule endpoints in #114080
    Add a warning banner for no connections on an Alert by @saponifi3d in #114772
    Agent Ui
    Track analytics event when explorer session times out by @aliu39 in #115350
    Add session timeout detection by @aliu39 in #115147
    Autofix
    Add feature flag for seer-autofix-introspection by @Zylphrex in #115503
    Support coding agents from plan step by @Zylphrex in #115335
    Link read_file to exact line if available by @Zylphrex in #115292
    Add high-level autofix settings update helper in #115037
    Disable rethink when textarea empty by @aliu39 in #112896
    Better autoscroll on autofix drawer by @Zylphrex in #114869
    Cells
    Populate org listing fields on control serializer by @lynnagara in #115513
    Remove legacy organization invite path by @lynnagara in #115198
    Remove features from the org listing endpoint by @lynnagara in #115007
    Remove features from organization summary by @lynnagara in #115000
    Drop deprecated requireEmailVerification field by @lynnagara in #115003
    Start replicating organization avatar by @lynnagara in #114999
    Replicate OrganizationAvatar to OrganizationAvatarReplica via outbox in #114781
    Cmdk
    Default to keepPreviousData in cmdkQueryOptions in #115085
    Add webhooks keyword to Custom Integrations action by @JonasBa in #114974
    Codeowners
    Support excluding subdirectories via no-owner rules in #115322
    Display exclusion rules in ownership rules table in #115391
    Dashboards
    Repair MCP dashboard widget filters in #115543
    Render widget thresholds in Slack unfurl chartcuterie chart in #115384
    Use widget-aware chart type for Slack unfurl in #115313
    Add widget-aware chartcuterie chart type by @DominikB2014 in #115312
    Avoid issue assignee row fetches by @scttcper in #115296
    Suggest Sentry Built dashboards in empty custom state by @DominikB2014 in #115104
    Create HeatMapWidgetVisualization component by @gggritso in #114916
    Add app.vitals.* support to mobile vitals dashboards by @buenaflor in #113046
    Add All Dashboards tab and rename existing to Custom by @DominikB2014 in #114904
    Dynamic Sampling
    Add query chunking iterator by @shellmayr in #115063
    Use config in per-org pipeline in #114850
    Explore
    Heat map tooltip surfaces z-axis value alongside y-axis bucket in #115560
    Enable heat map tooltips on click in #115413
    Hide arrays behind feature flag to avoid any production failures by @manessaraj in #115295
    Support array-includes query syntax (field[*]:value) by @manessaraj in #115070
    Raise top events color max from 5 to 9 by @JoshuaKGoldberg in #114890
    Forms
    Migrate Sentry App schema forms behind a flag by @priscilawebdev in #114953
    Expose a unified form.ResetButton in #115072
    Add sentry-app-schema-form-migration flag in #114945
    Heatmap
    Add log axis by @wmak in #115068
    Add heatmap endpoint by @wmak in #114780
    Issues
    Implement UI for new Seer actions included in issue activity by @shashjar in #115525
    GA new stack trace frontend by @scttcper in #115520
    Record Seer events for display in the issue activity timeline by @shashjar in #115486
    Add structured LLM context to saved issue views route by @Mihir-Mavalankar in #115438
    Add more samples links to Slow DB Query evidence by @scttcper in #114938
    Clean up empty state project lookup by @scttcper in #114652
    Iswf
    Updates retry ignore/silence lists for Sentry App tasks by @GabeVillalobos in #115005
    Removes retry decorator from workflow_engine tasks by @GabeVillalobos in #114937
    Bumps version for taskbroker-client, updates instrumented_task decorator by @GabeVillalobos in #114936
    Logs
    Add copy link action to logs table row cell menus by @JonasBa in #115221
    Update backend instrumentation for sync export path by @manessaraj in #114891
    Onboarding
    Add stream_gen_ai_spans to Python agent monitoring init options in #115470
    Add streamGenAiSpans to JS agent monitoring init options by @obostjancic in #115371
    Add platformProductInfo.generated.ts for SCM info-only platforms by @jaydgoss in #115092
    Add platformProductInfo codegen script by @jaydgoss in #115177
    Otlp
    The OTLP endpoints are GA in #115049
    The OTLP endpoints are GA (FE) by @Dav1dde in #115051
    Ourlogs
    Increase infinite query timeouts to 15s with increasing 30s continuations by @JoshuaKGoldberg in #113999
    Add ourlogs-schema-hints-removal feature flag in #115108
    Remove schema hints behind feature flag / query parameter in #115109
    Add ourlogs-pinning flag by @JoshuaKGoldberg in #115073
    Bump export modal select default value from 100 to 500 for release to GA by @JoshuaKGoldberg in #115008
    Preprod
    Wire up snapshot_status search field in frontend in #115596
    Add snapshot_status search field with comparison state filters in #115580
    Make snapshot image detail endpoint comparison-aware by @NicoHinderling in #115572
    Handle no_base_build comparison state in snapshot table by @mtopo27 in #115562
    Add latest-base snapshot lookup endpoint by @NicoHinderling in #115498
    Add single-image metadata endpoint for snapshots by @NicoHinderling in #115495
    Add compact_metadata param to snapshot details endpoint by @NicoHinderling in #115494
    Add PR comments for snapshot base-build edge cases by @NicoHinderling in #115460
    Add Snapshot Settings link to snapshot details menu by @mtopo27 in #115481
    Add auto_approved status to snapshot UI by @mtopo27 in #115388
    Add grace period before failing status check for missing base by @NicoHinderling in #115448
    Add auto_approved status to snapshot approval in #115291
    Add timeout warning for image optimization insights by @NicoHinderling in #115216
    Add description and tags fields to ImageMetadata by @NicoHinderling in #115220
    Add CSV download to size compare items changed table by @mtopo27 in #115202
    Add logging when builds are filtered out by quota or project settings by @NicoHinderling in #115195
    Add per-category controls for snapshot PR comments UI in #114838
    Repos
    Add sync now button and polling logic in repos v2 by @evanpurkhiser in #114998
    Move sync status from footer into per-install repository count tag by @evanpurkhiser in #114865
    Add installation settings button and drawer in repos v2 by @evanpurkhiser in #114792
    Seer
    Populate SeerAgentRun alongside SeerRun in agent client in #115601
    Add GitLab support to seer preferences endpoint in #115424
    Add Seer plan flags to structured context check by @Mihir-Mavalankar in #115571
    Pass api.web referrer from autofix UI by @chromy in #115546
    Add reaction_added webhook handler for Seer agent feedback by @leeandher in #115490
    Add CLI, Linear agent, and MCP autofix referrers by @chromy in #115514
    Accept referrer input on GroupAutofixEndpoint by @chromy in #115497
    Expose replay search RPC by @JoshFerge in #115500
    Wire explorer chat write site through SeerRun outbox by @trevor-e in #115231
    Wire legacy autofix write site through SeerRun outbox by @trevor-e in #115228
    Add outbox receiver for SeerRun creation by @trevor-e in #115111
    Enable context engine for all Seer plan orgs in explorer in #115452
    Add structured LLM context for logs and releases pages by @Mihir-Mavalankar in #115293
    Add feature flag to enable Code Mode for Slack Explorer by @azulus in #115233
    Add structured LLM context for issue taxonomy pages in #115153
    Copy changes and fixup links between pages by @ryan953 in #114918
    Make the Autofix settings open in a drawer from the org settings page by @ryan953 in #114933
    Create Seer sub-nav items, and SCM requirement interstitial by @ryan953 in #114896
    Suppress re-triage of skipped issues in night shift by @trevor-e in #114915
    Add event-specific LLM context hint for issue event route by @Mihir-Mavalankar in #114926
    Add check for seer-gitlab-support in the /seer/onboarding-check/ endpoint by @ryan953 in #113851
    Move seer default settings into flyout panels & rm overview page by @ryan953 in #114599
    Add check for seer-gitlab-support to billing/subscription screens by @ryan953 in #113855
    Add check for seer-gitlab-support to the seer config reminder by @ryan953 in #113852
    Sentry Apps
    Use RPC recipient resolution in webhook disable notifications by @Christinarlong in #115157
    Validate org membership before sending webhook disable emails in #114799
    Add disable/enable toggle to _admin sentry app details by @Christinarlong in #114910
    Skip webhook dispatch for disabled sentry apps by @Christinarlong in #114620
    Allow staff to toggle is_disabled via existing CRUD endpoint by @Christinarlong in #114777
    Settings
    Convert project environments table to FC by @scttcper in #115493
    Remove withProject in #114587
    Slack
    Update Seer linking message after identity link by @alexsohn1126 in #114752
    Default Explore unfurl interval to match frontend by @DominikB2014 in #114867
    Snapshots
    Move snapshot endpoints into their own subfolder by @NicoHinderling in #115501
    Add success logs for PR comments and status checks in #115437
    Add frontend logic for downloading images zip by @NicoHinderling in #115338
    Add endpoint for downloading images zip by @NicoHinderling in #115337
    Add context.test_file_path to snapshot JSON metadata by @mtopo27 in #115112
    Spans
    Add duplicate span detection metrics to process-segments consumer by @untitaker in #115190
    Add opt-in logging for flushed segments by @untitaker in #114989
    Add semantic partitioning option for segments consumer by @untitaker in #114992
    Trace Waterfall
    Updates to useTraceMeta by @nsdeschenes in #115179
    Add links to cross event from logs and metrics by @nsdeschenes in #114852
    Ui
    Add keywords for theme switching in Command Palette in #114970
    Replace MemberListStore with React Query in #114658
    Other
    (ai-conversations) Emit Sentry event on empty conversation detail page by @obostjancic in #115368
    (auth) Add SuspendedUserMiddleware safety net in #114771
    (billing) Use Intercom for ask Support links in #115527
    (checkout) Use Intercom for ask Support link by @souredoutlook in #115218
    (ci) Retry getsentry-dispatch by @joshuarli in #115309
    (data-export) Add Sentry trace metrics for export outcomes in #115575
    (endpoints) Add option to disable all project fetching in relay endpoints by @tobias-wilfert in #114947
    (eslint) Enable @typescript-eslint/no-unnecessary-type-arguments by @JoshuaKGoldberg in #113674
    (events) Add experimental api for events that allows sql by @wmak in #115330
    (export) Update Storgae config for full trace export for Logs by @manessaraj in #114065
    (external-issues) Use LLM generated title/description for ticket creation by @leeandher in #114760
    (highlights) New loading state, stronger project types in #115352
    (insights) Show source frames for slow DB spans by @scttcper in #115286
    (integrations) Include organization_id in response tracking logs by @armenzg in #113903
    (issue-detection) Tier-based traces per invocation by @roggenkemper in #114331
    (playstation) Add feature for uploading attachments to object store by @tobias-wilfert in #114956
    (process-segments) Add span deduplication filtering by @untitaker in #115283
    (projects) Load project stats with react query, remove ProjectsStatsStore in #115463
    (replays) Add replay dataset back to events by @wmak in #114234
    (repositories) Filter out active repositories from the sync in #115034
    (scm) Allow fetching by org/repo-name in #114369
    (scraps) Markdown component by @natemoo-re in #115025
    (search) Add userCount filter key to issue search autocomplete by @isaacwang-sentry in #114823
    (search-query-builder) Add custom currency filter by @nsdeschenes in #114713
    (seer-explorer) Add polling backoff for 5xx errors in #115538
    (seer-slack) Add slack link parsing and insert slack thread info by @alexsohn1126 in #114442
    (slo) Add SLO instrumentation to Jira search endpoint in #114513
    (slot) Automatically bridge known contexts by @natemoo-re in #114548
    (trace-meta) Add trace metrics by @wmak in #115107
    (tracemetrics) Add Equation UI to Widget Builder in #115071
    (types) Split Project into ProjectSummary and DetailedProject by @scttcper in #115024
    (typing) Add pre-commit hook to prevent new weaklist additions by @armenzg in #114761
    (viewer-context) Add seer_rpc_in + org_seer_rpc_in chokepoints in #115577
    (webhooks) Add live-run flag to override circuit breaker dry-run by @Christinarlong in #114820
    Extend performance profiles to V2 spans by @loewenheim in #115203
    Allow interval on heatmap endpoint by @wmak in #115010
    Add a random duration task for testing by @evanh in #114858
    Bug Fixes 🐛
    Aci
    Require AlertRuleWorkflow IDs to be ints by @kcons in #115245
    Add workflow ID to ActionInvocation by @kcons in #114770
    Revalidate medium threshold when high threshold changes in #114923
    Update the query filters to show monitor instead of detector by @saponifi3d in #114800
    Ai Conversations
    Fix page filter race condition on conversation detail page by @obostjancic in #115366
    Handle Python repr format and structured system prompts in AI trace view by @obostjancic in #115054
    Fix page filter isolation, project=-1, and datetime URL params by @vgrozdanic in #114965
    Api
    Replace % formatting with string concatenation in count_hits to resolve Semgrep warning by @fix-it-felix-sentry in #114016
    Validate root-cause-analysis query params via serializer by @oioki in #115297
    Validate more user-provided int ids by @kcons in #115299
    Return forbidden for gated events endpoint in #115148
    Validate more user-provided integer ids by @kcons in #114996
    Preserve string array span detail attributes in #114853
    Attributes
    Remove duplicate string is_transaction in #115569
    Account for @ in attributes by @nsdeschenes in #115055
    Auth
    Conditionally show unlinked member warning based on SSO requirement in #115461
    Prefer session user over IdP email in SSO identity resolution by @michelletran-sentry in #115079
    Autofix
    Propagate previous step referrer in #115412
    Read automation settings from detailed project by @scttcper in #115239
    Relax requirements for autofix section to be completed by @Zylphrex in #115084
    Add loading state for starting root cause by @Zylphrex in #114917
    Cells
    Bump Organization replication_version to backfill mapping date_created by @lynnagara in #115423
    Replicate Organization.date_added to mapping row in #115325
    Charts
    Wire up visualMap prop in BaseChart in #115101
    Hide overlapping time-series y-axis labels by @JoshFerge in #114972
    Codeowners
    Return owner names on sync in #115583
    Display dateSynced instead of dateUpdated in CODEOWNERS table in #115136
    Add date_synced field to track actual CODEOWNERS sync time by @shashjar in #115115
    Conversations
    Improve conversations table UX by @obostjancic in #115364
    Quote conversation ID in explore query by @obostjancic in #115271
    Dashboards
    Clarify mobile vitals app starts in #115264
    Use span.op for MCP pre-built dashboard filters by @gggritso in #115540
    Render unfurl chart with dual Y axes for multi-aggregate widgets by @DominikB2014 in #115411
    Invalidate dashboards list and grid on delete in #115354
    Exempt details widgets from limit validation in #115170
    Preserve prebuilt globalFilter chips when cloning by @DominikB2014 in #115081
    Close widget viewer modal when releases drawer opens by @skaasten in #114768
    Default text widgets to 1 row tall by @jameskeane in #114898
    Include threshold changes in revision diffs in #114607
    Match widgets by content fingerprint when IDs differ and titles are non-unique by @skaasten in #114578
    Show current version when no revisions exist by @skaasten in #114718
    Explore
    Update PHP perf onboarding docs by @nsdeschenes in #115367
    Fix flaky virtual streaming test assertions by @ryan953 in #114928
    Add autoFocus to save query modal input by @JonasBa in #114742
    Check object perms on post by @klochek in #114318
    Insights
    Span id link overflow by @nikkikapadia in #115380
    Validate project access for starred segments in #115418
    Integrations
    Preserve async select value in external issue modal after dynamic refetch in #115593
    Allow blank overview on sentry app form by @priscilawebdev in #114946
    Validate integration_id in OrganizationIntegrationBaseEndpoint by @kcons in #114821
    Issue Detection
    Remove 200-char subtitle truncation for AI-detected issues by @roggenkemper in #115556
    Remove test environments from eligibility by @roggenkemper in #114983
    Issues
    Render assigned user avatars from member list in #115619
    Resolve custom tag / column name collision in events tab & timeline chart in #115416
    Resolve custom tag / column name collision on issue details page by @shashjar in #115096
    Migrate data conditions away from old group type categories by @ceorourke in #114614
    Return 400 for invalid action on group integration details by @mrduncan in #114657
    Scope get_shared_for_org to the slug-resolved organization by @oioki in #114906
    Fix typo "withing" → "within" in status_change comment in #114911
    Iswf
    Fixes typing issues in Sentry App tasks, post_process tasks by @GabeVillalobos in #115012
    Ensure Jira installed webhook JWTs only use the HS256 algorithm by @GabeVillalobos in #114738
    Jest
    Make command palette tests deterministic by mocking debounce in #115316
    Mock Algolia search in command palette test to prevent timeout by @sentry in #115314
    Onboarding
    Mobile style tweaks for SCM onboarding by @jaydgoss in #115426
    Center the SCM detection loading indicator in #115404
    Add logs to browser JS and SolidStart product selection in #115399
    Register Replay integration during onboarding flow by @jaydgoss in #114774
    Ourlogs
    Use replaceMerge for time series visualization axes in #115551
    Stabilized column widths during scrolling by @JoshuaKGoldberg in #115389
    Add actions menu to timestamps too by @JoshuaKGoldberg in #115180
    Hide axis pointer label on collapsed spark line chart by @JoshuaKGoldberg in #115276
    Add min-height of 20vh or 15rem to page main items by @JoshuaKGoldberg in #115272
    Correct logs modal exports payload data by @JoshuaKGoldberg in #114964
    Only show LogsAggregateTable top result colors on first cursor page by @JoshuaKGoldberg in #114873
    Add minWidth to LogsInfiniteTable by @JoshuaKGoldberg in #114864
    Only constrain page for Logs (samples) mode by @JoshuaKGoldberg in #114725
    Preprod
    Fix snapshot list scroll-to and duplicate React keys in #115396
    Clarify rerun analysis description in admin page by @NicoHinderling in #115340
    Quote CSS mask-image URLs to handle special characters by @NicoHinderling in #115318
    Improve snapshot status filter behavior by @NicoHinderling in #115224
    Get snapshot PR comments from detailed project in #115173
    Get snapshot status checks from detailed project in #115139
    Add exponential retry for GitHub API calls in snapshot tasks in #114272
    Use display_name for snapshot sidebar labels in #114710
    Raise expiry_seconds on Objectstore upload token by @lcian in #114844
    Ensure artifact belongs to accessible project by @klochek in #114446
    Profiling
    Specific API error copy for flamegraphs and thresholds by @JoshuaKGoldberg in #114971
    Use granular transactionResult properties in useMemo deps for continuousFlamegraph too by @JoshuaKGoldberg in #114855
    Use granular transactionResult properties in useMemo deps by @JoshuaKGoldberg in #114757
    Releases
    Prevent row-lock contention on last_seen bump by @yuvmen in #115443
    Handle integration token states in releases promo by @gggritso in #115254
    Replay
    Use makeReplaysPathname for replay URLs and fix flaky tests by @ryan953 in #115137
    Preserve player time when toggling sidebar chevron by @JoshuaKGoldberg in #114987
    Replays
    Use Spans dataset when fetching contents of "Trace" tab by @gggritso in #115530
    Cap Mobile Replay <video> element pool by @gggritso in #115403
    Make sure the replay player doesn't reset on a background update by @TkDodo in #115052
    Repositories
    Fix serialization error during repo sync in #114880
    Convert repository sync api to be a control endpoint by @wedamija in #114797
    Search
    Prevent AI query feedback button from dismissing dropdown in Safari by @isaacwang-sentry in #115219
    Fix userCount filter for issues-stats endpoint by @isaacwang-sentry in #114877
    Search Query Builder
    Allow wildcard ops for all string filters by @nsdeschenes in #114959
    Only highlight on string attributes by @nsdeschenes in #114948
    Seer
    Prevent duplicate assisted-query submissions in #115566
    Record user initiator for manual explorer handoffs in #115558
    Preserve recommended sort order for unscored issues in night shift by @trevor-e in #115444
    Normalize U+F00D wildcard operators in snapshot_to_markdown in #115397
    Iterate on the Add Project to Autofix form to make it work better in #115306
    Add sent_at timestamp to autofix PR analytics events by @trevor-e in #115341
    Use IntoTip instead of QuestionTooltip in Core Review table by @ryan953 in #115308
    Let manage your repository connections open in a new tab by @ryan953 in #115289
    Use hash-based jitter for night shift org dispatch by @trevor-e in #115189
    Use self.get_projects() in OrganizationAutofixAutomationSettingsEndpoint by @srest2021 in #114977
    Improvements in #114881
    Stop on-completion hook from re-pushing terminally errored repos in #114885
    Settings
    Defer sentry app form mount until data loads by @priscilawebdev in #115162
    Always fetch detailed project in route context in #115149
    Collapse unused fields in team projects requests by @scttcper in #114886
    Slack
    Skip explore unfurls for unsupported chart types in #115374
    Drop empty list filter values when unfurling dashboards by @DominikB2014 in #115273
    Hash arg values when deduping unfurled links by @DominikB2014 in #115200
    Use logsAggregateSortBys for explore logs unfurl chart sort by @DominikB2014 in #114984
    Drop stale aggregateSortBys in metrics explore unfurl by @DominikB2014 in #114982
    Clamp too-fine URL interval in explore unfurl to ladder minimum by @DominikB2014 in #114985
    Categorize unrecognized Slack API error codes in #114804
    Render first visible metric chart in Explore unfurl by @DominikB2014 in #114871
    Forward all yAxes when unfurling Explore metrics URLs by @DominikB2014 in #114868
    Snapshots
    Show 'Waiting for base' instead of 'Base' when base artifact not found in #115446
    Preserve scroll position when switching diff modes in list view by @NicoHinderling in #115001
    Fix docs link by @mtopo27 in #114857
    Span Buffer
    Fix another process leak by @untitaker in #115050
    Fix flusher processes leaking on timeout by @untitaker in #114955
    Spans
    Remove conditional cleanup to fix flush lock double-flush bug by @untitaker in #114883
    Release flush lock in done_flush_segments in #115169
    Tracemetrics
    Use stricter value for selector options by @nsdeschenes in #115479
    Fix palette differences between table and viz by @k-fish in #115282
    Typing
    Remove snuba modules from the mypy weaklist by @kcons in #115439
    Remove more of sentry.incidents from the weaklist by @kcons in #115304
    Remove sentry.incidents.serializers from the mypy weaklist by @kcons in #115232
    Ui
    Allow tooltips inside hovercard in #115590
    Separate issues feed overlay groups in #115576
    Rank trace group by matches with fzf in #115032
    Table header icon size in #114913
    Workflows
    Require int ids in AlertRuleDetectorValidator by @kcons in #115510
    Don't report timeouts as errors in process_workflow_event or delayed_workflows by @kcons in #115215
    Require action_filters to be a list of dicts by @kcons in #114860
    Other
    (agent-ui) Derive staleness from a direct check w/scheduled rerender by @aliu39 in #115344
    (ai) Mirror AI conversation message parsers in #114707
    (alerts) Return 400 when trigger IDs don't belong to the alert rule being updated in #115573
    (Anomaly Detection) Verify the users project permissions in #114900
    (avatar) Add cached fallback to AsyncMemberAvatar by @natemoo-re in #115554
    (backendJsonFormAdapter) Convert disabledReason to disabled string in #114847
    (checkboxState) Update useListItemCheckboxContext to not rely on ApiQueryKey directly, only QueryKeyEndpointOptions in #114997
    (ci-st) Don't print confusing 0 test count if all tests are selected by @joshuarli in #115305
    (data-forwarding) Better permissions controls on editing page in #114966
    (digests) Don't filter by RuleSnooze by @kcons in #115229
    (discover) Guard against undefined items in collectQueryStringByKey by @sentry in #115469
    (eap) Normalize dashed UUIDs in search filters and resolve internal column names by @BYK in #114550
    (eslint) Inline disable new violations in #114941
    (events) Invert PS/AMD logos in dark mode by @priscilawebdev in #115369
    (feature-flags) Use sm text in tooltip date by @priscilawebdev in #115159
    (feedback) Disallow OR/AND operators in feedback search by @mrduncan in #115113
    (gsAdmin) Update admin portal contact channel and owner link by @swartzrock in #114399
    (identity) Remove bogus email_verified from VSTS identity providers by @michelletran-sentry in #114863
    (logs) Correct Date.now mock in virtual streaming test by @sentry in #114793
    (migrations) Catch missing historical_silo_assignments on MOVE_TO_PENDING by @wedamija in #115087
    (mypy) Remove stale weaklist entry for deleted test file by @NicoHinderling in #115204
    (nightshift) Make the (temporary) alert be a system alert, no rounded corners in #114921
    (oauth) Prevent session overwrite attack in authorization flow by @semgrep-code-getsentry in #113791
    (occ-eap) Prevent throw on None stack frame in #115395
    (ownership) Show specific error messages when ownership rule owners are invalid by @shashjar in #114802
    (release-health) Add stable processing jitter by @JoshFerge in #115507
    (repos) Fix virtualized repo list scroll container in non-nested mode in #114901
    (sdk-crash) Exclude React Native Supabase instrumentation from SDK crash detection by @antonis in #115259
    (seer-explorer) Clear input when switching sessions or starting new chat in #115440
    (seer-slack) Change thinking status by @alexsohn1126 in #115280
    (sentry-apps) Gate dashboard stats queries by @priscilawebdev in #115056
    (sentryapps) Need GET to be exception cased to view the app status in _admin by @Christinarlong in #114980
    (slack-unfurl) Preserve multiple groupBy entries on explore unfurl by @DominikB2014 in #114862
    (snuba) Map ClickHouse 'Too many simultaneous queries' to 429 instead of 500 by @BYK in #114551
    (superuser) Improve banner ux by @priscilawebdev in #115168
    (test) Fix flaky filesChanged test by using regex matcher by @ryan953 in #114975
    (tests) Fix missing control silo urls in test by @wedamija in #114870
    (trace-details) Show replacement attributes when no deprecated source exists in #114943
    (trace-meta) Fix types for EAP Trace Meta by @nsdeschenes in #115553
    (traces) Add null state to application metrics dropdown in #115617
    Allow reading multiple env secrets for Launchpad in #115632
    Wrap custom tags project_id and project.name by @cobyeastwood183 in #115402
    Mypy-weaklist-stale-on-delete by @joshuarli in #115213
    Be less strict when parsing apiUrls by @TkDodo in #114978
    Disable billing platform exception logging by @noahsmartin in #114872
    Documentation 📚
    (spans) Update span buffer docs by @lvthanh03 in #115483
    Document Application Metrics dataset in #115089
    Internal Changes 🔧
    Aci
    Update API docs landing page description by @ceorourke in #115509
    Remove beta tag on API docs by @ceorourke in #115284
    Use addErrorMessage for detector mutation errors by @evanpurkhiser in #115205
    Update new monitor page copy in #115158
    Narrow latest group detector query by @scttcper in #115027
    Move metric issues into generic post processing pipeline by @ceorourke in #114786
    Agents
    Clarify frontend typecheck command in #115421
    Better instructions for using apiOptions by @TkDodo in #114949
    Alerts
    Remove metric alert constraint on NotificationMessage by @ceorourke in #115529
    Move spike protection API docs to their own section by @ceorourke in #115521
    Drop IncidentTrigger model by @ceorourke in #115502
    Remove IncidentTrigger model by @ceorourke in #115492
    Remove a couple more usages of IncidentTrigger by @ceorourke in #115458
    Delete triggered_incidents from AlertRuleTrigger by @ceorourke in #115454
    Remove triggered_for_incident from tests in #115451
    Remove triggered_incidents from AlertRuleTrigger in #115449
    Remove usage of IncidentTrigger in #115436
    Drop RuleFireHistory table in #115401
    Remove RuleFireHistory in #115328
    Remove metric alerts dual processing log flag by @ceorourke in #115342
    Remove issue alert columns from NotificationMessage by @ceorourke in #115290
    Remove unused incident endpoint code by @ceorourke in #115250
    Remove dead alerts code by @ceorourke in #115301
    Remove unused incidents code by @ceorourke in #115236
    Drop SystemAlerts from the init queue component map by @evanpurkhiser in #115223
    Remove issue alert constraints on NotificationMessage by @ceorourke in #115150
    Remove dead standalone SystemAlerts mount by @evanpurkhiser in #115222
    Unpublish legacy rule endpoints by @ceorourke in #115154
    Adopt useModal in issue rule actions in #115119
    Remove should_fire_workflow_actions in #115083
    Drop NeglectedRule table by @ceorourke in #114976
    Remove NeglectedRule model by @ceorourke in #114927
    Autofix
    Style artifact preview by @Zylphrex in #115478
    Add more prompt metadata to autofix in #115408
    Adopt useModal in autofix views by @evanpurkhiser in #115126
    Replace derived state with useMemo in autofixProgressBar in #115146
    Billing
    Bumped protos to 0.10.0 in #115609
    Bumped protos version to 0.8.32 in #115419
    Adopt useModal in billing views by @evanpurkhiser in #115129
    Add better extras to logs by @brendanhsentry in #115209
    Update metrics sample rate by @brendanhsentry in #115106
    Update plan features copy and remove Developer plan changes link by @souredoutlook in #114824
    Cells
    Remove cell restriction code for Jira and integrations by @lynnagara in #115508
    Rename SENTRY_OUTBOX_MODELS key from REGION to CELL by @lynnagara in #115210
    Assert control org listing matches cell response in #114919
    Remove dead OrganizationRegionEndpoint in #114791
    Ci
    Skip importing irrelevant test files during pytest collection in #114107
    Route postgres through Unix domain socket in CI in #114108
    Re-apply parallel devservices startup for backend tests by @mchen-sentry in #114104
    Codeowners
    Clean up in #115237
    Improve logging & testing for update_code_owners_schema task by @shashjar in #115348
    Improve logging & testing for code_owners_auto_sync task by @shashjar in #115347
    Cross Events
    Remove flag registration in #115267
    Clean up feature flag by @nsdeschenes in #115263
    Temp disable traces tab and add new checks by @nsdeschenes in #114854
    Dashboards
    Replace derived state in editAccessSelector in #115155
    Use VisualizationWidget for all dataset types in #114622
    Adopt useModal in dashboard revisions in #115122
    Lower default async queue parallel limit to 15 by @DominikB2014 in #115076
    Drop DashboardLastVisited table by @wedamija in #114930
    Remove DashboardLastVisited model by @wedamija in #114929
    Remove top_n and stacked_area display type handling by @DominikB2014 in #114903
    Improve number formatting documentation in #112410
    Deps
    Bump taskbroker-client and relax bump_version lint by @untitaker in #115281
    Bump urllib3 from 2.6.3 to 2.7.0 by @dependabot in #115298
    Bump lxml from 5.3.0 to 6.1.0 by @dependabot in #115060
    Bump mistune from 2.0.4 to 3.2.1 by @dependabot in #115260
    Bump django from 5.2.12 to 5.2.14 by @dependabot in #115261
    Bump cryptography from 46.0.5 to 46.0.7 by @dependabot in #115061
    Bump requests from 2.32.4 to 2.33.0 by @dependabot in #115062
    Bump pillow from 12.1.1 to 12.2.0 by @dependabot in #115059
    Update mypy to 1.20.2 by @JoshFerge in #114969
    Deps Dev
    Bump pytest from 8.1.2 to 9.0.3 by @dependabot in #115057
    Bump terser from 5.40.0 to 5.46.2 by @dependabot in #114826
    Explore
    Migrate context.tsx to nuqs by @ryan953 in #115435
    Migrate replayQueryParamsProvider to nuqs by @ryan953 in #115422
    Inline and remove getIdFromLocation helper by @ryan953 in #115442
    Deprecate getQueryFromLocation by @ryan953 in #115427
    Move updateNullableLocation to utils/url/ in #115415
    Remove flags for overlay charts by @nsdeschenes in #115266
    Adopt useModal in explore views by @evanpurkhiser in #115123
    Extract and re-use search sorting logic by @nsdeschenes in #115194
    Feedback
    Adopt useModal in feedback item by @evanpurkhiser in #115124
    Replace derived state in useFeedbackHasNewItems in #115151
    Flags
    Remove organizations:alerts-timeseries-comparison registration by @wedamija in #113375
    Remove organizations:symbol-sources gates (backend) by @wedamija in #114993
    Remove organizations:performance-transaction-summary-eap registration by @wedamija in #115015
    Remove organizations:performance-transaction-summary-eap gates (frontend) by @wedamija in #115014
    Remove organizations:integrations-cursor registration by @wedamija in #115017
    Remove organizations:insights-prebuilt-dashboards by @gggritso in #114960
    Remove organizations:integrations-cursor gates (frontend) by @wedamija in #115016
    Remove organizations:symbol-sources gates (frontend) by @wedamija in #114991
    Move 2 should-be-permanent flags to permanent.py by @wedamija in #114934
    Remove organizations:new-organization-member-invite by @wedamija in #114812
    Remove organizations:integrations-deployment by @wedamija in #114990
    Remove organizations:on-demand-gen-metrics-deprecation-query-prefill by @wedamija in #114810
    Remove organizations:app-store-connect-multiple by @wedamija in #114935
    Remove organizations:dashboards-starred-reordering (backend) in #114817
    Remove organizations:continuous-profiling-beta-ui (registration) in #114816
    Remove organizations:dashboards-starred-reordering (frontend) in #114818
    Remove organizations:continuous-profiling-beta-ui (frontend) in #114815
    Make organizations:workflow-engine-log-evaluations permanent in #114803
    Remove organizations:uptime-auto-detected-monitor-emails in #114806
    Remove organizations:normalize_segment_names_in_span_enrichment by @wedamija in #114809
    Remove organizations:on-demand-gen-metrics-deprecation-prefill by @wedamija in #114811
    Remove organizations:on-demand-metrics-query-spec-version-two by @wedamija in #114808
    Forms
    Migrate builtInRepositories form by @priscilawebdev in #115053
    Migrate loaderScript from legacy form by @priscilawebdev in #115041
    Integrations
    Add ExternalActor.source field by @hobzcalvin in #115300
    Remove integration repos tab, rename to Settings by @evanpurkhiser in #115196
    Log Jira issue.updated webhook payloads behind a flag by @hobzcalvin in #114822
    Issue Detection
    Increase trace samples for AI Issue Detection by @roggenkemper in #115491
    Add plan_tier to budget_exceeded log by @roggenkemper in #114961
    Issues
    Clean up parsing of Seer activity metadata by @shashjar in #115531
    Remove InterimSection in #115355
    Adopt useModal in issue views by @evanpurkhiser in #115128
    Use apiOptions for apple crash report by @scttcper in #114601
    Drop redundant list comprehension in handle_ignored by @mrduncan in #114939
    Remove stack trace coverage legend by @scttcper in #114986
    Iswf
    Removes old deprecated retry task decorator by @GabeVillalobos in #115135
    Removes retry decorators from integration-related tasks by @GabeVillalobos in #115028
    Updates deletion and remaining task decorators to taskbroker retries by @GabeVillalobos in #115029
    Jest
    Mark flaky Jest tests with it.isKnownFlake() in #115447
    Update flaky test markers based on recent CI data by @ryan953 in #115277
    Lint Rules
    Enabling unicorn/refer-native-coercion-functions and fixing violations by @Abdkhan14 in #115078
    Enabling unicorn/no-array-push-push and fixing violations by @Abdkhan14 in #115093
    Enabling 'unicorn/no-zero-fractions' and fixing vi… by @Abdkhan14 in #115077
    Enabling unicorn/throw-new-error' and fixing viola… by @Abdkhan14 in #115074
    Onboarding
    Replace deprecated useRouter with useLocation and useNavigate by @cursor in #115453
    Exclude flutter profiling from SCM info cards in #115383
    Migrate storeCrashReports config by @priscilawebdev in #114942
    Preprod
    Unify snapshot detail header badges with table status column in #115633
    Extract shared snapshot status derivation for list and detail endpoints in #115604
    Remove approval_status from frontend search attributes in #115588
    Add no_base_build comparison state for snapshots by @mtopo27 in #115561
    Move comparison state badges from Changes to Status column by @mtopo27 in #115506
    Reorder snapshot table columns and show Base badge in Status by @mtopo27 in #115488
    Standardize logging key to preprod_artifact_id by @NicoHinderling in #115462
    Increase process_artifact deadline from 12 to 15 minutes by @NicoHinderling in #115349
    Remove redundant content_hash and fix extra field leakage in snapshot responses by @NicoHinderling in #115323
    Use React components for app size treemap tooltip by @TkDodo in #115045
    Add blocklist to filter internal fields from snapshot metadata tooltip by @NicoHinderling in #114988
    Align snapshot status checks UI with PR comments pattern by @runningcode in #114963
    Profiling
    Remove base64 rollout option for profile task payload in #115387
    Remove base64 encoding from profile task payload by @untitaker in #115069
    Repos
    Consolidate organizationRepositoriesV2 into organizationRepositories by @evanpurkhiser in #115214
    Remove old SCM integration tree view by @evanpurkhiser in #115175
    Add responsive hiding for repo count tag and manage label by @evanpurkhiser in #115134
    Give repo count tag its own grid column by @evanpurkhiser in #115022
    Move installation callbacks onto ScmInstallation, add ConnectedInstallation wrapper by @evanpurkhiser in #114979
    Extract repo count tooltip logic into a function with early returns by @evanpurkhiser in #114887
    Use lodash sortBy for repo sort in SCM table in #114932
    Add installation settings drawer test in repos v2 by @evanpurkhiser in #114861
    Repositories
    Switch over queries for RepositoryProjectPathConfig to use the new ProjectRepository table in #115516
    Switch over queries for SeerProjectRepository to use ProjectRepository in #115456
    Mark project_repository column as not null. by @wedamija in #115524
    Backfill the new ProjectRepository table by @wedamija in #115351
    Dual write to the new ProjectRepository table when we create related rows in other tables in #115346
    Add a table to allow us to link a project to a repository in #115331
    Remove most feature flags from repo syncing by @wedamija in #115033
    Searchquerybuilder
    Share filter parser grammar in #115557
    Avoid full filter parse for free text in #115563
    Seer
    Remove gap and use transparent buttons in explorer drawer header in #115594
    Remove dead ISSUE_SUMMARY_FIXABILITY referrer by @chromy in #115570
    Remove alert source from autofix automation by @chromy in #115568
    Clean up LLM context hint in issue list by @Mihir-Mavalankar in #115565
    Extract explorer sessions into a shared React context by @JonasBa in #115515
    Adopt useModal in seer automation views by @evanpurkhiser in #115131
    Descriptive tool call phrases in context hints by @Mihir-Mavalankar in #115303
    Simplify AskSeerButton and centralize null handling by @JonasBa in #115188
    Remove ExplorerFloatingActionButton by @JonasBa in #115192
    Promote taxonomy routes to stable structured context by @Mihir-Mavalankar in #115191
    Use send_halt_message for identity linking prompt in #115099
    Skip events without stacktraces in lightweight RCA clustering by @yuvmen in #115098
    Promote event routes to stable structured context flag by @Mihir-Mavalankar in #115009
    Promote issue routes to stable structured context flag in #114920
    Drop legacy night-shift columns and kind db_default in #114828
    Genericize night shift result table by @trevor-e in #114790
    Seer Explorer
    Rewrite types to use zod schemas in #115206
    Increase stale timeout to 120s in #115386
    Remove unused isVisible and isMinimized props from InputSection by @aliu39 in #115227
    Settings
    Adopt useModal in settings views in #115130
    Migrate sentry app form to useScrapsForm by @priscilawebdev in #114138
    Collapse unused fields in project list requests by @scttcper in #115021
    Snapshots
    Fix snapshot product doc link in #115410
    Update settings badge from alpha to beta by @mtopo27 in #115275
    Improve responsiveness for snapshot detail view in #114967
    Spans
    Add back options for conditional flush cleanup by @lvthanh03 in #115075
    Unregister graduated option enforce-segment-size by @lvthanh03 in #114773
    Types
    Add type stubs for prism-line-highlight plugin in #115067
    Narrow type in Promise.catch from any to unknown in #114849
    Ui
    Remove dead ClippedBox height callback by @scttcper in #115317
    Remove Ctrl+Shift+1 theme toggle keyboard shortcut by @JonasBa in #114875
    Other
    (agent) Refactor interrupt display logic to use a hasSentInterrupt flag by @aliu39 in #115094
    (agent-ui) Use block id instead of timestamp for optimistic block logic by @aliu39 in #115226
    (ai) Add form submit + mutation guidance to migration skill by @priscilawebdev in #115358
    (api) Remove unused fileNameBlocklist constant in #115183
    (app) Flatten root provider chain into a list by @evanpurkhiser in #115311
    (arithmeticBuilder) Replace derived state with useMemo in story by @ryan953 in #115145
    (artifact-bundles) Scope indexing state query to org by @scttcper in #114183
    (assisted-query) Remove old ai_query analytics events and analyticsSource prop by @aliu39 in #115243
    (attributes) Tidy up attribute getter functions by @nsdeschenes in #114846
    (automations) Adopt useModal in action settings by @evanpurkhiser in #115125
    (autopilot) Remove task scheduling for dead autopilot project by @vgrozdanic in #115465
    (billing-platform) Log response in service method wrapper by @brendanhsentry in #115246
    (Capacitor) Update getting started from new projects in #113913
    (cmdk) Migrate command palette identifier lookup to apiOptions in #114835
    (context engine) Add date and time data to context by @Mihir-Mavalankar in #115392
    (crons) Adopt useModal in upgrade CTA in #115118
    (data-forwarding) Ensure DataForwarding page is usable for members/team-admins in #114859
    (ds) Remove reservoir sampling rule by @Dav1dde in #115365
    (dynamic-sampling) Add status to duration metrics in per-org pipeline by @shellmayr in #114954
    (endpoints) Remove old options by @tobias-wilfert in #114951
    (eslint) Fixing violations and enabling no-prototype-builtins rule in #114866
    (events) Adopt useModal in events interfaces by @evanpurkhiser in #115116
    (explorer) Refactor optimistic block state in useSeerExplorer by @aliu39 in #114603
    (feature-flags) Use React components for flag series tooltip by @TkDodo in #114968
    (features) Remove organizations:discover flag in #114895
    (flagpole-wildcard-op) Implementing 'matches' as a flagpole con… by @Abdkhan14 in #115385
    (frontend) Use tsgo for frontend typecheck, upgrade tsgo by @scttcper in #115504
    (gsAdmin) Migrate relocation modals to scraps by @priscilawebdev in #115363
    (insights) Remove usage of insights-prebuilt-dashboards feature flag in #114373
    (issue-details) Use React components for event markline tooltip in #115043
    (lint) No-non-null-assertion in scraps by @TkDodo in #115165
    (metrics) Remove now-unused prune_old_open_period_activity task in #114897
    (monitors) Singularize Monitor Type labels by @souredoutlook in #115100
    (mypy) Extend prevent-weaklist-additions hook to also guard disable_error_code section by @joshuarli in #115217
    (occ-eap) Raise missing trace ID log to info by @thetruecpaul in #115088
    (performance) Adopt useModal in performance views in #115121
    (process-segments) Remove semantic partitioning option by @untitaker in #115370
    (projects) Convert deprecated project redirect to hooks by @scttcper in #115249
    (releases) Use React components for mobile builds chart tooltip in #115044
    (relocation) Adopt useModal in relocation admin in #115117
    (replay) Adopt useModal in replay components in #115120
    (rules) Remove references to NeglectedRule in #114894
    (scraps) Update FeatureBadge to use Tag variants with icon-only content in #115064
    (slack) Update chart unfurl link-identity prompt copy by @DominikB2014 in #115086
    (slot) Remove missing-outlet warning by @natemoo-re in #115110
    (st) Add file to test mappings by @joshuarli in #114882
    (supergroups) Drop deprecated RCASource in #114912
    (tag) Use gap instead of margins for spacing by @evanpurkhiser in #115020
    (tracemetrics) Refactor equation prefix stripping in alerts by @narsaynorath in #114319
    (tsc) Switch useApiQuery to apiFetch and unify queryKey shape in #114845
    (unfurl) Split explore unfurl parsing per dataset by @DominikB2014 in #114764
    (webhooks) Add log to note stats on who is tripping the breaker by @Christinarlong in #114888
    (workflow_engine) Pass workflow_id explicitly instead of via queryset annotation in #114784
    Add simple dashboard generation instructions in #115635
    Remove createDefinedContext utility, inline standard createContext + hooks in #115544
    Migrate chartSelectionContext to nuqs by @ryan953 in #115324
    Remove useResettableState() by @ryan953 in #115512
    Inline getExtrapolateFromLocation and remove helper by @ryan953 in #115445
    Upgrade backend mypy to 2.1.0 by @JoshFerge in #115477
    Inline getTitleFromLocation helper function by @ryan953 in #115441
    Add new referrer to track in-chat links in #115398
    Add last_usage_ts to usage service in #115353
    Migrate simple useQueryParamState call sites to nuqs in #115310
    Drop withSentryAppComponents HoC by @evanpurkhiser in #115334
    Drop withConfig HoC by @evanpurkhiser in #115333
    Drop withOrganizations HoC by @evanpurkhiser in #115321
    Upgrade sentry-arroyo from 2.39.1 to 2.39.2 by @george-sentry in #115269
    Add seer paying orgs to context engine by @shruthilayaj in #115208
    Clean up explorer index flags by @shruthilayaj in #115186
    Bump protos in #115187
    Bump protos in #115152
    Run getsentry acceptance on gsApp changes by @priscilawebdev in #114704
    Bump protos by @noahsmartin in #115040
    Bump sentry-protos to 0.8.27 in #114931
    Bump sentry-protos to 0.8.26 in #114905
    Bump new development version by @sentry-release-bot[bot] in 7e8b2314
    Other
    fix(cells) Increase the task deadline for outbox scheduling in #115636
    o11y(preprod): Add context to snapshot status check and PR comment logs in #115612
    o11y(assisted-query): track result counts after AI query is applied in #115240
    fix(relocations) Use str instead of uuid task parameter in #115587
    chore(cells) Reduce indirection in organization.provisioning in #115522
    fix(cells) Move metric collection for outbox backfill in #115552
    Add evals devservices mode by @JoshFerge in #115526
    ref(flex) run codemod on orphaned files by @JonasBa in #115393
    feat(cells) Add option based control for cell rollout by @markstory in #115409
    deps(scm): Upgrade sentry-scm to 0.14.0 in #115376
    Fully remove issue alert columns on NotificationMessage in #115327
    feat(cells) Make organization-create work in control silo by @markstory in #115238
    fix(types) Remove sentry.net.http from the ignore list by @markstory in #115185
    chore(cells) Remove org_setup_complete by @markstory in #115103
    switch from alpha -> beta badge by @mtopo27 in #115197
    Remove Rulefirehistory references in #115035
    fix(spans) Trim environment names to prevent overflows in #115141
    Remove references to RuleFireHistory by @ceorourke in #115036
    chore(tests) Improve assertion failure messages for analytics events by @markstory in #115002
    fix(cells) Add referrer to org create endpoint by @markstory in #114962
    chore(cells) Remove remaining usage of deprecated provisioning options by @markstory in #114879
    Add 'organizations:relay-default-trace-id' to config in #114907
    Update SDK version and options by @cleptric in #114856
    Additional logging and metrics for suspended user activity by @geoffg-sentry in #114749
    Plus 1 more

    Original source
  • May 14, 2026
    • Date parsed from source:
      May 14, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    New ways to agentically build and edit dashboards

    Sentry adds agentic dashboard creation and editing, turns Insights into clonable Sentry-built dashboards, and brings full dashboard management to the Sentry CLI, giving teams faster, customizable monitoring with revision history and built-in templates.

    The traditional dashboard workflow, teams slowly handcrafting visualizations to track critical KPIs, is dying in a world of AI agents.

    A few years ago, in a pre-agentic-everything world, we tried to make it easier for developers to monitor critical experiences. We introduced Insights pages, which were pre-configured dashboards any Sentry user could adopt instantly that surfaced common health signals, like Web and Mobile Vitals.

    The idea was right, but there was a problem: while many companies share common signals, every organization is unique. Without meaningful customization, most teams still ended up having to slog through manually building dashboards themselves. So we kept iterating.

    Large language models are what finally made a reality of on-demand, customizable dashboards possible. Visualizations remain one of the most information-dense ways for humans (and agents) to communicate. What changed is the cost of creating those views.

    Instead of assembling dashboards widget by widget, you can now prompt an agent to create or edit dashboards directly in Sentry, or use the Sentry CLI to connect Sentry to other models, and generate a dashboard tailored to the task at hand.

    Insights pages are now Sentry-built Dashboards. Clone them, then ask an agent to customize them for your project. Dashboards can now be created in seconds, used for the lifetime of a project or investigation, and discarded once they stop providing value.

    What’s new

    • Agentic dashboard creation & editing (beta): All organizations with AI-powered features enabled can now create and edit dashboards in Sentry using an agent-powered chat experience.
    • Insights are now Sentry dashboards: We replaced Insights pages with clonable, editable Sentry dashboards that you can customize to fit your specific use case.
    • Dashboard creation & editing via the Sentry CLI: You can create and manage Sentry dashboards from your terminal via the all-new Sentry CLI.

    Note: Sentry dashboards use issue, tracing, and application metrics data. You can also query against multiple event types in Sentry and save queries to dashboards.

    Agentic dashboard generation and editing

    You can now create and edit dashboards in Sentry agentically via the same capabilities that power Seer, Sentry’s AI debugger (Note: while Seer is an add-on option, agentic dashboard creation is a separate feature that is available for free). When you create or edit a dashboard, you still have the option to add or edit manually, but you can now just tell Sentry what you want and we’ll put it together for you automatically. Creating and editing dashboards with AI makes the experience of going from concept to final dashboard much faster than manual creation:

    It’s a best practice to use agentic dashboard creation as a starting point for a new dash or edits to an existing dash, and then verify and tweak the updates to make sure it’s exactly what you want. This experience is still in open beta, so we’re still ironing out some of the kinks.

    Many more dashboards can now easily be created. With this in mind, we’ve created a markdown widget to encourage you to leave notes and document what you’ve built:

    Dashboard revision history

    Dashboards now maintain a revision history. Any edits made through the UI, Seer agent, or API are automatically tracked. To view prior revisions, click the clock icon in the upper-right corner.

    If you, or a 🤖, make a mistake, you can restore a known-good version by selecting a previous revision and clicking Revert to Selection.

    Sentry use case: fixing and monitoring jest tests

    Last week, we increased the number of CI runners we use for jest tests, moving from 4 to 8 on our main branch. We’ve had 4 runners for years to parallelize the work. Total CI time depends on how long the slowest runner takes to do its work; to make sure that everything finishes at the same time we measure the duration to run each test file and parallelize based on that. More runners should mean faster CI time.

    Instead, we noticed that overall CI time had been regressing for a few days, going from 6 minutes up to 10. The culprit was that the balancer script wasn’t running successfully because tests were failing out. Once we fixed some flaky tests, that time went down from ~10 minutes to less than 4. Our new runner configuration did improve overall CI time after all!

    To prevent this from happening again we used agentic dashboard creation (plus some manual metric creation) to whip up some new dashboards (and monitors) to keep tabs on flakes, balance failures, and overall slowness:

    Insights are now Sentry dashboards

    In the Dashboard nav item, you’ll see the option to explore Sentry Built dashboards:

    This is a collection of dashboards pre-built by Sentry to address common monitoring use cases. The Sentry-built dashboards cannot be edited, but they can be duplicated to create custom dashboards. You can think of them as templates that can be adapted to address your specific use case.

    On the frontend side, the Web Vitals dashboard surfaces LCP, INP, CLS, and TTFB across your real users, broken down by page, with a Performance Score that flags which pages have the most room to improve. Frontend Session Health connects deployments to crash and error rates, so you can see when a release tanked your stability. Frontend Assets shows you which JS and CSS assets are slow or render-blocking, useful when LCP regressed and you don’t yet know why.

    On the backend side, you get dashboards for slow queries (with drill-downs into individual query summaries and sample events), cache hit/miss rates, queue throughput and processing latency, and outbound API requests grouped by domain. The Backend Overview ties these together with p50/p75 duration and the most time-consuming queries and domains.

    For mobile, there’s Mobile Vitals (cold/warm app starts, slow and frozen frame rates, TTID/TTFD), Mobile Session Health (crash-free sessions and users, with release annotations), and dedicated drill-downs for app starts and screen rendering.

    There are also framework-specific dashboards: a Next.js Overview with a tree-based SSR view for finding performance bottlenecks, and a Laravel Overview tuned for Laravel-specific metrics.

    Creating dashboards via the Sentry CLI

    The Sentry CLI includes a full dashboard command, bringing dashboard creation and management out of the browser and into your shell. You can list, view, create, and modify dashboards, including adding, editing, and deleting individual widgets, without ever leaving your terminal. With the new dashboard command, dashboards become code-adjacent artifacts: scriptable, repeatable, and reviewable. Define dashboards in shell scripts or CI pipelines, commit them alongside your application code, and roll them out the same way you ship features.

    Every command supports --json output, making it straightforward for scripts, internal tools, or AI coding agents to provision and update dashboards programmatically (that means you can easily create dashboards from Claude Code, GitHub Copilot, Cursor, or your agent of choice).

    Sentry use case: investigating integrations

    In order to test out a potential yabeda integration for application metrics, one of our engineers created a custom dashboard with the CLI and documented the process.

    Get started

    Whether you’re cloning a Sentry-built dashboard as a starting point, prompting an agent to spin one up from scratch, or scripting dashboard creation directly from your terminal, the goal is the same: spend less time building the view and more time acting on what it shows you:

    • Sentry Dashboards are available now on all plans. Open Dashboards to see them.
    • Custom Dashboards are available on all plans. Click Create Dashboard to start from scratch, or duplicate a pre-built dashboard.
    • Agentic Dashboard creation is live now for organizations with AI features enabled. If you don’t see the Generate Dashboard option, check your org’s AI settings.

    Have questions or feedback?

    • Join the conversation in our Discord

    New to Sentry?

    • Try Sentry for free
    Original source
  • May 8, 2026
    • Date parsed from source:
      May 8, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    Monitor Unreal Engine Game Performance with Application Metrics

    Sentry adds automatic performance metrics for Unreal Engine, bringing FPS, frame time, network health, and game stats into Sentry for better visibility into real player experience. The experimental feature is enabled by default in Unreal SDK 1.11.0.

    Your Unreal game can ship with zero errors and still not feel great. Stutters during combat, a frame-rate cliff on the big boss, rubber-banding in multiplayer, none of it shows up as a crash and none of it shows up in Sentry, leaving you without any visibility into what your players are actually experiencing in the wild. Well, until now.

    Unreal Engine already gives you plenty of tools to measure game performance and collect runtime stats, but all that data stays on the dev’s machine.

    The Unreal SDK’s new automatic performance metrics feature closes this gap by piping FPS, frame time, network health, and other common game telemetry straight to Sentry, so your team gets actionable insight into where performance breaks down, on which hardware, for which players. Pair it with Release & Health and you can watch the performance impact of each release land over time.

    A quick note before we dig in: every gamedev has used a profiler at some point. Automatic performance metrics are a different-but-related tool, both go after the same problem at different layers: metrics find where the game is slowing down, profiling explains why.

    What Sentry now tracks

    Currently, Unreal SDK auto-instruments metrics for several key areas that impact overall performance including frame time, network and game-specific stats.

    Frame time

    The most direct read on whether your game feels responsive. Frame times tell you “how long the engine spent on each frame”; breaking it down by thread tells you which subsystem is the bottleneck.

    • Average FPS
    • Total frame time
    • Game thread work time
    • Render thread work time
    • GPU frame time

    Comparing game thread vs render thread vs GPU time is the classic way to tell whether you’re CPU-bound or GPU-bound and which team (gameplay, rendering, content) owns the fix.

    Network insights

    Multiplayer performance lives or dies by connection quality, and crash reporting can’t see any of it. These metrics tell you whether packet loss, latency or bandwidth starvation is quietly degrading the experience.

    • Incoming/outgoing bandwidth
    • Packet throughput and loss
    • Client ping and jitter
    • Active connection count

    Server builds additionally get per-client ping averages, per-client bandwidth and saturated-connection counts for load-shedding analysis (see the full list of network metrics).

    These metrics only exist during active multiplayer sessions. Singleplayer games without networking emit nothing here and some values are client-only (ping, jitter) or server-only (active clients, saturation).

    Game stats

    A small grab-bag of engine-level signals that often explain hitches the frame-time breakdown alone can’t.

    • Number of active UObjects
    • Physical memory used by the process
    • Duration of the blocking GC pause

    A UObject count that climbs steadily between GCs is a classic leak signature and correlating it with GC pause duration often reveals exactly when a leak starts hurting player experience.

    Unlike frame time, these are sampled on a slower cadence: memory and object count every 60 seconds, GC pause emitted after each collection cycle. Values change slowly enough that per-frame resolution would be wasted throughput.

    Sampling performance metrics

    Emitting a metric every frame would be an overhead on its own. To avoid that, the SDK samples at a fixed interval, emitting one data point every N frames for per-frame metrics like frame time and FPS, and every N seconds for slower-changing ones like memory use or network health. The defaults are conservative and tunable per project:

    • ~2 samples per second for frame time at 60 FPS
    • Every 10 seconds for network
    • Every 60 seconds for game stats

    On any single client this is sparse, a hitch on a non-sampled frame won’t be captured. But across many players the aggregate distribution converges on the real picture. You want to know “what’s the p95 frame time on RTX 3050 hardware?”, not “what did frame #47312 look like on dev’s laptop.” If you need tighter resolution simply dial the interval down.

    Metrics attributes

    An aggregate FPS number on its own doesn’t tell you much. What makes it useful is breaking it down: per GPU, per platform, per level. Every automatic metric is tagged with context attributes so you can do exactly that:

    • GPU model name
    • Number of CPU cores
    • Total physical RAM
    • Screen resolution
    • Current game map/level name

    Metrics also carry the release version, operating system, and crucially the trace ID of whatever was happening when they were emitted. That last one is what separates metrics-in-Sentry from a standalone monitoring tool: spot a frame-time spike in the dashboard, click into the sample and you land in the full trace for that moment alongside any errors and spans captured with it.

    For example, group FPS (game.perf.fps) by GPU (gpu.name) and the answer to “what FPS do RTX 3080 players actually see versus RTX 3050?” is one query away. Swap the grouping to OS (os.name) and you can compare memory footprint across Xbox, PlayStation and Switch.

    Try it out and tell us what’s next

    Automatic performance metrics are enabled by default in Unreal SDK 1.11.0. See the Unreal SDK metrics docs for more on engine-version requirements and advanced configuration. Automatic metrics work on desktop, consoles and Android (with iOS support coming soon).

    Ship a build with automatic performance metrics enabled and let it run for a few sessions, that’s often enough to see whether hardware segmentation, frame-time percentiles or network health are already surfacing something worth fixing.

    And since the feature is still experimental, what gets measured next is up for grabs. If there’s a signal you wish we were capturing, open an issue on the Unreal SDK repo, as that’s the best way to shape where this goes.

    Have questions or feedback?

    New to Sentry?

    • Try Sentry for free
    Original source
  • May 6, 2026
    • Date parsed from source:
      May 6, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    Improved debugging for Expo apps with the React Native SDK

    Sentry improves its React Native SDK for Expo apps with automatic OTA update and environment context, emergency launch alerts, EAS Build health tracking, Expo Router prefetch spans, and image and asset loading instrumentation for clearer debugging and performance insight.

    Automatic OTA update context on every event

    Events from Expo apps account for about 75% of the total event volume we receive from React Native apps. That number made it an easy decision to invest in updates to the Sentry React Native SDK to improve the debugging and performance workflow for your Expo apps.

    With these updates, you can now:

    • Filter issues by OTA update channel or version to instantly narrow down whether a problem is tied to a specific update
    • Get alerted on emergency launches so you know when your OTA pipeline is failing before users report it
    • Track EAS Build health in Sentry so you don’t have to dig through build logs to find out what broke
    • See the full picture of navigation performance including prefetch timing and asset loading

    When you ship over-the-air updates with Expo Updates, things can go wrong in ways that are invisible without the right context. Which update channel was the user on? Which runtime version? Was this the embedded bundle or a downloaded update?

    Now, every Sentry event is automatically enriched with an ota_updates context, with no other setup required. You get the update ID, channel, runtime version, launch duration, and whether the app is using embedded assets. All of this is captured out of the box in Expo projects.

    We also set searchable tags (expo.updates.channel, expo.updates.runtime_version, expo.updates.update_id) on every event, so you can filter your issue stream down to a specific channel or update with a single search query.

    Emergency launch detection

    Expo Updates performs an emergency launch when it fails to load the latest OTA update and falls back to the embedded bundle. When this happens, your users are silently running an older version of your app, and you might not even know.

    The SDK now detects emergency launches at startup and automatically sends a warning-level event to Sentry with the reason. You can set up an alert on the expo.updates.emergency_launch tag and know immediately when your update pipeline is broken in production.

    EAS build hooks: Track build failures in Sentry

    Build failures in EAS Build happen on remote infrastructure, outside your local environment and outside your app. Until now, debugging them meant digging through EAS build logs manually.

    With the new EAS Build Hooks, you can send build lifecycle events directly to Sentry. Add three script entries to your package.json (or just one if you prefer the combined on-complete hook) and every failed build will send an EASBuildError event with the build platform, profile, build ID, git commit hash, and CI status.

    You can also capture successful builds to give you a complete picture of your build pipeline health right inside Sentry. All events are tagged with eas.* tags for easy filtering and alerting.

    Setup is minimal: point the hook scripts at the ones the SDK provides, set your DSN as an EAS secret, and you’re done. Check out the EAS Build Hooks documentation for setup instructions.

    Performance spans for Expo Router prefetching

    Expo Router v5 introduced router.prefetch() to preload routes before the user navigates to them. It’s a great tool for perceived performance, but until now, prefetch timing was invisible in your traces.

    Wrapping your router with Sentry.wrapExpoRouter(useRouter()) now creates a navigation.prefetch span for each prefetch call. You can see exactly how long route preloading takes alongside your other navigation spans, and identify routes where prefetching is slow or unnecessary.

    Expo constants and environment context

    Every event from an Expo app is automatically enriched with an expo_constants context containing metadata about the execution environment: where the app is running (Expo Go, standalone, bare), the app name and version from app.json, Expo SDK version, EAS project ID, and debug mode status.

    Combined with the OTA updates context, this gives you a complete picture of the environment for every event without writing a single line of configuration code.

    Image and asset loading instrumentation

    Image and asset loading is one of the biggest contributors to how fast your app feels. We’ve added automatic performance spans for two of the most common Expo packages:

    • expo-image: Wrap Image with Sentry.wrapExpoImage(Image) once at startup, and every Image.prefetch() and Image.loadAsync() call gets a performance span.
    • expo-asset: Wrap Asset with Sentry.wrapExpoAsset(Asset) for spans on Asset.loadAsync().

    Both wrappers are safe to call multiple times, create spans only when a trace is active (zero overhead otherwise), and don’t require expo-image or expo-asset to be installed. They’re peer dependencies.

    Getting started

    All of the OTA update and constants context is enabled by default. No configuration, no extra dependencies. For build hooks and performance instrumentation, setup is a few lines of code. Make sure you’re on version 8.10 to get the latest improvements and fixes.

    Expo also allows you to pull in issue details and replays from Sentry for errors occurring in your EAS deployments.

    Don’t have a Sentry account yet? Sign up for free, the developer plan includes everything you need to instrument an Expo app end to end. Have feedback on these integrations or ideas for what should come next? Open an issue on getsentry/sentry-react-native or drop into our Discord.

    Original source
  • May 5, 2026
    • Date parsed from source:
      May 5, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    Introducing Application Metrics: Track the signal, see the spike, jump to the trace

    Sentry launches Application Metrics, a new way to track high-fidelity app signals with user and trace context. It helps teams spot issues earlier, filter by rich attributes, and jump from metric spikes to traces, logs, and errors for faster debugging.

    TL;DR

    We just launched Application Metrics, a new way to track critical signals in your application. It lets you understand your users with context and catch problems before they become errors.

    A few weeks ago we had a bug with Session Replay. Replays were failing in some browsers once more than 1,000 video segments loaded. We had no idea how often it happened or who was hitting it, and because the failure didn’t always produce an error, we had no way to find affected users to reproduce it.

    Before, we could’ve answered this with spans or logs, but it’s clunky — spans are often sampled, so you can miss outliers; logs are less structured and tend to change over time. Both are better suited for investigation. Metrics are ideal for tracking known behaviors over time. So we set up a metric in the Sentry SDK with a user and provider attribute, filtered for sessions over 1,000 segments, and had a repro case in minutes.

    That’s the job Application Metrics is for: track the signals you care about, and attach the context you might need later. When something breaks, the data is already there waiting.

    Full events, not pre-aggregated counters

    Metrics tools designed for tracking infrastructure telemetry tend to aggregate, stripping out information like user, IP address, and region. They’re just a counter.

    Sentry’s Application Metrics stores full events, including high-cardinality fields like user. So you’re able to ask not just “was the checkout experience slow in my application?”, but “was the checkout experience slow for users on the east coast?”, or “was a specific user’s scheduled job causing a queue backlog?”

    Same SDK, one line of code

    If you’re on a recent Sentry SDK, metrics are already enabled. No new dependencies or sidecar — just one more line.

    There are three types you’ll reach for most:

    • Counter — increment a number each time something happens. Think payment.declined, search.zero_results, or email.failed. Good for tracking rates and totals you want to alert on.
    • Distribution — record a value each time something happens, then ask questions about the spread. How long did that job take? How many items were in the queue? Use this when the average isn’t the whole story.
    • Gauge — track a current value over time. queue.depth, cache.size, active.connections. The number you’d want on a dashboard.

    You can attach attributes to all three. That’s where Application Metrics differs from many infrastructure monitoring tools, which pre-aggregate and strip context. When you attach user.id, region, or projectId, the event is stored with that context intact — so when a distribution spikes, you’re not just looking at a number, you’re looking at a number tied to a specific user, in a specific region, on a specific project.

    Click a spike, see the trace

    By storing full metrics events — including the trace ID — metrics become part of a broader trace-connected debugging workflow.

    When a metric reaches an unexpected threshold (a background job backing up with unsent emails; a UI component taking painfully long to load) you can jump from that metric to traces, logs, and errors, and get a full picture of what actually went wrong around the time your pager went off:

    • Is a 429 error happening in a loop at the same time that a distribution measuring React component load times spikes?
    • Is an upstream email service running slow at the same time that a gauge measuring queue depth increases?

    How we actually used this to find a Session Replay bug

    To investigate the Session Replay problem, we began by adding a distribution that tracked the number of video segments loaded. We included the high-cardinality projectId attribute.

    Here’s the code we added to start tracking video segments in replays:

    const replayId = replay?.getReplay().id;
    const projectId = replay?.getReplay().project_id;
    const onLoadAllEvents = useEffectEvent(() => {
      const attributes = {
        projectId: String(projectId),
        replayId,
      };
      Sentry.metrics.distribution('replay.eventCount', events?.length ?? 0, { attributes });
      Sentry.metrics.distribution('replay.videoEventCount', videoEvents?.length ?? 0, { attributes });
    });
    

    See getsentry/sentry#114001.

    We attached replayId and projectId as attributes on the scope so we could isolate high event counts to specific projects and replays. Given that we were having trouble reproducing the problem, this would help us catch the issue red-handed, tracing it back to a specific organization.

    With that in place, we quickly learned two things:

    • The issue was rare — just 7 occurrences in the past week.
    • We had the exact users affected.

    From there, we could trace those sessions, reproduce the issue, and fix it.

    Because each metric event carries a trace ID, we could go further. We added targeted logs to see exactly what the user was doing when >1,000 frames loaded — were they scrubbing the video, loading many videos in succession, etc. Next time we saw a replay.videoEventCount over 1,000, we jumped to the connected trace, saw the log lines, and had the context to fix the bug.

    Metrics vs. everything else

    Metrics aren’t a replacement for errors, traces, or logs. They fill a specific gap: tracking interesting, well-understood events in your application with high fidelity.

    Not every event needs to be a metric. Logs are great during investigation. But when you find a signal you care about long-term — something that tracks application health — turn it into a metric.

    Good candidates: business KPIs tied to code execution (payment.declined, search.zero_results), application health indicators (job.retried, email.failed), resource utilization (queue.depth, cache.hit_rate), and success/failure rates you want to alert on.

    Not the right fit: infrastructure metrics like CPU and memory (use your infra tool), forensic debugging (use Sentry Logs), or request-level performance and connectivity (use Sentry Tracing).

    Start with the metric your team checks first

    Every Sentry plan comes with 5GB of Application Metrics. If you’re on a recent SDK version, you already have access.

    Pick the one signal your team reaches for first when something goes wrong. Maybe it’s checkout.failed, maybe it’s queue.depth, maybe it’s deployment.duration. Instrument it, attach the attributes you’d want to filter on — user, project, region, whatever matters for that metric — and set an alert threshold.

    When it fires, click through to the trace, find the context around the spike, and fix it.

    Start a free Application Metrics trial in Explore > Metrics, or check out the Application Metrics docs →.

    Original source
  • May 5, 2026
    • Date parsed from source:
      May 5, 2026
    • First seen by Releasebot:
      Aug 10, 2026
    Sentry logo

    Sentry

    26.4.2

    Sentry adds major updates across Autofix, Seer, command palette, dashboards, issues, traces, and integrations, with richer AI-assisted workflows, faster navigation, new admin and billing tools, and polished UI improvements throughout the product.

    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

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.