Sentry Release Notes
21 release notes curated from 17 sources by the Releasebot Team. Last updated: Aug 10, 2026
- Jul 28, 2026
- Date parsed from source:Jul 28, 2026
- First seen by Releasebot:Aug 10, 2026
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
- Jul 24, 2026
- Date parsed from source:Jul 24, 2026
- First seen by Releasebot:Aug 10, 2026
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.
- 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.
- In Project Settings > Plugins > Sentry, expand “Session Replay” and toggle “Enable session replay (experimental)” .
- 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.
- Jul 23, 2026
- Date parsed from source:Jul 23, 2026
- First seen by Releasebot:Aug 10, 2026
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 ✨
Original source
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 - Jul 15, 2026
- Date parsed from source:Jul 15, 2026
- First seen by Releasebot:Aug 10, 2026
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 ✨
Original source
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 - Jun 15, 2026
- Date parsed from source:Jun 15, 2026
- First seen by Releasebot:Aug 10, 2026
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 ✨
Original source
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 Similar to Sentry with recent updates:
- Smokeball release notes137 release notes · Latest Aug 4, 2026
- Cosmolex release notes20 release notes · Latest Jul 30, 2025
- PracticePanther release notes35 release notes · Latest Jul 7, 2026
- Salesforce release notes58 release notes · Latest Jul 1, 2026
- Microsoft release notes768 release notes · Latest Aug 5, 2026
- Zoom release notes205 release notes · Latest Jul 27, 2026
- Jun 12, 2026
- Date parsed from source:Jun 12, 2026
- First seen by Releasebot:Aug 10, 2026
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 → urlopenStacktrace 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 → urlopenBoth 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
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:
- Make a code change
- Generate screenshots of your application
- Compare those screenshots against a baseline
- 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.pngThis 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 --selectiveThis 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?
- Join the conversation in our Discord
- Email us at [email protected]
New to Sentry?
- Try Sentry for free
- Jun 2, 2026
- Date parsed from source:Jun 2, 2026
- First seen by Releasebot:Aug 10, 2026
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
- May 27, 2026
- Date parsed from source:May 27, 2026
- First seen by Releasebot:Aug 10, 2026
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
- May 18, 2026
- Date parsed from source:May 18, 2026
- First seen by Releasebot:Aug 10, 2026
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 ✨
Original source
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 - May 14, 2026
- Date parsed from source:May 14, 2026
- First seen by Releasebot:Aug 10, 2026
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
- May 8, 2026
- Date parsed from source:May 8, 2026
- First seen by Releasebot:Aug 10, 2026
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?
- Join the conversation in our Discord
- Email us at [email protected]
New to Sentry?
- Try Sentry for free
- May 6, 2026
- Date parsed from source:May 6, 2026
- First seen by Releasebot:Aug 10, 2026
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
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
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 ✨
Original source
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
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.