Sentry

Developer Tools

Application monitoring and error tracking.

Latest 26.7.2 · by SentryWebsitegetsentry/sentry

Release activity

Release activity — 10 releases across 10 days since Apr 15, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Apr 15, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 19, 2026No releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026
MondayNo releases on Apr 20, 2026No releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 20261 release on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 20261 release on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026
TuesdayNo releases on Apr 21, 2026No releases on Apr 28, 20261 release on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 20261 release on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 20261 release on Jul 28, 2026No releases on Aug 4, 2026
Wednesday1 release on Apr 22, 2026No releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 20261 release on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 20261 release on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 23, 2026No releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 20261 release on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on Apr 24, 2026No releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on Apr 25, 2026No releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026

10 releases since Apr 15, 2026

Changelog

26.7.2

Added 20
  • Use GALE in group notes endpoints and GroupActivitiesEndpoint
  • Tag project-creation page views by sticky org origin
  • Attribute getting-started header actions and project getting-started funnel by variant
  • Instrument SCM and legacy alert & notification for project creation
  • Record Slack trigger activity for Autofix
  • Open PRs as draft and mark ready when CI is green
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
View originalPermalink
How 26.7.2 went

26.7.1

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

26.7.0

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

View originalPermalink
How 26.7.0 went

26.6.0

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

Plus 12 more

View originalPermalink
How 26.6.0 went

26.5.2

Added 20
  • Filter invoice comparison to both-sides orgs and parity metric in Admin
  • Add Billing Platform admin page with invoice comparison
  • Add generic type parameter [T] to 33 Serializer subclasses in API
  • Add Serializer[T] generic type with pilot on environments endpoint
  • Opt 43 endpoints into Response[T] typed bodies
  • Type @extend_schema responses via Response[T] stub and linter
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
  • :bug: 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
View originalPermalink
How 26.5.2 went

26.5.1

Added 15
  • Expose proxy latency metrics by target in API gateway
  • Add non-orgid/slug endpoints to proxied cell requests
  • Allow non seat based seer to skip setup in Autofix
  • Add Autofix introspection analytics
  • Add UI labels for missing AutofixReferrer values
  • Render line numbers in Autofix evidence
Changed 3
  • Switch Autofix inspection to single LLM call using Gemini Flash
  • Freeze visible action list during keyboard navigation in command palette
  • Swap Conversations badge from alpha to beta
Removed 1
  • Remove cross-org feature gating from notification settings
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
View originalPermalink
How 26.5.1 went

26.5.0

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

Plus 1 more

View originalPermalink
How 26.5.0 went

26.4.2

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

View originalPermalink
How 26.4.2 went

26.4.1

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

26.4.0

New Features ✨
Aci
  • Implement created_by search filter in Alerts by @malwilley in #112950
  • Add created_by search filter to workflow index endpoint by @malwilley in #112873
  • Modify test action endpoint to accept a project slug by @malwilley in #112859
  • Add onboarding banner by @malwilley in #112737
  • Register workflow engine onboarding banner prompt by @malwilley in #112615
  • Add ability to create envs inline by @saponifi3d in #112558
  • Add ability to create new environments in the API by @saponifi3d in #112537
  • Update connected alerts empty state by @malwilley in #112397
  • Add 'moved' badge to old alerts nav item by @malwilley in #112392
  • Add markdown icon to monitor description input by @malwilley in #112295
  • Update all monitor forms use more consistent wording and a combined assign/describe section by @malwilley in #112205
  • Add issue preview to uptime monitor form by @malwilley in #112224
  • Add issue preview to cron monitor form by @malwilley in #112237
  • Update new alert UI copy to make it a bit easier to unders… by @malwilley in #112051
  • Add numbers to monitor and alert form sections by @malwilley in #111898
  • Add types for DetectorInput and DataSourceInput by @saponifi3d in #112050
  • Add/update workflows to a detector in DetectorValidator by @ceorourke in #111925
  • Move monitor project/environment fields from the header to the form body by @malwilley in #111762
  • Release rule stats and group history wfe endpoints by @ceorourke in #111737
  • Add feature flag for combined rules endpoint by @ceorourke in #111677
  • Align metric chart data points with open period markers by @malwilley in #111595
  • Schedule sentry.workflow_engine.tasks.cleanup.prune_old_fire_history every 2min by @kcons in #111550
  • Add issue preview to the metric monitor form by @malwilley in #111420
  • Make rule stats and group history endpoints backwards compatible by @ceorourke in #111159
  • Add owner to workflow serializer response by @ceorourke in #110817
Admin
  • Add gsAdmin action to adjust dashboard parallel query limit by @DominikB2014 in #111889
  • Replace startup program notes field with program dropdown by @rahulchhabria in #111701
  • Add "Add to Startup Program" customer action by @rahulchhabria in #111266
Agents
  • Improve AI span presentation with tool input preview and response model by @obostjancic in #112579
  • Use CurrencyCell in Agent Monitoring dashboards and handle negative costs by @obostjancic in #111986
  • Fall back to gen_ai.function_id for agent name resolution by @obostjancic in #111608
  • Add agent monitoring onboarding for Deno by @priscilawebdev in #111282
  • Add agent monitoring onboarding for Bun by @priscilawebdev in #111281
Ai Insights
  • Add param change analytics event by @obostjancic in #111392
  • Update dashboard widgets by @obostjancic in #111069
  • Ai content renderer by @obostjancic in #110847
Ai Issues
  • Add new AI detected issue types to frontend by @roggenkemper in #112971
  • Maps issue titles to new groups by @roggenkemper in #112972
Alerts
  • Add per-method workflow engine flags for project alert rule endpoints by @kcons in #112827
  • Set up prune_old_open_period_activity by @kcons in #112243
  • Report in Sentry and headers whether legacy models were used by @kcons in #110954
  • Add pure Detector/Workflow version of OrganizationCombinedRuleIndexEndpoint by @kcons in #110700
Api
  • Make InvalidParams a ParseError by @kcons in #112542
  • Track camelCase vs snake_case parameter key usage in CamelSnakeSerializer by @michelletran-sentry in #111120
Assisted Query
  • Add AI search bar to metrics tab by @isaacwang-sentry in #111797
  • Add metrics search feature flag and forward options by @isaacwang-sentry in #112240
  • Add tracemetrics built-in fields to _get_built_in_fields by @isaacwang-sentry in #111587
Attachments
  • Backfill EventAttachment.date_expires by @jan-auer in #111980
  • Write date_expires when saving attachments by @jan-auer in #111983
  • Add a date_expires column by @jan-auer in #111881
Autofix
  • Pass reasoning_effort=medium for explorer autofix RCA by @JoshFerge in #112928
  • Change default intelligence level from low to medium by @JoshFerge in #112920
  • Add Seer project preference getters to Seer RPC by @srest2021 in #112624
  • Thread insert_index through explorer API for step retry by @isaacwang-sentry in #112287
  • Add copy PR URL button and open icon to pull request card by @chromy in #112358
  • Add analytics events for autofix phase start and completion by @chromy in #112098
  • Add copy PR URL button to v3 pull request card by @chromy in #112356
  • Add root cause as valid stopping point under feature flag by @srest2021 in #112055
  • Add seerDrawer to location by @Zylphrex in #112048
  • Replace ghost with loading text by @Zylphrex in #112014
  • Remove empty file patches from autofix by @Zylphrex in #111961
  • Use autofix endpoint for PR creation by @Zylphrex in #111888
  • Pass PR description suffix for explorer autofix by @Zylphrex in #111814
  • Support optional repo name when creating PRs by @Zylphrex in #111804
  • Update seer explorer autofix last triggered on completion by @Zylphrex in #111663
  • Autotrigger root cause if legacy autofix ran by @Zylphrex in #111718
  • Handle PR creation in group ai autofix endpoint by @Zylphrex in #111565
  • Track below_occurrence_threshold as a filtered skip reason by @trevor-e in #111669
  • Remove agent handoff from solution step by @Zylphrex in #111653
  • Break down not_eligible skip reasons for seer automation by @trevor-e in #111638
  • Use new seer explorer autofix last triggered column by @Zylphrex in #111484
  • Add metrics and logging for filtered-out seer automation issues by @trevor-e in #111486
  • Add explorer autofix fields by @Zylphrex in #111367
  • Render full coding agent result text as markdown in card by @sehr-m in #111365
  • Support agent handoff after root cause by @Zylphrex in #111164
  • Better loading and error states for autofix in sidebar by @Zylphrex in #111144
  • Support autofix configurations in redesigns by @Zylphrex in #111081
  • Support coding agents in redesigns by @Zylphrex in #110900
  • Handle when autofix generates no artfacts by @Zylphrex in #110797
Aws Lambda
  • Add frontend pipeline steps for AWS Lambda integration setup by @evanpurkhiser in #112736
  • Add API-driven pipeline backend by @evanpurkhiser in #112626
Billing
  • Add checkout tooltip for metrics by @brendanhsentry in #112951
  • Display a customer's managed status in _admin by @swartzrock in #112757
  • Add notification setting for trace metric bytes by @brendanhsentry in #112282
  • Gate trace metric bytes notification behind feature flag by @brendanhsentry in #112285
  • Select single project usage CSV by @brendanhsentry in #112044
  • Implement ClickHouse backend for UsageService by @dashed in #111799
Bitbucket
  • Add API-driven pipeline backend for Bitbucket integration setup by @evanpurkhiser in #112396
  • Add frontend pipeline step for Bitbucket integration setup by @evanpurkhiser in #112418
Cells
  • Compare locality not cell name in fork locality restriction by @lynnagara in #112883
  • Add GET path for /organization list on control silo by @lynnagara in #112622
  • Remove legacy non-org-scoped accept invite API route by @lynnagara in #112767
  • Remove the legacy org invite route by @lynnagara in #112634
  • Create the projectkey endpoint for synapse by @lynnagara in #112047
  • Support multi-cell jira integration by @lynnagara in #111696
  • Migrate clear_region_cache to clear_cell_cache by @lynnagara in #111681
  • Wire projectkeymapping to the control silo by @lynnagara in #110231
  • Cell architecture and migration skill by @lynnagara in #111563
  • Locality configuration should specify cell for new orgs by @lynnagara in #111241
Chartcuterie
  • Support multiple display types in Explore chart rendering by @DominikB2014 in #112610
  • Add explore line chart render descriptor by @DominikB2014 in #112584
Ci
  • Backend selective via unified coverage db by @joshuarli in #110792
  • Xdist backend test workflow by @mchen-sentry in #110776
Cmd K
  • Add 'superuser' keyword to admin actions by @JonasBa in #112298
  • Add comprehensive analytics for the new command palette by @jshchnz in #111684
  • Add Amplitude analytics instrumentation to command palette by @JonasBa in #111553
Cmdk
  • Add default limit=4 for async resource actions by @JonasBa in #112649
  • Add admin actions group for staff users by @JonasBa in #112244
  • Add Project Settings group to command palette by @JonasBa in #111659
Code Mappings
  • Handle Java monorepo source roots in auto-derivation task by @romtsn in #112655
  • Allow multiple source roots per stack root by @romtsn in #111704
Codecov
  • Remove Codecov webhooks and TA feature flag by @calvin-codecov in #109844
  • Remove Test Analytics UI and Prevent tokens by @calvin-codecov in #109291
Codeowners
  • Optimize DB query construction for building CODEOWNERS associations by @shashjar in #111693
  • Add data-browsing and streaming owners for spans scripts by @lvthanh03 in #111735
  • Allow a dirty baseline file as long as code has CODEOWNERS coverage by @mikejihbe in #111491
  • Add codeowners enforcement by @mikejihbe in #110578
Coding Integrations
  • Add github copilot as an integration (frontend) by @sehr-m in #111851
  • Github copilot integration backend by @sehr-m in #111850
Context Engine
  • Only search orgs with SCM integration for index by @Mihir-Mavalankar in #111537
  • Index scheduling job changes by @Mihir-Mavalankar in #111035
Conversations
  • Show [Filtered] in conversation list for scrubbed data by @obostjancic in #112786
  • Add conversation detail page with new design by @obostjancic in #112571
Dashboards
  • Add DashboardRevision model and migration by @skaasten in #112929
  • Add organizations:dashboards-revisions feature flag by @skaasten in #112923
  • Add insights-to-dashboards-ui-rollout feature flag by @gggritso in #112916
  • Add performance_score and opportunity_score to Explore by @DominikB2014 in #112146
  • Add thresholds support to generated dashboard widgets by @edwardgou-sentry in #112682
  • Track metrics for Seer dashboard create and edit flows by @edwardgou-sentry in #112595
  • Add beta badge to dashboard chat panel and minor style changes by @edwardgou-sentry in #112539
  • Support dashboard editing via Seer chat session by @edwardgou-sentry in #112489
  • Add ESC key to dismiss widget builder slideout by @NicoHinderling in #112186
  • Allow dashboard generation to filter for project and env by @edwardgou-sentry in #112150
  • Add text widget support to generated dashboards by @edwardgou-sentry in #112132
  • Use new loader visual in dashboard generation loading page by @edwardgou-sentry in #112365
  • Add flag to manage editing existing dashboards with ai by @edwardgou-sentry in #112394
  • Apply widget defaults to generated widgets by @edwardgou-sentry in #112036
  • Update /dashboard/generate endpoint to accept edit prompts by @edwardgou-sentry in #111957
  • Track seer session errors on generating dashboards by @edwardgou-sentry in #111827
  • Adds dashboards-ai-generate flag to Seer Explorer access list by @edwardgou-sentry in #111667
  • Add tableWidths to backend overview transactions table by @DominikB2014 in #111790
  • Add async queue parallel limit org option by @DominikB2014 in #111615
  • Blocks http_error_count function from dashboard generation by @edwardgou-sentry in #111637
  • Generated dashboards artifact schema improvements by @edwardgou-sentry in #111533
  • Adds more description context to artifact schema by @edwardgou-sentry in #111417
  • Redesign dashboard generation initial prompt step by @edwardgou-sentry in #111377
  • Disable lazy loading generated dashboards by @edwardgou-sentry in #111402
  • Use theme tokens for dashboard widget previews by @obostjancic in #110963
  • Updates initial loading page design for Dashboard generation by @edwardgou-sentry in #111327
  • Add category params to SeerExplorerClient in dashboard generate by @JoshFerge in #111301
  • Improvements to Dashboard generation tracking by @edwardgou-sentry in #111199
  • Moves dashboard generation metric to after polling reaches settled state + small fixes by @edwardgou-sentry in #111138
  • Add tooltips explaining dashboard linking by @DominikB2014 in #111139
  • Support linked dashboards in timeseries widgets by @DominikB2014 in #111078
  • Text widget add to dashboard flow by @nikkikapadia in #111019
  • Linkify replay.id and profile.id columns in table widgets by @gggritso in #111029
  • Adds serializer check to dashboards generation on completion hook by @edwardgou-sentry in #111059
  • Updates dashboard chat to continue polling after completion in case of validation errors resuming seer run by @edwardgou-sentry in #111027
  • Text widget in widget builder + edit flows by @nikkikapadia in #110800
  • Adds interval to dashboard artifact schema by @edwardgou-sentry in #110999
  • Add legendType configuration to widget builder by @DominikB2014 in #110906
  • Track dashboard generation validation success and fail metrics by @edwardgou-sentry in #110958
  • Dashboards generation chat panel improvements by @edwardgou-sentry in #110960
  • Adds validation completion hook to generate dashboards endpoint by @edwardgou-sentry in #110903
  • Tighten generated dashboard artifact model and improvements by @edwardgou-sentry in #110881
Data Export
  • Add exponential back off in case of rate limit errors from snuba by @manessaraj in #112813
  • Add synchronous in-browser download for small log exports by @manessaraj in #112688
  • Add logging for data-export-failure by @JoshuaKGoldberg in #112169
Errors
  • Main body content sections by @nikkikapadia in #112139
  • Add page filters and search bar UI by @nikkikapadia in #112003
  • Add sidebar item and routes for new Errors ui by @nikkikapadia in #111786
Eslint
  • No-unnecessary-use-callback by @TkDodo in #112689
  • Add no-flag-comments rule to disallow section separator comments by @evanpurkhiser in #112836
  • Enable @typescript-eslint/no-unnecessary-type-parameters by @JoshuaKGoldberg in #112404
  • Expand no-default-exports rule to all static default exports by @JoshuaKGoldberg in #111070
  • Expand no-default-exports rule to files with other named exports by @JoshuaKGoldberg in #110860
Experiments
  • Add useExperiment hook for flagpole experiments by @evanpurkhiser in #112001
  • Populate org serializer experiments dict from flagpole by @wedamija in #110814
Explore
  • Add 1 day interval option for durations >= 14 days by @gggritso in #112919
  • Enlarge chart size for explore Slack unfurls by @DominikB2014 in #112697
  • Add issue post processor on occurrences dataset by @manessaraj in #111724
  • Validate trace item search keys asynchronously by @nsdeschenes in #111189
  • EAP occurrences: resolve issue in query string via group_id by @manessaraj in #111101
  • Prioritize known fields in group by dropdown by @nsdeschenes in #109957
  • Allow skipping attribute type by @wmak in #110916
  • Add drag-and-drop reordering to Visualize toolbar by @JoshuaKGoldberg in #110842
Flagpole
  • Register onboarding-scm-experiment feature flag by @jaydgoss in #112157
  • Add experiment_mode field to Feature dataclass by @wedamija in #110806
Github
  • Handle installation_repositories webhook by @wedamija in #112227
  • Add missing test for githubIntegrationPipeline + cleanup by @evanpurkhiser in #112116
  • Add frontend implementation for GitHub integration pipeline by @evanpurkhiser in #111996
  • Add API-driven GitHub integration setup by @evanpurkhiser in #111728
Gitlab
  • Add frontend implementation for GitLab integration pipeline by @evanpurkhiser in #112153
  • Add API pipleine flag by @evanpurkhiser in #112367
  • Add API-driven GitLab integration setup by @evanpurkhiser in #111999
  • Add task to upgrade project webhooks by @iamrajjoshi in #111388
  • Add get_access_token() to GitLab integration by @billyvg in #111001
Grouping
  • Add replacement callback option to parameterizer by @lobsterkatie in #111352
  • Add raw_message fingerprint variable by @lobsterkatie in #111172
Hybridcloud
  • Propagate ViewerContext through cross-silo RPC by @gricha in #112248
  • Async apigateway by @gi0baro in #111307
Insights
  • Remove Projects from Insights navigation by @gggritso in #112535
  • Navigate to prebuilt dashboards from trace view and span summary by @DominikB2014 in #110739
  • Add banner to Mobile Overview page linking to Mobile Vitals Dashboard by @DominikB2014 in #110880
Integrations
  • Log integration_id and endpoint in integrations.http_response by @armenzg in #112961
  • Increase compare-commits cache by @armenzg in #112922
  • Add metrics to pipeline advancer and pipeline API endpoints by @evanpurkhiser in #112935
  • Pass initialData through to initialize by @evanpurkhiser in #112851
  • Support initial data binding during pipeline initialization by @evanpurkhiser in #112849
  • Send SLO lifecycle metrics to Sentry via SDK by @trevor-e in #112839
  • Log as warning when failed http.response by @armenzg in #112665
  • Propagate ViewerContext in MS Teams webhook by @gricha in #112414
  • Propagate ViewerContext in VSTS webhook by @gricha in #112413
  • Propagate ViewerContext in Jira Server webhook by @gricha in #112411
  • Propagate ViewerContext in Jira Cloud webhook by @gricha in #112412
  • Genericise repository syncing task by @wedamija in #112519
  • Return externalId from OrganizationIntegrationReposEndpoint by @wedamija in #112529
  • Add bitbucket, gitlab, slack to api mode features by @evanpurkhiser in #112501
  • Add flags for slack + bitbucket API pipelines by @evanpurkhiser in #112497
  • Add API driven pipeline for Slack by @evanpurkhiser in #112315
  • Set ViewerContext on webhook handlers by @gricha in #112284
  • Add API pipeline flag for github by @evanpurkhiser in #112280
  • Add on-demand source context fetching from SCM integrations by @mujacica in #110324
  • Add API mode support to IntegrationPipeline by @evanpurkhiser in #111454
  • Add lightweight RPC method to fetch org IDs by providers by @Mihir-Mavalankar in #111528
Intercom
  • Separate chat per org by @sentaur-athena in #112551
  • Closing intercom session on org change by @sentaur-athena in #112549
Issue Details
  • Add android native tombstones onboarding banner by @romtsn in #112478
  • Add analytics for similar and merged issues drawers by @cvxluo in #112618
  • Show supergroup in issue details sidebar by @scttcper in #112543
Issues
  • Use new stack trace in stack trace preview by @scttcper in #111592
  • Deduplicate replay-count API requests in issue stream by @scttcper in #112323
  • Refactor SuspectCommits layout, clean up types by @scttcper in #111818
  • Prefetch supergroup data and add stats columns to rows by @scttcper in #111719
  • Simplify shared issue event rendering by @scttcper in #111769
  • Recent issues with autofix view by @Zylphrex in #111617
  • New stack trace component by @scttcper in #109428
Logs
  • Moved LogsInfiniteTable inline with expand/contract button by @JoshuaKGoldberg in #109819
  • Move continue scanning into full button by @nsdeschenes in #112351
  • Add ourlogs-table-expando feature flag by @JoshuaKGoldberg in #112031
  • Add inline JSON syntax highlighting for log attributes by @JoshuaKGoldberg in #111730
  • Add JSON pretty-printing for log attributes by @JoshuaKGoldberg in #111077
Metrics
  • Add drag-and-drop reordering to metric panels by @nsdeschenes in #112671
  • Improve metrics refresh UI on narrow displays by @nsdeschenes in #112787
  • Add equation support to tracemetrics by @wmak in #112609
  • Add a metrics if-combinator by @wmak in #111837
  • Default trace metrics aggregate to sum by @nsdeschenes in #111516
  • Add refreshed trace metrics toolbar by @nsdeschenes in #111066
  • Refresh metrics panels behind tracemetrics-ui-refresh flag by @nsdeschenes in #110986
  • Add last seen, times seen, and attributes to metric dropdown by @nsdeschenes in #110879
  • Add canary metrics for HMAC failures and unsigned Seer requests by @tnt-sentry in #110640
Monitors
  • Add onboarding modal for the new alerts/monitors pages by @malwilley in #112694
  • Add info hint for diff-based issue detection by @mtopo27 in #111698
Nav
  • Adjust system alert layout by @natemoo-re in #112821
  • Improve What's New panel and primary nav overlays by @JonasBa in #112292
  • Add icon-only Feedback button to top navigation bar by @JonasBa in #111647
  • Improve mobile navigation by @JonasBa in #111549
  • Add cmd/ctrl+b nav toggle hotkey by @JonasBa in #111503
Notifications
  • Hook into the platform in the slack send_alert step for metric laerts by @Christinarlong in #112189
  • Add notification data and renderer for metric alerts by @Christinarlong in #111674
  • Add threading to notification service by @Christinarlong in #110951
Np
  • Adds Discord metric alert renderer by @GabeVillalobos in #112420
  • Adds Discord issue renderer, updates Slack renderer tagging extraction by @GabeVillalobos in #112079
  • Adds rough notification renderer for issue alerts, as a thin wrapper by @GabeVillalobos in #110929
  • Adds notification platform skill for creation of new notifications, providers, and renderers by @GabeVillalobos in #109754
Occurrences On Eap
  • Implement EAP query for eventstore get_events by @shashjar in #112423
  • Implement tagstore EAP query for group tag value iter by @shashjar in #112122
  • Implement tagstore EAP query for group list tag value by @shashjar in #111963
  • Implement tagstore EAP query for release tags by @shashjar in #111952
  • Implement EAP query for tagstore group tag value count by @shashjar in #111868
  • Implement EAP query for tagstore groups user counts (issue platform) by @shashjar in #111863
  • Implement EAP query for tagstore groups user counts (errors) by @shashjar in #111861
  • Implement errors EAP query for organization events tracing by @shashjar in #111093
  • Implement tracing errors query by @shashjar in #110720
  • Implement performance issues query for organization events tracing by @shashjar in #110723
Onboarding
  • Pre-populate repo selector with full repo list by @jaydgoss in #112685
  • Add onboarding docs for Vercel AI ToolLoopAgent by @constantinius in #112333
  • Gate SCM onboarding flow with useExperiment hook by @jaydgoss in #112206
  • Add animated Sentry logo to SCM onboarding steps by @jaydgoss in #112386
  • Add Litestar as a Python onboarding platform (FE) by @sentrivana in #111607
  • Added Metrics to Unity by @bitsandfoxes in #108118
  • Add Litestar as a Python onboarding platform (BE) by @sentrivana in #111522
  • SCM project details step UI polish and analytics by @jaydgoss in #111623
  • SCM platform features step UI polish and analytics by @jaydgoss in #111529
  • Add logs onboarding for Elixir by @sl0thentr0py in #110038
  • SCM connect step UI polish and analytics by @jaydgoss in #111478
  • Sync feature selections from context to SetupDocs URL params by @jaydgoss in #111334
  • Implement SCM project details step by @jaydgoss in #111306
  • Implement SCM platform & features step by @jaydgoss in #111160
  • Implement SCM_CONNECT step with provider connection and repo selection by @jaydgoss in #110883
Pipeline
  • Add completion view support to pipeline definitions by @evanpurkhiser in #112603
  • Detect API-driven pipelines in existing callback URL by @evanpurkhiser in #111455
  • Add OrganizationPipelineEndpoint for API-driven pipelines by @evanpurkhiser in #111539
  • Add shared OAuth login step and redirect popup hook by @evanpurkhiser in #111577
  • Add frontend pipeline framework by @evanpurkhiser in #111423
  • Add API mode support to base Pipeline by @evanpurkhiser in #111422
Preprod
  • Add artifact_type field to Explore UI (EME-874) by @cameroncooke in #113034
  • Add settings link to snapshot PR comments by @runningcode in #112909
  • Store metrics artifact type as string in EAP [backend] (EME-874) by @cameroncooke in #112905
  • Auto-filter installable:true when switching to Distribution view by @mtopo27 in #112533
  • Add snapshot PR comments toggle to project settings by @runningcode in #112362
  • Include authToken in ProjectPreprodUploadOptions by @lcian in #112466
  • Add snapshot PR comment templates by @runningcode in #112353
  • Check for actual build data when showing mobile builds tab by @NicoHinderling in #112525
  • Sort insight diff by total potential savings by @mtopo27 in #112476
  • Add snapshot details to admin info endpoint by @NicoHinderling in #112482
  • Upgrade admin panel's "rerun analysis" action to support batch (up to 100) by @NicoHinderling in #112481
  • Add snapshot auto-approval for repeated PR builds by @NicoHinderling in #112421
  • Add settings link to build distribution PR comments by @runningcode in #112366
  • Add installable attribute to EAP alias mappings by @mtopo27 in #112363
  • Split Mobile Builds settings into tabbed interface by @mtopo27 in #112151
  • Register feature flag and project option for snapshot PR comments by @runningcode in #112100
  • Add snapshot approval UI in header by @NicoHinderling in #111977
  • Add approval API endpoint and approval info in snapshot response by @NicoHinderling in #111976
  • Filter settings page builds by display type by @NicoHinderling in #112046
  • Create NEEDS_APPROVAL records in status check tasks by @NicoHinderling in #111975
  • Delete snapshot objectstore data on artifact deletion by @NicoHinderling in #111972
  • Add app identifier to size analysis alert notifications by @mtopo27 in #111994
  • Add triggered condition section for size analysis issues by @mtopo27 in #111978
  • Add value, conditions, and config to size analysis evidence_data by @mtopo27 in #111923
  • Add shadow taskbroker dispatch for launchpad integration by @NicoHinderling in #110602
  • Use sequential (n-1) comparisons for size analysis diff monitors by @mtopo27 in #111482
  • Improve Slack alert messages for size analysis monitors by @mtopo27 in #111660
  • Add preprod_artifact webhooks to frontend settings UI by @cameroncooke in #111475
  • Add build_distribution.completed webhook for Sentry Apps by @cameroncooke in #111474
  • Add Insight Diff section to issue detail by @mtopo27 in #111357
  • Add size_analysis.completed webhook for Sentry Apps by @cameroncooke in #111473
  • Register preprod_artifact webhook resource and event types by @cameroncooke in #111472
  • Show detector section in sidebar for size analysis issues by @mtopo27 in #111583
  • Add auto-expansion of a section on arrow key navigation by @rbro112 in #111536
  • Link artifact ID tags to build detail page by @mtopo27 in #111383
  • Support absolute detectors from single-build path by @chromy in #111141
  • Show processing state for snapshot comparisons by @NicoHinderling in #111355
  • Show original filename tooltip on renamed snapshots by @NicoHinderling in #111325
  • Add solo/diff toggle button to snapshot dev tools by @NicoHinderling in #111318
  • Add group support to snapshots frontend by @rbro112 in #110942
  • Reduce snapshots retention to 30 days by @lcian in #110988
  • Add Datadog metrics for snapshot upload and diff lifecycle by @NicoHinderling in #111024
  • Add group_id to all autofix.* events by @chromy in #110943
  • Add git metadata and artifact IDs as tags for size analysis issues by @mtopo27 in #110854
Profiling
  • New stack trace in span profile details by @scttcper in #112559
  • Use spans data source for profiles search bar in EAP mode by @mjq in #111772
Repos
  • Activate repo webhook and syncing task for GHE by @wedamija in #112247
  • Add audit logs when auto syncing repositories take 2 by @wedamija in #112378
  • Add task to periodically sync repos from github by @wedamija in #112043
  • Add routings for github installation_repositories webhook by @wedamija in #112226
  • Add framework for scheduling tasks from a queryset on a recurring basis by @wedamija in #111958
Scm
  • Add get_git_commit and get_tree for GitLab by @billyvg in #111363
  • Allow GitLab repos to be selected for Seer by @billyvg in #111446
  • Show repos from other/unknown providers in the treeview component by @ryan953 in #111280
  • Move static facade to module level and dynamically construct the SCM type from the provider's capabilities by @cmanallen in #111113
  • Add get_archive_link to SCM API by @billyvg in #110987
Scraps
  • Add slot component by @JonasBa in #112032
  • Add indeterminate loader (again) by @natemoo-re in #112138
  • Add hotkey module by @natemoo-re in #111444
  • Add StatusIndicator component by @JonasBa in #110878
Search
  • Add experimental "recommended" issue sort by @mrduncan in #111043
  • Switch filter operator from contains to is on dropdown selection by @nsdeschenes in #111668
Seer
  • Replace LLM triage with Explorer agent in night shift by @trevor-e in #112984
  • Add Sentry metrics to night shift pipeline by @trevor-e in #112967
  • Add ViewerContext authentication for Seer callbacks by @azulus in #112844
  • Add seer-run-id-in-slack feature flag by @alexsohn1126 in #112918
  • Add run ID to Seer Explorer Slack footer by @alexsohn1126 in #112835
  • Add Seer admin page with night shift trigger by @trevor-e in #112822
  • Re-land night shift run record writes during triage by @trevor-e in #112769
  • Re-land night shift run tracking models with db_constraint=False by @trevor-e in #112768
  • Add lightweight supergroups backfill task by @yuvmen in #112507
  • Read Seer project preferences from Sentry DB in Sentry endpoints by @srest2021 in #111594
  • Thread short-lived API token to Explorer MCP tools by @azulus in #112179
  • Add dual-read helpers for Seer project preferences from Sentry DB by @srest2021 in #111591
  • Distinguish legacy vs explorer autofix in agent_handoff initiator by @JoshFerge in #112575
  • Add candidate issue selection to night shift by @trevor-e in #112521
  • Record agent_handoff analytics in launch_coding_agents_for_run by @JoshFerge in #112516
  • Add rca_source to supergroup queries with feature flag gating by @yuvmen in #112436
  • Show the Seer settings link even when hideAiFeatures is enabled by @ryan953 in #112510
  • Add coding_agent field to agent handoff analytics by @JoshFerge in #112491
  • Add Night Shift nightly autofix cron scaffolding by @trevor-e in #112429
  • Add lightweight RCA clustering endpoint integration by @yuvmen in #112229
  • Enable sorting seer autofix project list by @ryan953 in #112250
  • Add widget-level LLM context to dashboard widgets by @Mihir-Mavalankar in #112267
  • Setup Agent bulk-edit on the Seer Autofix list page, and bring back Create PR bulk edits by @ryan953 in #112249
  • Add the stopping-point field to project-specific seer settings by @ryan953 in #112232
  • Wrap the seat-based wizard in a feature flag by @ryan953 in #112212
  • Add preamble to structured page context markdown by @Mihir-Mavalankar in #112235
  • Fall back to contextvar ViewerContext for Seer requests by @gricha in #112221
  • Implement the dropdown to save defaultAutomatedRunStoppingPoint by @ryan953 in #112211
  • Send structured LLMContext JSON as on_page_context by @Mihir-Mavalankar in #112200
  • Improve the loading state of the Seer SCM overview area by @ryan953 in #112054
  • Convert structured LLMContext JSON to markdown for on_page_context by @Mihir-Mavalankar in #112181
  • Add feature flag and register Dashboard in LLM context tree by @Mihir-Mavalankar in #111973
  • Send page_name in explorer chat requests from frontend by @Mihir-Mavalankar in #112124
  • Send page_name in explorer chat requests by @Mihir-Mavalankar in #112065
  • Add issue summary experimental flag by @JoshFerge in #112115
  • Add structured LLM context system for Seer Explorer by @Mihir-Mavalankar in #111554
  • Add org-level default stopping point and wire coding agent defaults into project creation by @srest2021 in #111697
  • Seer Autofix Settings Overview page by @ryan953 in #110758
  • Update default triggers for Code Review by @ryan953 in #111911
  • Add RPC interface for retrieving the installation_id by @cmanallen in #111893
  • Update Seer Settings to let people pick their preferred default agent for Autofix by @ryan953 in #111366
  • Add trigger_explorer method to SeerOperator by @alexsohn1126 in #109675
  • Seer Code Review Overview section by @ryan953 in #111593
  • Seer SCM Overview by @ryan953 in #111343
  • Rename SCM seer settings tab to Repositories by @ryan953 in #111538
  • Add dual-write for Seer project preferences to ProjectOptions and SeerProjectRepository by @srest2021 in #110704
  • Add feature-flags to control seer onboarding pages by @ryan953 in #111277
  • Iterate on the Seer Trial page styles by @ryan953 in #111275
  • Add SeerExplorerResponse notification data and Slack renderer by @alexsohn1126 in #109317
  • Add SeerOperatorExplorerCache for completion hook payloads by @alexsohn1126 in #109238
  • Show Upgrade Banner when on Legacy/Beta Seer by @ajay-sentry in #111056
  • Add Explorer methods to SeerEntrypoint protocol by @alexsohn1126 in #109231
  • Use Seer model_used response field for seer_model on GroupHashMetadata by @yuvmen in #111047
  • Expose defaultCodingAgent and defaultCodingAgentIntegrationId org fields by @ryan953 in #111051
  • Schedule context engine indexing hourly with load spreading by @Mihir-Mavalankar in #110886
  • Add a message to seer settings when Gen AI Features are disabled by @ryan953 in #110947
  • Add logging to lightweight RCA trigger flow by @yuvmen in #110930
  • Add links to provider integration pages from scm treeview by @ryan953 in #110890
Settings
  • Move Repositories sidebar link into the new Integrations section by @ryan953 in #112718
  • Add Integrations nav section with MCP & CLI page by @dcramer in #111419
Slack
  • Support unfurling Explore Metrics URLs in Slack by @DominikB2014 in #112706
  • Add Slack Agent DM and assistant thread support for Seer Explorer by @leeandher in #112493
  • Support unfurling Explore Logs URLs in Slack by @DominikB2014 in #112677
  • Pass display type from Explore URL to chartcuterie by @DominikB2014 in #112620
  • Pass timeseries data directly to chartcuterie for Explore unfurls by @DominikB2014 in #112585
  • Unfurl Explore Traces URLs with chart previews by @DominikB2014 in #112020
  • Add frontend pipeline step for Slack integration setup by @evanpurkhiser in #112417
  • Add tags to Slack event endpoint for observability by @DominikB2014 in #112023
  • Implement process_mention_for_slack task for Explorer by @alexsohn1126 in #109733
  • Add Explorer support to SlackEntrypoint by @alexsohn1126 in #109569
  • Add SlackMentionHandler for parsing @mentions by @alexsohn1126 in #109384
  • Handle app_mention events for Seer Explorer by @alexsohn1126 in #109335
  • Add staging app install button to Slack integration page by @alexsohn1126 in #110787
  • Add slack api methods for thread history and reactions by @leeandher in #107785
  • Add slack-staging-app feature flag and options by @alexsohn1126 in #110766
Snapshots
  • Add snapshots list table to Releases page by @NicoHinderling in #112819
  • Show diff_threshold in snapshot detail header by @NicoHinderling in #112740
  • Run snapshot comparisons when uploads received out-of-order by @rbro112 in #112474
  • Add deletion path for endpoint by @NicoHinderling in #111974
  • Set nice UI for left side of header by @NicoHinderling in #111822
  • Wire up status check setting fields into snapshot status_check task by @NicoHinderling in #111798
  • Add status check settings frontend and flag saving by @NicoHinderling in #111794
  • Backend changes to make renames use SnapshotDiffPair by @NicoHinderling in #111332
  • Add L/R arrow key support for navigating variants by @rbro112 in #111227
  • Make snapshots support group param by @rbro112 in #110941
Snuba
  • Add a metric in query_trace_data to see what spans report span.status "ok" but have an associated error by @constantinius in #112090
  • Add metric for Snuba RPC read timeout errors by @kylemumma in #111215
Source Map Config Issues
  • Filtering out config issues from default issues stream by @Abdkhan14 in #113031
  • Adding stats to group row ui by @Abdkhan14 in #113048
  • Updating title and subtitle by @Abdkhan14 in #112952
  • Adding copy markdown button to troubl… by @Abdkhan14 in #112943
  • Making source map doc links platform … by @Abdkhan14 in #112828
  • Adding Sentry Configuration nav item under issues by @Abdkhan14 in #112811
  • Implementing Impact section in issue details by @Abdkhan14 in #112782
  • Implementing problem, diagnosis and troubleshooting section designs by @Abdkhan14 in #112393
  • Logging extra data on occurrence trigger for UI validation by @Abdkhan14 in #112091
Source Map Issues
  • Supporting count_unique aggregation on eap processing errors by @Abdkhan14 in #112385
  • Adding group id and title as attr to processing error trace item by @Abdkhan14 in #112387
Spans
  • Enforce max segment bytes during ingestion by @lvthanh03 in #112561
  • Skip enrichment when message contains skip_enrichment=True flag by @lvthanh03 in #112024
  • Flush oversized segments in chunks by @lvthanh03 in #111820
Stacktrace
  • Wire SCM source context into new stack trace by @scttcper in #111770
  • Add frontend hook and UI for on-demand SCM source context by @mujacica in #110327
Supergroups
  • Supergroup -> issue group by @cvxluo in #112990
  • Use issues search to highlight supergroup drawer issues by @scttcper in #112640
  • Add checkbox to supergroup rows for bulk selection by @scttcper in #112301
  • Filter supergroups to unresolved issues by @scttcper in #112383
  • Show filtered vs total events in supergroup chart by @scttcper in #112215
  • Add status filter to supergroups by-group endpoint by @scttcper in #112216
  • Smarter group loading and match highlighting by @scttcper in #111927
  • Add feedback component and experimental badge to drawer by @scttcper in #111859
  • Add group id to supergroup lookup endpoint by @cvxluo in #111265
Support
  • Add Intercom support widget frontend integration by @sentaur-athena in #108409
  • Add Intercom backend for identity verification by @sentaur-athena in #108408
Taskworker
  • Add ViewerContext propagation via context hooks by @gricha in #112217
  • Update Taskbroker / Taskworker Client to Support Push Mode by @george-sentry in #112629
Text
  • Add render prop pattern to Text component by @JonasBa in #110926
  • Add variant="inherit" to Text primitive by @JonasBa in #110945
Tracemetrics
  • Add group by selector to equations by @narsaynorath in #113051
  • Enable aggregate panel to show equation result by @narsaynorath in #112966
  • Do not allow deletion of metrics used in equations by @narsaynorath in #112893
  • Disable the samples panel for equations by @narsaynorath in #112959
  • Use reference map to render equations by @narsaynorath in #112817
  • Add column sorting to samples table by @nsdeschenes in #112577
  • Allocate stable labels for metric queries by @narsaynorath in #112675
  • Add skeleton for equation builder in Explore by @narsaynorath in #112504
  • Bypass metric field validation for equations by @narsaynorath in #112479
  • Refresh the metrics refresh by @nsdeschenes in #111920
  • Add new and reorder columns by @nsdeschenes in #112027
  • Add feature flag for equations in metrics explorer by @narsaynorath in #112025
  • Update ArithmeticBuilder to allow for REFERENCE tokens by @narsaynorath in #111956
  • Display metric name in aggregates table when no group by selected by @nsdeschenes in #111513
  • Add trace metric bytes DataCategory to stats page by @k-fish in #111431
  • Show approximation for tracemetrics total count by @narsaynorath in #111356
  • Add unreal, unity to supported platforms by @narsaynorath in #111361
  • Add referrer for raw count normal extrapolated request by @narsaynorath in #111335
  • Show all attributes in group by for multi metrics by @narsaynorath in #111012
  • Add tracemetrics to dashboard global filters by @k-fish in #110781
Ui
  • Migrate jest from babel-jest to @swc/jest by @scttcper in #112895
  • Port eslint-plugin-sentry to this repo by @scttcper in #112081
Viewer Context
  • Restore ViewerContext from JWT in middleware by @gricha in #112875
  • Add JWT encode/decode for ViewerContext propagation by @gricha in #112765
Workflow
  • Add index on GroupOpenPeriodActivity.date_added by @kcons in #111968
  • Make OrganizationIncidentDetailsEndpoint.get support single-written workflows by @kcons in #111588
  • Add flag to enable workflow engine version of ProjectRulesEndpoint.get by @kcons in #111230
Workflow Engine
  • Add pagination captions to list views by @malwilley in #112857
  • Only link workflows to the IssueStream by @saponifi3d in #112276
  • Action Filter cache invalidation by @saponifi3d in #111060
  • Add a cache for ActionFilters by @saponifi3d in #110507
Workflows
  • Start using the action filters cache by @klochek in #111817
  • Make thresholds in prune_old_fire_history options by @kcons in #111575
  • Add periodic WorkflowFireHistory backlog clean-up task by @kcons in #111458
  • Add flag to enable workflow engine version of ProjectRuleDetailsEndpoint.get by @kcons in #111330
  • Add index on WorkflowFireHistory.date_added by @kcons in #111026
  • Add doc to clarify the current implementation strategy of the API backport project by @kcons in #111006
Other
  • (ai-detected-issues) Add new AI detected issue group types by @roggenkemper in #112848
  • (ai-monitoring) Fetch model context size and rename task to fetch_ai_model_info by @constantinius in #112656
  • (auto-save) Restore focus to field after auto-save completes by @TkDodo in #110834
  • (claude) Default workspace_name to 'default' by @sehr-m in #110950
  • (claude integration) Return full text block alongside URL by @sehr-m in #110953
  • (command-palette) Add feedback button and preload image in empty state by @JonasBa in #111555
  • (core-ui) Add ClearButton to CompositeSelect by @nsdeschenes in #111706
  • (dashboard) Adds warning messages on generated dashboard errors when caught in the frontend by @edwardgou-sentry in #111531
  • (data-forwarding) Migrate setup form to useScrapsForm by @JonasBa in #108805
  • (debug-files) Show console symbol sources for orgs with console access by @JoshuaMoelans in #109781
  • (deletions) Add CLI command to list and run scheduled deletions by @leeandher in #112018
  • (dynamic-grouping) Show supergroup membership on issues stream by @scttcper in #111249
  • (eventstore) Implement get_event_by_id as EAP query by @shashjar in #110925
  • (explorer) Add relevant repos to explorer by @sehr-m in #111046
  • (feature-showcase) Redesign and rewrite FeatureTourModal as FeatureShowcase by @malwilley in #112532
  • (features) Add data browsing widget unfurl feature flag by @DominikB2014 in #111897
  • (feedback) Redirect to the feedback details page when given a projectName & eventId by @ryan953 in #111931
  • (github-enterprise) Route installation_repositories to control silo by @wedamija in #112245
  • (identity) Add OAuth2ApiStep for API-driven OAuth2 flows by @evanpurkhiser in #111578
  • (incidents) Add is_metric_subscription_allowed; use it by @kcons in #112241
  • (issue-detection) Register ai-issue-detection feature flag by @roggenkemper in #113062
  • (issueList) Add group_ids to issues.viewed by @mrduncan in #111551
  • (llm-detection) Accept additional_attributes param in get_trace_waterfall by @nora-shap in #112239
  • (llm-detector) Add beta badge for AI detected issues by @roggenkemper in #112686
  • (metrcis) Add formula -if combinators by @wmak in #112016
  • (metric-issues) Use placeholder loaders for attribute comparison… by @malwilley in #111676
  • (middleware) Enable viewer context middleware by default by @gricha in #112293
  • (native) Log symbolicator response on empty thread list by @jjbayer in #110976
  • (notificaitons) Add threading to platform providers by @Christinarlong in #109248
  • (notification) Simplify renderer and data to be already processed text by @Christinarlong in #112182
  • (oauth) Show public app device flow URLs by @dcramer in #111655
  • (objectstore) Enable token generator in objectstore client by @matt-codecov in #105707
  • (pageframe) Adopt TopBar.Slot in Layout.Title by @natemoo-re in #112515
  • (perforce) Implement get_file() for source context by @mujacica in #111768
  • (performance) Add search support to EAP txn summary sample events by @mjq in #111349
  • (project) Increase securityTokenHeader max_length from 20 to 64 by @sentry-junior in #112483
  • (prompts) Register android tombstones onboarding prompt by @romtsn in #112477
  • (refactor) Move common exceptions out of the discover db by @manessaraj in #111713
  • (releases) Cache calls to compare-commits by @armenzg in #112494
  • (replay) Add a button to toggle the replay-details layout between the default & video-only by @ryan953 in #111944
  • (replays) Make bulk delete API endpoints public by @billyvg in #111679
  • (searchbar) Sort value suggestions by fuzzy match relevance by @scttcper in #111037
  • (seer agent) Add integration button to handoff dropdown by @sehr-m in #111499
  • (seer-slack) Check channel type for correct history scope before API call by @alexsohn1126 in #112371
  • (sentry apps) Add circuit breaker into webhook code by @Christinarlong in #111723
  • (spans-migration) Add a flag bypass for self hosted migrations by @nikkikapadia in #111150
  • (symbolicator) Pass objectstore token to symbolicator by @matt-codecov in #112058
  • (test) Add it.isKnownFlake for opt-in stress-testing flaky Jest fixes by @JoshuaKGoldberg in #111860
  • (timeseries) Add 6h interval by @wmak in #112678
  • (trace) Make trace ID clickable in span attributes table by @matejminar in #111395
  • (uptime) Move suggest assertions button to verification section by @jaydgoss in #109106
  • (usageStats) Add new no_parent_span client discard reason by @Lms24 in #112937
  • (utils) Add ContextPropagatingThreadPoolExecutor and S016 lint rule by @gricha in #111451
  • (wmak) Use non strings in group by by @wmak in #111753
  • Add referrer tag to snuba timeout metric by @kylemumma in #112826
  • Add repo indexing job by @shruthilayaj in #112136
  • Add ViewerContext middleware for API requests by @gricha in #112172
  • Add ViewerContext dataclass and contextvar module by @gricha in #112156
  • Add EAP double read for release health data by @noahsmartin in #111229
  • Let SCM platform support self-hosted GitLab by @jacquev6 in #111061
  • Remove Legacy Seer toggle BE code and update preflight checks by @ajay-sentry in #111049
  • Add seer-gitlab-support feature flag by @billyvg in #110659
Bug Fixes 🐛
Aci
  • Serialize activities correctly by @ceorourke in #112998
  • Add Slack Staging action type to new alert builder by @malwilley in #112886
  • Link to issue page instead of specific event in automation history by @malwilley in #112942
  • Negative margin was too large by @saponifi3d in #112946
  • Handle missing resolve condition in serializer by @kcons in #112760
  • Surface API errors for alert form test notifications by @malwilley in #112818
  • Fix bug with github action settings by @saponifi3d in #112742
  • Fix issue where we showed the first triggered condition by @saponifi3d in #112746
  • Add support for an empty conditionGroup in the API for the Error detector by @saponifi3d in #112641
  • Change response from 404 to 400 when there's an issue with billing metric alerts by @saponifi3d in #112614
  • Fix issue with manual cron monitor selected project by @malwilley in #112602
  • Selected project state should react to form changes by @malwilley in #112484
  • Gracefully handle missing actions in Alerts UI by @malwilley in #112070
  • Handle missing sentry app installation by @ceorourke in #112192
  • Handle invalid project IDs in monitor form by @malwilley in #112220
  • Preselect current detector type when clicking create monitor by @malwilley in #112178
  • Standardize monitor/alert form behavior on save by @malwilley in #111490
  • Link from legacy alerts should go to /monitors/alerts by @malwilley in #111962
  • Show empty state in Alerts list projects column when no detectors are connected by @malwilley in #111732
  • Include project alerts on monitor list page by @malwilley in #111690
  • Invalidate Connected Alerts query cache on drawer changes by @scttcper in #111590
  • There was a bug that Rule was being used, but only imported as a type by @saponifi3d in #111646
  • Translate percent threshold value correctly for metric monitors by @malwilley in #111259
  • Increase test coverage and fix inconsistencies by @ceorourke in #110825
  • Fix detection_type in the serializer for detectors which have conflicting properties by @malwilley in #111170
  • Parse and persist owner field by @ceorourke in #110807
Agents
  • Make negative cost tooltip hoverable for clickable link by @obostjancic in #111991
  • Clarify token counting in LLM onboarding instructions by @obostjancic in #111989
  • Scope enrichment query to gen_ai spans only by @obostjancic in #111614
  • Enable horizontal scroll in trace drawer on mobile by @priscilawebdev in #110734
Ai Conversations
  • Improve XML tag rendering in AI span details by @obostjancic in #112346
  • Escape conversation IDs in query strings by @vgrozdanic in #112455
  • Use all projects for shared conversation links by @obostjancic in #112343
Ai Insights
  • Token types widget by @obostjancic in #111403
  • Update agent monitoring onboarding snippets by @obostjancic in #111310
  • Use AIContentRenderer for conversation table tooltips by @obostjancic in #111285
  • Token input/output count by @obostjancic in #111284
  • Sort conversation spans by start timestamp by @obostjancic in #111185
  • Traces table by @obostjancic in #111064
Alerts
  • Fallback to transactions dataset for performance alerts by @nikkikapadia in #112802
  • Fix trigger ordering in workflow-based AlertRule serializer by @kcons in #112727
  • Make ProjectRuleStatsIndexEndpoint 400 on a bad date range by @kcons in #112505
  • Better messaging for missing snoozeCreatedBy by @kcons in #112506
  • Reject EAP alerts with invalid time windows by @kcons in #112322
  • Incorporate EventsAnalyticsPlatform into our downgrade checking by @kcons in #112061
  • Fix alert link unfurling URL by @malwilley in #111033
Apigateway
  • Don't count cancelled requests as failures by @gi0baro in #112089
  • Async/sync flow patches by @gi0baro in #111993
Attachments
  • Use NOW() + 30 days as db_default for date_expires by @jan-auer in #112342
  • Pass attachment retention_days to objectstore by @jan-auer in #111879
Auth
  • Add diagnostic logging to ViewerContextAuthentication by @azulus in #113015
  • Block token creation/modification during impersonation by @michelletran-sentry in #110654
Autofix
  • Filter out autofix code mappings with bad repos (inactive, no integration, etc.) by @srest2021 in #112825
  • Remove autofixEnabled check from project setup guard by @chromy in #112792
  • Check preference repositories instead of tuning for Seer autofix onboarding check by @srest2021 in #112726
  • Show Add Integration CTA when no coding agents installed by @JoshFerge in #112625
  • Dual-delete Seer preferences for disabled repositories by @srest2021 in #112503
  • Validate Seer-supported SCM providers for Seer project preferences by @srest2021 in #112518
  • On repo hide, delete corresponding SeerProjectRepository rows by @srest2021 in #112266
  • Only write handoff.auto_create_pr ProjectOption if not default by @srest2021 in #112208
  • Handle NoneType project preferences from Seer API by @sentry in #112009
  • Restarting root cause from error should use new run by @Zylphrex in #111995
  • Github webhook analytics for explorer autofix by @Zylphrex in #111913
  • Remove broken docs link from GitHub Copilot CTA by @JoshFerge in #111298
  • Better loading states for agent handoffs by @Zylphrex in #111107
Billing
  • Updated name to application metrics and fixed tests(BIL-2235) by @krithikravi in #113002
  • Subscription UI misalignment by @brendanhsentry in #112485
  • Fix flaky paymentForm test by awaiting button enabled state by @hubertdeng123 in #112188
  • Update ent trial copy by @brendanhsentry in #110904
Cells
  • Invalid invitation token or context always 404s by @lynnagara in #112633
  • Update controlsiloUrlPatterns by @evanpurkhiser in #111751
Chartcuterie
  • Scale up font sizes for larger Explore chart canvas by @DominikB2014 in #112785
  • Format y-axis labels in Explore unfurl charts by @DominikB2014 in #112719
  • Avoid plottable imports that break Node VM sandbox by @DominikB2014 in #112668
Ci
  • Use fixed restrict key in migrations drift pg_dumpall by @trevor-e in #112731
  • Bandaid fix flaky "Event loop was closed" in CI by @kenzoengineer in #112133
  • Use ephemeral ports for relay xdist to avoid port conflicts by @mchen-sentry in #112026
  • Let precommit format json files by @TkDodo in #111874
  • Prevent kafka consumer teardown hang with xdist by @mchen-sentry in #111261
  • Retry relay container start on port conflict by @mchen-sentry in #111041
Claude Integration
  • Update to newest claude headers by @sehr-m in #112715
  • Use installation path for Claude Code in explorer handoff by @sehr-m in #110952
Cmdk
  • Tie-break equal search scores by length by @JonasBa in #112845
  • Filter out async resource actions with 0 results by @JonasBa in #112613
Codeowners
  • Add coverage for markdownTextArea and clean baseline by @chromy in #112339
  • Show all owner names in avatar stack tooltip by @scttcper in #110946
  • Stringify owner IDs and add typed schema structures by @scttcper in #110604
Coding Integrations
  • Allow model specification based on api key by @sehr-m in #112856
  • Fix add integration button on safari by @sehr-m in #112176
  • Add catching for integration not found error by @sehr-m in #111691
Conversations
  • Move detail breadcrumbs to page frame top bar by @priscilawebdev in #113035
  • Prevent onboarding from reappearing on empty time ranges by @obostjancic in #112789
  • Handle [Filtered] values in conversation bubbles by @obostjancic in #112092
  • Sort list by timestamp in frontend by @shellmayr in #111785
  • Paginate conversation details to fetch all spans by @obostjancic in #111605
Dashboards
  • Use null instead of undefined for widget limits on TABLE/BIG_NUMBER by @gggritso in #112921
  • Show breadcrumb separator in page frame by @priscilawebdev in #113041
  • Skip dashboard API requests when user has no project access by @edwardgou-sentry in #112855
  • Disable Open in Explore for multi-query logs widgets by @DominikB2014 in #112832
  • Rebalance chart interval options and defaults by @gggritso in #112562
  • Surface lastVisited field in API response by @narsaynorath in #112796
  • Send current dashboard state on Seer follow-up messages by @edwardgou-sentry in #112601
  • Add context logging for widget mismatch errors by @edwardgou-sentry in #112608
  • Apply filters correctly navigating between dashboards by @mjq in #112586
  • Add http_error_count_percent to function blocklist by @edwardgou-sentry in #112470
  • Update AI prebuilt dashboards to use response model instead of request model by @edwardgou-sentry in #112498
  • Improve wrapping of global filter triggers by @gggritso in #112471
  • Send null legendType when legend breakdown is disabled by @DominikB2014 in #112467
  • Align sortable widget builder visualize ghost field to original field by @nikkikapadia in #111934
  • Render star icon header for is_starred_transaction column by @DominikB2014 in #111885
  • Numeric literal not registering in equations builder by @nikkikapadia in #111793
  • Stop passing list page query params to dashboard details by @DominikB2014 in #111815
  • Preserve saved global filters when URL has other filter params by @DominikB2014 in #111800
  • Hide prebuilt dashboards from All Dashboards list by @DominikB2014 in #111709
  • Copy page filters when duplicating prebuilt dashboards by @gggritso in #111534
  • Text widget unknown code block language by @nikkikapadia in #111621
  • Gate 'View span samples' cell action behind visibility-explore-view by @skaasten in #111620
  • Disable edit button for pre-built dashboard widgets in fullscreen by @DominikB2014 in #111616
  • Blank visualize fields on tables/big numbers from text widgets by @nikkikapadia in #111440
  • Allow number-typed tags in categorical bar X-axis by @gggritso in #111466
  • Fix global filter showing "All" instead of selected value by @gggritso in #111514
  • Ensure consistent casing in pre-built dashboard widget titles by @gggritso in #111515
  • Clean up column aliases and chart legends in prebuilt dashboards by @gggritso in #111449
  • Align backend overview queries widget filters with queries dashboard by @DominikB2014 in #111433
  • Use first-appearance order for chart axis assignment by @DominikB2014 in #111411
  • Skip conflict warning for inactive global filters by @mjq in #111385
  • Fix performance score widget layout and sizing by @gggritso in #111258
  • Handle null/undefined at top level in toPythonString by @DominikB2014 in #111297
  • Replace ugly red dashboard widget error states by @gggritso in #111140
  • Cap global filter trigger width to prevent layout shifts by @gggritso in #111238
  • Set breakdown legend widget limit to 3 in prebuilt configs by @DominikB2014 in #111291
  • Default to 10 dashboards when planDetails is null by @DominikB2014 in #111200
  • Fixes Create Dashboard with Seer button styling clashing with experimental badge by @edwardgou-sentry in #111196
  • Fix double nested query param when creating dashboard by @edwardgou-sentry in #111197
  • Pass widget and dashboardFilters to getFieldRenderer in all dataset configs by @DominikB2014 in #111194
  • Stop table rows inflating to fill widget by @priscilawebdev in #111182
  • Show hidden dashboards in linked dashboards list by @DominikB2014 in #111108
  • Populate linked dashboard in widget builder edit modal by @DominikB2014 in #111085
  • Copy saved filters when duplicating prebuilt dashboards by @gggritso in #111017
  • Prevent double HTML-escaping in chart tooltips by @gggritso in #111022
  • Widget footer table errors on missing value by @DominikB2014 in #111016
  • Fix empty interval in generated dashboards by @edwardgou-sentry in #110998
  • Disambiguate unaliased filters in widget legends by @gggritso in #110908
  • Prevent long dashboard names from overflowing in list view by @gggritso in #110828
  • Use firstTransactionEvent for overview onboarding conditions by @gggritso in #110913
  • Use normalizeUrl when navigating after pre-built dashboard duplication by @gggritso in #110920
  • Skip flakey widget builder test by @nikkikapadia in #110980
  • Preserve group-by when saving logs query as widget by @JoshuaKGoldberg in #110855
  • Reduce max fractional digits for number type to 4 by @DominikB2014 in #110858
  • Consolidate HTTP status code queries into single query by @DominikB2014 in #110884
Deletions
  • Delete GroupEnvironment before Environment during org deletion by @swartzrock in #112868
  • Avoid DoesNotExist crash when FK target is already deleted by @swartzrock in #112375
Demo Mode
  • Restrict GroupAi endpoints to demo orgs only by @obostjancic in #111509
  • Block demo users from creating organizations by @obostjancic in #111507
Detectors
  • Surface API error messages for cron detector creation by @malwilley in #112630
  • Make AlertRuleDetector.objects filter out pending deletion Detectors by default by @kcons in #112550
  • Ensure metric Detector deletion cleans up the AlertRule by @kcons in #112425
Docs
  • Replace generic_metrics dataset with events_analytics_platform by @ceorourke in #112480
  • Fix workflow target type unassigned API docs by @ceorourke in #111166
Eap
  • Handle contexts in trace-item attributes by @wmak in #112524
  • Declare http.response_status_code as integer attribute by @DominikB2014 in #111232
  • Replace exclusive time as attribute for count functions by @mjq in #111176
Explore
  • Increase logs infinite query maxPages when we don't have many rows locally by @JoshuaKGoldberg in #112691
  • Fix attribute breakdowns tooltip caching stale params and losing values by @nsdeschenes in #112590
  • Add !has filter when drilling down into no value group by @SafinMahmud in #110404
  • Derive default chart type for explore Slack unfurls by @DominikB2014 in #112717
  • Pass sort param for group-by explore Slack unfurls by @DominikB2014 in #112704
  • Disable metric selector highlight scrolling by @nsdeschenes in #111233
  • Contain traces table overflow by @nsdeschenes in #111183
  • Gate explore links behind visibility-explore-view by @skaasten in #111523
  • Always show selected metric first in metric selector by @nsdeschenes in #111448
  • Confidence footer messages should pluralize zero by @narsaynorath in #111436
  • Try catch the entire migration by @wmak in #111321
  • Try catch the snuba call by @wmak in #111214
  • Migration bug by @wmak in #111149
  • Remove empty field params from Explore URL by @nsdeschenes in #110655
Grouping
  • Fix ip parameterization tests by @lobsterkatie in #112637
  • Fix IPv6 parameterization by @lobsterkatie in #111979
  • Handle callback false positives in parameterization by @lobsterkatie in #111948
  • Fix and expand hex parameterization by @lobsterkatie in #111969
  • Fix git sha parameterization test by @lobsterkatie in #111964
  • Fix int parameterization bugs by @lobsterkatie in #111870
  • Fix kitchen time regex bugs by @lobsterkatie in #111807
Incidents

View originalPermalink
How 26.4.0 went
View all

Discussion