github getsentry/sentry 26.9.0

5 hours ago

New Features ✨

Aci

Action Log

Admin

  • Add invoice lookup by @sentry-junior in #124130
  • Add integration reset action by @sentry-junior in #123638
  • Show both 24h sample rates in the customer overview by @shellmayr in #123553
  • Query all regions in parallel on the customers page by @shellmayr in #123421
  • Require retention periods to be 30 day intervals by @bcoe in #122996
  • Show billing platform status on customer page by @armenzg in #122635

Agents

Ai Monitoring

Api

Apidocs

  • Withhold enum values and verify schema omissions in #123968
  • Let serializers declare the type of validated_data by @azulus in #123923
  • Lint request parameters read without a serializer by @azulus in #123921
  • Lint undeclared serializers on public endpoints by @azulus in #123919
  • Lint that schema omissions carry a stated reason by @azulus in #123491
  • Document the custom integration features field by @azulus in #123515
  • Document organization member and SCIM fields by @azulus in #123486
  • Convert internal request fields to omit_from_public_schema by @azulus in #123488
  • Document project detail fields instead of hiding them by @azulus in #123467
  • Document alert rule and monitor fields by @azulus in #123487
  • Convert withheld response keys to omit_from_public_schema by @azulus in #123489
  • Document notification, external team and release fields by @azulus in #123485
  • Document issue ignore and snooze fields by @azulus in #123484
  • Document Discover and Explore saved-query fields by @azulus in #123483
  • Add omit_from_public_schema with a required reason by @azulus in #123462

Apigw

Attachments

Auth

Autofix

Conversations

Cursor Origin

Dashboards

Deletions

Derived Data

Discover

Dynamic Sampling

Eslint

Event Formatter

Explore

Flags

Gal

Github

  • Record when an installation's permissions were last read by @joseph-sentry in #123982
  • Describe features lost when an install is missing permissions in #124105
  • Mention Seer code review and Autofix on integration page by @joseph-sentry in #124187

Hybrid Cloud

Hybridcloud

  • Size webhook mailboxes from a rolling rate, not a volume gate by @vaind in #123449
  • Add per-category and silo/type tags to outbox SLO … by @valencitas in #123466
  • Chain a strict drain into its mailbox's next claim by @vaind in #123274
  • Bucket Jira and VSTS webhook mailboxes by issue by @vaind in #123292
  • Generalize mailbox event-type suffixes behind a registry by @vaind in #123293
  • Report webhook backlog depth per provider by @vaind in #123158
  • Add a break-glass option to shed inbound webhooks by @vaind in #122904
  • Overselect scheduler heads to hit the dispatch target by @vaind in #122689
  • Report mailbox depth quantiles alongside max_depth by @vaind in #122035

Inbound Filters

Inbox

Integrations

Investigations

Issues

Metrics

Monitors

Onboarding

Pr Iter

Pr Iteration

Pr Metrics

  • Report how deep the activity sweep's backlog is by @vaind in #121616
  • Link a delegated agent's PR on the match that attributes it by @vaind in #121877

Preprod

Relay

  • Add Nintendo event rewriting feature flag by @JoshuaMoelans in #123020
  • Update to relay version 0.9.28 by @jjbayer in #122202

Rollout

Scm

  • Tag SCM exceptions with organization slug and ID by @sentry in #123190
  • Add PR changed-files endpoint with diff hunks by @NicoHinderling in #122119

Scm Messaging Integrations Ui

  • Microsoft teams connection modal busy state by @Abdkhan14 in #123748
  • Hiding other rows on complete by @Abdkhan14 in #123006
  • Refetching providers/integrations list on window focus by @Abdkhan14 in #122729

Scraps

  • Make button size responsive by @priscilawebdev in #123110
  • Add RelativeTime component by @ChrisandraVaz in #121854
  • Interactive Chip compound components by @natemoo-re in #121648
  • Add Tooltip.Header, Grid, Row and Footer by @ChrisandraVaz in #121983
  • Make Scraps the canonical story URL by @priscilawebdev in #122556
  • Add typed OTP input formats by @evanpurkhiser in #122222
  • Add OTP input primitive by @evanpurkhiser in #122211

Seer

Seer Infra Telemetry

  • Group GCP connection errors by affected projects and services by @shashjar in #124089
  • Preserve service-level GCP connection verification results by @shashjar in #124073
  • Make GCP project IDs a multi-select on configuration page by @shashjar in #123809
  • Use a multi-select field for GCP project IDs in the setup wizard by @shashjar in #123814
  • Add hints, links, and visibility toggle to Datadog installation flow by @srest2021 in #123458
  • Add permission setup instructions to GCP integration onboarding flow by @shashjar in #123461
  • Show GCP connection status on the integration settings page by @shashjar in #123258
  • Expose GCP connection status in integration config data by @shashjar in #123251
  • Re-verify GCP connection after configuration changes from frontend by @shashjar in #123193
  • Make GCP integration settings editable and re-verify on change by @shashjar in #123187
  • Revise Connectors page to display integrations with Seer context category by @srest2021 in #123049
  • Add GCP connection verification step to install wizard by @shashjar in #122928
  • Verify GCP connection during integration setup (backend) by @shashjar in #122906
  • Add GCP connection verification endpoint by @shashjar in #122107
  • Show read-only config on GCP integration configure page by @shashjar in #122512

Settings

  • Clarify Spike Protection notification setup by @sentry-junior in #123517
  • Paginate project environments by @scttcper in #122108

Skills

  • Add migrate-breadcrumb-list skill by @Jesse-Box in #123903
  • Add remove-option-or-flag skill by @vaind in #121842

Smart Assignment

  • Fuzzy-match candidates in #124232
  • Add get_project_members Seer RPC tool by @hobzcalvin in #124136
  • Pass repos to SA prompt to the agent doesn't guess by @hobzcalvin in #123381
  • Resolve unverified user emails when delivering results by @hobzcalvin in #123383
  • Add some metrics for datadog dashboard by @hobzcalvin in #123011
  • Seer RPC to get assignees for issues in bulk by @hobzcalvin in #122614

Tracemetrics

Ui

Workflow Engine

  • Add detector and action filters by @gricha in #124077
  • Add the comparison information to logs by @saponifi3d in #123278
  • Add evaluation logs to detectors by @saponifi3d in #121908
  • Add option to enable debug logging by workflow id by @kcons in #122360
  • Add option to pick workflow_ids that should trigger evaluation logs by @kcons in #122359
  • Tag action-based Condition evaluation debug logs with ids by @kcons in #122357
  • Comprehensive debug logging for LatestAdoptedReleaseConditionHandler by @kcons in #122344

Workflows

  • Require condition comparison schemas by @sentry-junior in #124143
  • Add project scope endpoint by @malwilley in #124133
  • Allow team admins to delete workflows connected to their projects by @malwilley in #123286
  • Allow team admins to create alerts for their own projects by @malwilley in #123033

Other

  • (action backfill) Filter options based on value by @kcons in #122791
  • (agent-tracing) Align traces table styling by @sentry-junior in #124284
  • (alerts) Metrics monitoring of anomaly detection failures by @kcons in #123670
  • (anomaly detection) More refined tracking of Seer-provided errors by @kcons in #124095
  • (audit) Mark delegated agent actions by @gricha in #122031
  • (avatarButton) Support round shape, suggested state, and empty avatars by @natemoo-re in #123352
  • (billing) Show billing-platform migration banner on subscription overview by @armenzg in #122636
  • (buttonTracking) Track anonymous custom events by @evanpurkhiser in #123482
  • (chat) Clamp tool call input/output boxes with click-to-expand by @natemoo-re in #123161
  • (codeblock) Add wrapping and persistent copy action by @evanpurkhiser in #122780
  • (crons) Log a sample of over-quota and rate limited check-in drops by @wedamija in #122544
  • (dart) Fall back to token-level remapping for compound exception types by @buenaflor in #123151
  • (derived) Add basic gating helpers by @kcons in #122616
  • (difs) Add flag to delete corrupt files during migration by @lcian in #123730
  • (docs) Add agent guidance around save hooks in migrations by @kcons in #123627
  • (events) Add Windows Error Reporting context by @jpnurmi in #121702
  • (forms) Make RowLayout responsive by @TkDodo in #123692
  • (icons) Add dashed circle icon by @evanpurkhiser in #122772
  • (integration) Add tooltip to pending deletion by @sentaur-athena in #121473
  • (issue-details) Register priority and assignee UI flag by @roggenkemper in #122909
  • (lint) Disallow mocking supported test hooks in #124341
  • (markdown) Report silent markdown render fallbacks to Sentry by @ryan953 in #122968
  • (models) Add a get_or_none helper so first() isn't the ergonomic choice by @kcons in #123469
  • (nav) Add new badge to Explore Agents sidebar item by @sentry-junior in #123289
  • (notifications) Add referrer query param to activity notifications by @malwilley in #122665
  • (orgs) Reserve solutions organization slug by @sentry-junior in #120635
  • (ourlogs) Add ourlogs-regex-searches feature flag by @JoshuaKGoldberg in #123778
  • (project-creation) Migrate project creation flow to new workflow engine endpoints by @malwilley in #123074
  • (redis) Reject writes with no TTL by @ldelvoye in #122927
  • (release) Use spans dataset for release comparison table by @adrianviquez in #123406
  • (releases) Migrate the release detail header to BreadcrumbList by @Jesse-Box in #124160
  • (replay) Up inner_limit from 1k-10k when verify_replay_exists flag is on by @adrianviquez in #123048
  • (scim) Extend privilege sync to support all UserPermissions by @michelletran-sentry in #123003
  • (scm-messaging-integration) Minor ui changes by @Abdkhan14 in #123929
  • (search) Add deprecation-aware attribute lookup by @nsdeschenes in #123306
  • (seer-explorer) Show work in flight in the agent's own words by @azulus in #122919
  • (seerExplorer) Code Mode entity deep-links + longest-prefix inheritance by @sentry-junior in #122890
  • (sentry-apps) Collapse template configuration panels by @cvxluo in #122404
  • (slack) Add native Seer write approvals by @gricha in #122497
  • (stacktrace) Add astro file extension for syntax highlighting by @JuJup in #122603
  • (stacktraces) Trim the IL2CPP method hash from native function names by @bitsandfoxes in #121963
  • (symbolication) Add request headers for project and event ID by @loewenheim in #123722
  • (tabs) Remove disableOverflow prop and correct automatic overflow behavior by @priscilawebdev in #123879
  • (tasks) Log GAL coordinator phases by @yuvmen in #122619
  • (teapot-backend) Integrate Teapot GPU symbolication service with Sentry by @mujacica in #119375
  • (trace) Enable zooming from vital indicator pills by @nsdeschenes in #122699
  • (traces) Scope agent activity view to one conversation at a time by @ArthurKnaus in #123559
  • (usageStats) Add callback_error client discard reason by @msonnb in #123316
  • (warden) Add wrdn-dos-review skill silently via warden-skills by @oioki in #122326
  • Drop the require_email_verification column by @lynnagara in #123481
  • Autofix routes are on the org only path by @lynnagara in #123465
  • Support conditional inclusion of routes on the legacy issues/ path by @lynnagara in #123401
  • Strict cssTypes by @TkDodo in #123305
  • Add cancel button when editing monitors by @RudraPatel2003 in #122932
  • Remove incidents flag by @RudraPatel2003 in #122607
  • Set incidents feature flag to true by @RudraPatel2003 in #122522
  • Remove "incidents" Feature components on frontend by @RudraPatel2003 in #122374
  • Remove organizations:incidents flag on frontend by @RudraPatel2003 in #121984

Bug Fixes 🐛

Action Log

Admin

  • Parse chart date range URL params as UTC by @shellmayr in #124167
  • Block non-Seer product trial starts on enterprise plans by @sentry-junior in #123807
  • Parse project ID in admin home project search by @shellmayr in #123414
  • Positioning of base sample rate in dynamic sampling table by @shellmayr in #123423
  • Stop queries from interfering with each other on customer details page by @shellmayr in #123312
  • Move the region probe spinner to stop layout shifts by @shellmayr in #123134

Agents

Ai

Ai Monitoring

Alerts

  • Advertise required scope for monitor updates by @gricha in #124149
  • Load saved teams missing from the selector by @scttcper in #123928
  • Show selected members in automation rules by @scttcper in #123913
  • Return validation error for unsupported alert datasets by @sentry-junior in #122209
  • Clarify Microsoft Teams channel input by @malwilley in #123527
  • Log InvalidSearchQuery in EAP alerts at info level by @sentry in #123098
  • Migration to repair latest adopted release environments by @hobzcalvin in #122096

Analytics

Api

  • Validate more path-provided model object IDs by @kcons in #124368
  • Allow event:write for unlinking and own comments by @betegon in #123925
  • Remove alert-filters from API examples by @sentry-junior in #123863
  • Remove stale alert-filters from unused-frontend-features set by @sentry-junior in #123850
  • Capture more script user agents in client_kind by @DominikB2014 in #123640
  • Align team project creation permissions by @jaydgoss in #123050
  • Correct Explore saved query contracts by @gricha in #123645
  • Classify Seer callers ahead of unknown in client_kind by @DominikB2014 in #123578
  • Skip issue mutations without project access by @cvxluo in #123108
  • Reject invalid organization stats parameters by @cvxluo in #123170
  • Reject invalid artifact bundle UUIDs by @NicoHinderling in #122999
  • Honor scope hierarchy in permission scope audit by @gricha in #123064
  • Complete generated query parameters by @billyvg in #122837
  • Preserve opaque keys under additional_fields on write by @sentry-junior in #122398
  • Reject negative pagination cursors by @cvxluo in #122411
  • Reject negative issue snooze conditions by @cvxluo in #122435
  • Handle invalid date query params in incidents endpoint by @sentry in #122171
  • Drop null entries from resolvedWith in event serialization by @emilbonnek in #122124

Attachments

  • Save pending attachments when saving a transaction by @jjbayer in #123875
  • Set content type on Objectstore attachment uploads by @jan-auer in #122571

Auth

Autofix

  • Include Linear link in Cloud Agent PR prompt by @sentry-junior in #124269
  • Gracefully fail when manual feedback is not accepted by @alexsohn1126 in #124098
  • Skip record_seer_run for free cohort orgs by @Mihir-Mavalankar in #123444
  • Disable code-changes reset when PR iteration is paused by @joseph-sentry in #123464
  • Propagate the referrer through the RCA feature path by @chromy in #123574
  • Expand small code changes by default by @trevor-e in #123665
  • Send user context with feature runs by @trevor-e in #123393
  • Allow bash tools with seer rca again by @Zylphrex in #123253
  • Open the Seer Agent debug drawer with sentry_run_id by @chromy in #123008
  • Respect force bash mode from the Start Analysis button by @chromy in #123007
  • Don't offer PR iteration after a failed PR create by @joseph-sentry in #122599
  • Autoscroll the Seer Autofix drawer to the bottom on open by @jshchnz in #122745
  • Refresh repository write permissions by @jamieQ in #122498
  • Don't treat a failed push as an opened PR by @joseph-sentry in #121745
  • Don't mark seer action busy when feedback is queued by @malwilley in #122415
  • Turn off the context engine for autofix runs by @chromy in #122423
  • Show start card when no run exists by @jamieQ in #122288
  • Align changed file rows by @mtopo27 in #122207

Automations

Billing

  • Sanitize the partner support note by @oioki in #122323
  • Show account credits when no billing details are on file by @itsdangold in #123448

Ci

  • Reconcile pull request scope metadata by @jamieQ in #123792
  • Use exact PR file lists for change detection by @mchen-sentry in #122736

Conversations

  • Center empty table status by @sentry-junior in #123997
  • Make missing messages banner dismissible by @sentry-junior in #123996
  • Align the conversation header skeleton with its content by @ArthurKnaus in #123425
  • Stop the trace link looking external by @ArthurKnaus in #122828
  • Use user ID as display-name fallback by @fallintoplace in #120756
  • Stop loading after reaching the pagination cap by @fallintoplace in #120751

Crons

  • Remap live environments during project transfer by @evanpurkhiser in #124199
  • Require enough check-ins for incident threshold by @sentry-junior in #123991
  • Timeout seat acceptance during check-in ingest by @sentry-junior in #123175
  • Expire system incident redis keys by @ldelvoye in #122517

Dashboards

  • Tighten and align the widget table star column by @JoshuaKGoldberg in #123436
  • Prevent global filter button stretching by @priscilawebdev in #123311
  • Open Add Widget menu away from side nav by @sentry-junior in #123191
  • Make tests for widget builder and nav bar position alignment by @nikkikapadia in #122875
  • No title unstacked bar charts by @nikkikapadia in #122911
  • Prettify typed EAP attribute keys in group by by @DominikB2014 in #123013
  • Restore revisions with accessible projects by @skaasten in #122916
  • Prevent IndexError for deleted dashboard creators by @sentry in #122945
  • Stop cascading delete on creator removal by @sentry-junior in #122910
  • Audit log create, edit, and delete by @sentry-junior in #122876
  • Seer edit prompt z-index over dropdowns by @nikkikapadia in #122754
  • Fix ai agent overview trace table widget type by @edwardgou-sentry in #122868
  • Reject newly invalid widget heights on update by @skaasten in #122748
  • Enforce widget minimum height on create by @skaasten in #122601
  • Widget builder not respecting navbar width by @nikkikapadia in #122778
  • AI Agents Overview linked dashboard url not normalized by @nikkikapadia in #122510
  • Enforce min height when duplicating dashboard by @narsaynorath in #122764
  • Remove redundant is_transaction from frontend overview table by @DominikB2014 in #122722
  • Table widget stories collapsing by @lzhao-sentry in #122586
  • Don't 500 when validating with an empty project list by @skaasten in #120998
  • Format negative bytes in metrics charts by @lzhao-sentry in #122476
  • Suggest refreshing when a save hits stale widget ids by @DominikB2014 in #122482
  • Return results instead of 400 for widgets with an empty orderby by @skaasten in #121752

Deletions

  • Drop the stale-comment immortality pin from PullRequest retention by @vaind in #121952
  • Make checkin deletions via monitor env stop using bulk deletion task by @wedamija in #122309

Derived

  • Properly classify promotion race by @kcons in #123985
  • Narrow the child duplication window in generate_project_derived_data by @kcons in #123980
  • Schedule consistency checks from leftover heal budget by @sentry-junior in #123363

Derived Data

  • Don't block promotion because live row points at invalid data by @kcons in #123639
  • Refine promote_to_live logic by @kcons in #123386
  • When reporting status divergence, report result in all cases by @kcons in #123345
  • Make heal_stale_derived_data stale group selection more efficient by @kcons in #123096
  • Ignore status updates from merged in commits by @kcons in #122967
  • Refine incremental update tracking by @kcons in #122766
  • Force constraint validation when trying to create GroupDerivedData by @kcons in #122494

Difs

  • Make migration tasks more reliable by @lcian in #123148
  • Shorten Objectstore migration activations by @lcian in #122688
  • Skip permanently corrupt DIFs when migrating by @lcian in #122393

Discover

  • Remove unnecessary type assertion in fields spec by @sentry-junior in #122721
  • Remove /homepage and redirect to index by @nikkikapadia in #120742
  • Adjust backend validation for returning transactions queries by @nikkikapadia in #121959
  • Change upsell text to team instead of business by @nikkikapadia in #122084

Dynamic Sampling

Event Formatter

  • Stop json field types depending on item count by @shayna-ch in #123808
  • Skip tags with null keys by @sentry-junior in #123529

Explore

Forms

  • Include :orgId in new provider form route for search by @sentry in #121051
  • Have SelectField restores focus after selecting an option with the keyboard by @TkDodo in #122570

Gal

Github

Gitlab

  • Reconcile the project hook when a repository is relinked by @vaind in #123742
  • Bound the receipt failure counter's error tag by @vaind in #122815

Grouping

  • Filter out invalid bases in EnhancementsConfig objects by @lobsterkatie in #122503
  • Mark Flutter web pub-cache frames as not in-app by @buenaflor in #122395

Hc

  • Updates RPC error reporting code by @GabeVillalobos in #123848
  • Wraps RPC JSON body parsing in explicit error-handling, updates RPC internal error handling in API by @GabeVillalobos in #123842

Hybridcloud

Inbox

Insights

  • Detect mobile vitals spans for module flags by @sentry-junior in #122684
  • Repair legacy /performance/<module>/ redirects by @mrduncan in #122407
  • Fix web vitals and screen load detection by @mjq in #122266

Integrations

  • Guard inbound assignee sync against reordered webhooks by @vaind in #121157
  • Use GraphQL for GitHub assignees by @scttcper in #123657
  • Scope external user lookup by user by @sentry-junior in #123525
  • Honor pagerduty.app-id from config.yml by @bhataprameya in #122025
  • Preserve ticket rule selections by @scttcper in #123676
  • Search GitHub after prefetching empty query by @scttcper in #123456
  • Check the assignment result in inbound assignee sync by @shashjar in #122933
  • Ignore reordered and replayed inbound status webhooks by @vaind in #121084
  • Portal team mapping select menus above table rows by @sentry-junior in #122535
  • Store webhook request bodies without double encoding by @mrduncan in #122361

Investigations

  • Store Seer's producing run id instead of a foreign key by @wedamija in #123536
  • Hide the raw JSON query answer from the transcript by @natemoo-re in #123162
  • Route details through Explore by @arslnb in #122805
  • Make generated summaries friendlier by @arslnb in #122681
  • Run dependency-aware cell workflows by @arslnb in #122185

Issue Detection

  • Handle data location differences in segment-derived evidence spans by @lobsterkatie in #123509
  • Fix missing evidence data in segment-based occurrences by @lobsterkatie in #123450

Issue Detectors

  • Fix missing nodestore data on segment-derived occurrences by @lobsterkatie in #123288
  • Ignore parentless spans in N+1 API calls detector by @lobsterkatie in #123062
  • Handle multiple bracketed values in hostnames by @lobsterkatie in #122637

Issue Details

  • Don't show success notification on failure by @hobzcalvin in #123672
  • Allow dupe-name repos, still query by unique (name,SHA) by @hobzcalvin in #123671

Issues

  • Lower unpinned event header z-index in #124324
  • Drop the 100vh content floor when the sidebar stacks by @ryan953 in #124090
  • Restore issue details divider by @priscilawebdev in #124022
  • Fall back to the exception type for synthetic exceptions by @bitsandfoxes in #123322
  • Render exceptions without stack traces by @scttcper in #123675
  • Cap page size on full=true event and hash listings by @oioki in #123694
  • Prefer the crash location for synthetic exception titles by @bitsandfoxes in #123430
  • Singularize suggested assignee tooltip in inbox by @sentry-junior in #123530
  • Prevent view hierarchy from loading forever by @scttcper in #123031
  • Hide divider with closed sidebar by @priscilawebdev in #122978
  • Carry received into buffered-spans occurrences by @mrduncan in #123073
  • Handle Snuba query errors in GroupTagsEndpoint by @mrduncan in #123032
  • Preserve suspect commit score ordering by @scttcper in #123043
  • Anchor issue preview hovercard to the visible title by @ChrisandraVaz in #121919
  • Decode text attachment previews from raw bytes by @scttcper in #122677
  • Preserve pull request links when merging issues by @scttcper in #122542
  • Cap page size when listing issue events with full=true by @oioki in #122718
  • Stop leaking a grouphash key per group type without a noise_config by @strongs in #122042
  • Return 400 for invalid search queries on issues-stats by @mrduncan in #122219

Jira

  • Accept a pasted Jira URL when linking an issue by @shashjar in #123389
  • Follow issue key changes when a ticket moves projects by @shashjar in #123198
  • Use timezone-aware JWT timestamps by @NicoHinderling in #122997
  • Make a second call to fetch project details for saved config projects by @Christinarlong in #122547

Loader

Markdown

  • Reset list item font size to md by @sentry-junior in #123069
  • Echo unknown tags by default, report only in SeerMarkdown by @sentry-junior in #123053

Metrics

Monitors

Onboarding

  • Make the SCM create project view an accessible form by @jaydgoss in #123835
  • Key the MS Teams channel picker by name by @jaydgoss in #123622
  • Send the MS Teams channel name as the alert action target by @jaydgoss in #123602
  • Remove unsupported one-minute alert interval from new project alerts by @malwilley in #122865
  • Keep SCM provider pills on a single wrapping row by @jaydgoss in #122894
  • Establish query containers for SCM steps by @jaydgoss in #122891
  • Hide SCM install UI from members without access by @jaydgoss in #122630
  • Sort SCM platform picker alphabetically by @jaydgoss in #122102

Ourlogs

Pr Iter

Pr Iter

Preprod

  • Include build configuration in installable artifact download filename by @sentry-junior in #123871
  • Match updates by raw build number by @jamieQ in #122984
  • Correct Xcode capitalization by @sentry-junior in #123557
  • Disallow logical operators in builds search by @chromy in #123577
  • Use itms-services URL scheme for iOS app installs by @itaybre in #123369
  • Return snapshot state as enum name string by @NicoHinderling in #123264
  • Include base sha in missing snapshot messages by @sentry-junior in #123054
  • Order builds by raw number suffix by @jamieQ in #122731

React Compiler

  • Refactor CommitsList query state to avoid invariant by @sentry in #123669
  • Avoid invariant on computed-key destructuring in IconClose by @sentry in #122296

Replay

Replays

  • Prevent stack overflow in replayerStepper by @sentry in #122427
  • Prevent infinite update loop in network sort by @sentry in #123558
  • Correct useReplayData memoization for React Compiler by @sentry in #123666
  • Keep replay details loading until the project slug resolves by @JoshuaKGoldberg in #123445
  • Handle replays missing their initial snapshot by @JoshuaKGoldberg in #122858
  • Keep issue toggles enabled after save by @scttcper in #121894
  • Pause without seeking when the tab is hidden by @JoshuaKGoldberg in #122047
  • Parse ISO timestamp_ms from events endpoint by @sentry-junior in #122193

Reprocessing

  • Cull parallel reprocessing tasks by @tobias-wilfert in #123693
  • Remove strict equality from check by @tobias-wilfert in #123317

Scraps

Sdk Crash

  • Exclude React Native dev-server hot-reload init crashes from SDK crash detection by @antonis in #123117
  • Ignore fetch instrumentation rejection handler in RN crash detection by @antonis in #120646

Search

Seer

  • Synchronize drawer URL state through nuqs by @trevor-e in #124411
  • Expose trigger source on workflow runs by @trevor-e in #124379
  • Notify Slack threads when Seer needs approval in #124332
  • Allow a metric_endpoint to be passed to make_signed_seer_api_request in #124333
  • Disable issue data FK constraints in #124325
  • Skip the iteration push when the PR is closed by @alexsohn1126 in #123831
  • Make the release embed responsive at all widths by @billyvg in #123955
  • Hide an iteration that failed to write code changes by @joseph-sentry in #123372
  • Attribute Seer RPC queries as seer, not unknown by @DominikB2014 in #123785
  • Align inline resource link icons by @billyvg in #123376
  • Disable Autofix project setup for members by @jamieQ in #123777
  • Keep long PR feedback comments inside the code changes card by @alexsohn1126 in #123490
  • Refresh issue progress views when an autofix step lands by @ryan953 in #123611
  • Prevent thinking UI flash during tool call retries by @natemoo-re in #123503
  • Decouple Autofix Overview activity filter from global time by @NicoHinderling in #123533
  • Fix ambiguous monitor embed id instructions by @billyvg in #123510
  • Keep investigation runs out of the Explorer chat history by @wedamija in #123384
  • Gate Seer UI on issueSummary.enabled, not the config object by @vaind in #122197
  • Add bottom padding to expanded repo settings by @sentry-junior in #123115
  • Drop the duplicate failure reason field by @joseph-sentry in #123380
  • Allow collapsing ThinkingBlock while thinking is active by @natemoo-re in #123252
  • Fix dashboard preview chart behavior by @billyvg in #123327
  • Drain the PR-iteration feedback queue atomically by @joseph-sentry in #123140
  • Add timeout recovery for Explorer chat by @gricha in #122934
  • Clarify Night Shift run errors by @trevor-e in #122675
  • Propagate Explorer failure reasons by @gricha in #122969
  • Include selected projects in page LLM context by @sentry-junior in #123036
  • Name the install that owns the repo on handoff 403s by @joseph-sentry in #122758
  • Skip Night Shift runs without quota by @trevor-e in #122668
  • Accept numeric project IDs in query embeds by @sentry-junior in #122966
  • Show hex conversation id in slack agent responses by @sentry-junior in #122796
  • Make Autofix Overview responsive on narrow widths by @mtopo27 in #122854
  • Gate autofix overview cards on the issueStats query by @NicoHinderling in #122851
  • Move Autofix Overview collapse toggle to the tabs row by @mtopo27 in #122613
  • Make code changes file-row hover and diff border full-width by @mtopo27 in #122842
  • Keep failing-checks tooltip open on the overview card by @mtopo27 in #122743
  • Hide Slack upgrade nudge without integration access by @sentry-junior in #122496
  • Only kick off automation for new issues by @Mihir-Mavalankar in #122640
  • Use absolute redirect target for autofix overview by @NicoHinderling in #122676
  • Show 0 affected users on Autofix overview cards by @mtopo27 in #122642
  • Limit Night Shift to recent issues by @trevor-e in #122518
  • Reword autofix overview milestone toasts as completed actions by @mtopo27 in #122316
  • Scope autofix overview to the selected projects by @mtopo27 in #122305
  • Refine code changes styling in autofix overview by @NicoHinderling in #122250
  • Break long tokens in autofix overview issue titles by @NicoHinderling in #122247
  • Add comment about agent source filtering ephemerality for overview endpoint by @NicoHinderling in #122249
  • Record merged milestone despite abandoned sibling PRs by @NicoHinderling in #122246
  • Clear free cohort repos on paid activation by @trevor-e in #122225
  • Match sort and assignee filter sizes on autofix overview by @mtopo27 in #122221
  • Render failing checks as a bulleted list by @NicoHinderling in #122189
  • Render overview summaries as Markdown by @mtopo27 in #122187

Seer Explorer

  • Unlock show thinking via code mode flag by @sentry-junior in #123601
  • Do not open a reasoning box that renders nothing by @azulus in #123279

Seer Infra Telemetry

  • Fix Datadog org URL in Datadog integration installation flow by @srest2021 in #123652
  • Hide the previous GCP integration verification check result while a new one runs by @shashjar in #123528
  • Show the GCP connection check as running after a save by @shashjar in #123356
  • Switch Datadog whoami from MCP to API by @srest2021 in #123283

Sentry Apps

  • Add feedback text to alert webhooks by @michaelknowles in #123696
  • Skip webhook send when webhook_url is empty by @sentry-junior in #123612
  • Reject non-latin-1 webhook headers by @sentry-junior in #123263

Slack

  • Avoid reusing prior Seer response by @gricha in #123243
  • Stop an empty Seer mention before it runs an agent turn by @sehr-m in #122941
  • Hyperlink team and channel in team-link success message by @sentry-junior in #122756

Spans

  • Handle NoneType in _anyvalue to prevent ValueError by @sentry in #119986
  • Reject malformed segment IDs before buffering by @lvthanh03 in #124141
  • Allow filtering by more than one release version by @narsaynorath in #121643

Tasks

  • Move GAL backfills to long pool by @yuvmen in #123072
  • Extend issue merge processing deadline by @yuvmen in #122939
  • Restore GAL backfills to issues pool by @yuvmen in #122524

Tests

Type Coverage

Ui

  • Disable the project badge link in the breadcrumb title by @Jesse-Box in #124003
  • Remove conflicting bubble transform styles by @evanpurkhiser in #123619
  • Position illustration bubbles consistently by @evanpurkhiser in #123595
  • Respect reduced motion preference by @evanpurkhiser in #123581
  • Add missing React keys by @scttcper in #123511
  • Fix responsive column hiding in saved entity tables by @natemoo-re in #123495
  • Contain branded artwork effects by @evanpurkhiser in #123437
  • Respect effective project access without membership by @noraxchakalova in #122311
  • Consolidate button type imports by @priscilawebdev in #123290
  • Constrain tags to container width by @priscilawebdev in #123130
  • Speed up detector threshold slider keypresses in test by @sentry-junior in #123078
  • Stop reserving a scrollbar gutter on scrollable tables by @shellmayr in #122554
  • Preserve space before login banner link by @sentry-junior in #122163

Workflow Engine

  • Filter all projects detector out when querying by projects by @leeandher in #124408
  • Reject boolean deescalation comparisons in #124304
  • Tolerate missing frequency on issue alert dual-write by @sentry-junior in #122059
  • Remove ordering from all project detector queries by @leeandher in #123507
  • Coerce assigned_to target_identifier to int by @sentry-junior in #123378
  • Reduce DataCondition cache TTL by @kcons in #122422
  • Fix TaggedEventHandler logging by @kcons in #122281

Workflows

  • Enqueue activity processing after commit in #124345
  • Advertise missing scope for all-project updates by @gricha in #123917
  • Require integer prioritylevel in priority conditions by @kcons in #123973
  • Validate Sentry App settings as a list by @cvxluo in #123405
  • Allow team admins to update alerts solely connected to their projects by @malwilley in #123385
  • Validate nested action filters by @cvxluo in #122405

Other

  • (alert-webhooks) Handle deleted issue in alert webhook task by @sentry in #123659
  • (apidocs) Stop documenting query values endpoints do not honor in #124346
  • (assemble) Prevent File.DoesNotExist race in assemble_artifacts by @sentry in #122248
  • (assisted-query) Expose numeric issue ID field by @jamieQ in #124214
  • (auth-v2) Switch cookie settings based on protocol by @natemoo-re in #123185
  • (avatarButton) Sample border color reliably across environments and image types by @natemoo-re in #123245
  • (backup) Preserve multiple project keys on import by @sentry-junior in #124253
  • (bitbucket) Skip deleted refs in webhooks by @NicoHinderling in #123000
  • (breadcrumbs) Avoid expanding the top bar by @priscilawebdev in #122690
  • (charts) Fix charts sometimes being mis-sized and spilling out of their container by @edwardgou-sentry in #122649
  • (chat) ThinkingBlock summary title and title overflow by @natemoo-re in #123254
  • (cleanup) Delete pending attachments from objectstore by @jjbayer in #123728
  • (ctrl) Adds additional failure metric for connection resets, minor cleanup from #123660 by @GabeVillalobos in #124193
  • (dates) Support stats periods measured in seconds by @JoshuaKGoldberg in #121779
  • (deps) Bump js-yaml to patch CPU exhaustion vulnerabilities by @oioki in #122456
  • (detectors) Preserve fractional anomaly threshold bounds by @sentry-junior in #123313
  • (dev) Stop node_modules/.bin from shadowing the venv by @ldelvoye in #123476
  • (devserver) Ignore --ingest on the control silo by @alexsohn1126 in #122237
  • (discord) Truncate embed titles to Discord's 256 char limit by @sentry-junior in #122145
  • (emails) Remove outdated body background pattern by @sentry-junior in #122523
  • (eslint) Import/no-duplicates by @TkDodo in #123116
  • (explorer) Show progress while a Code Mode call is in flight by @azulus in #122670
  • (feature-flags) Add more platforms by @mrduncan in #122810
  • (features) Honor registered handlers in batch checks by @cvxluo in #123181
  • (flags) Raise flag name limit to 256 characters by @DominikB2014 in #122589
  • (frontend) Sync first-event flags into ProjectsStore by @sentry-junior in #122715
  • (incidents) Skip non-numeric subscription aggregation values by @sentry-junior in #123164
  • (interfaces) Skip null span entries during to_python by @sentry-junior in #122750
  • (issue-inbox) Enable Seer rollout in frontend by @cvxluo in #122896
  • (issue-progress) Clear fix applied when issue reopens by @malwilley in #122773
  • (jest) Exclude nested agent worktrees from the module map by @vaind in #122196
  • (logs) Export from server when local values are truncated by @JoshuaKGoldberg in #122834
  • (members) Remove duplicate loading indicator by @priscilawebdev in #124155
  • (msteams) Read name and type from the Teams channel list response by @jaydgoss in #123621
  • (notification-action) Route ticketing actions through group type registry by @sentry-junior in #123618
  • (objectstore) Handle ranges for compressed objects by @lcian in #122396
  • (occurrences on eap) Fix escaping in build_escaped_term_filter by @vaind in #122138
  • (pagefilters) Keep absolute date ranges inside the max window by @JoshuaKGoldberg in #122039
  • (performance) Query replacement telemetry attributes by @obostjancic in #123114
  • (prebuilt-dashboards) Allow feature gating prebuilt dashboards by @narsaynorath in #123909
  • (profiling) Validate profiler IDs before chunk queries by @cvxluo in #122109
  • (proguard) Left-align the mapping name under its header by @JoshuaKGoldberg in #124024
  • (project-creation) Preserve SCM details on platform change by @jaydgoss in #122470
  • (ratelimits) Expire concurrent rate limit keys by @strongs in #122038
  • (react) Inline chart component selection for static analysis by @sentry in #122289
  • (releases) Align release comparison table rows by @priscilawebdev in #123127
  • (repos) Auto-sync newly connected SCM provider so repos appear by @NicoHinderling in #122617
  • (rules) Attribute ticket creation to the ambient action context by @cvxluo in #123650
  • (scm-messaging) Persist and Busy Confirm and continue during project creation by @Abdkhan14 in #124028
  • (sdk) Ignore stale ECharts tooltip errors by @JoshuaKGoldberg in #122083
  • (sdk-loader) Prevent infinite recursion when calling Sentry.configureScope() by @Lms24 in #122821
  • (sentry apps) Self heal hooks in background w/o org id by @Christinarlong in #123920
  • (sentryapps) Stop project and sentry app hook collisions by @Christinarlong in #124094
  • (service-worker) Ignore InvalidStateError during registration by @sentry in #123624
  • (settings) Show authorizations breadcrumb by @TkDodo in #123600
  • (similar-issues) Stop truncating the score column headers by @JoshuaKGoldberg in #124025
  • (slack-discover) Prevent TypeError from None fields/yAxis in unfurl by @sentry in #122169
  • (snapshots) Bound image diff pixel processing by @jamieQ in #122366
  • (snuba) Register generated query referrers by @NicoHinderling in #123005
  • (source-maps) Left-align artifact column contents by @JoshuaKGoldberg in #123318
  • (span-waterfall) Replace generic metrics calculation with eap by @narsaynorath in #124075
  • (spike-protection) Restore row padding in the spike protection project list table by @shellmayr in #122861
  • (sw) Guard against null notification data in worker by @sentry in #122433
  • (symbolication) Bump max decompressed source size by @jjbayer in #122133
  • (tables) Forward overlays through Table.HeadCell by @JoshuaKGoldberg in #122469
  • (tabs) Prevent tabs from collapsing into the overflow menu when they exactly fit by @aashutoshrathi in #124248
  • (taskworker) Expire the retry_state example's redis key by @ldelvoye in #122797
  • (tempest) Keep screenshot toggle enabled after save by @scttcper in #121895
  • (trace) Hide span-only metrics from trace waterfall tab by @nsdeschenes in #122474
  • (trace-meta) Exclude span-sourced metrics from count by @nsdeschenes in #122701
  • (tracemetrics) Refresh starred query links after updates by @vjeranc in #122135
  • (traces) Default agent activity to timeline by @sentry-junior in #124286
  • (uptime) Limit max number of messages per process to 10k by @wedamija in #123282
  • (vsts) Stop unresolving when the work item states lookup fails by @vaind in #123478
  • (web) Serve Scraps without redirecting by @priscilawebdev in #122557
  • (webvitals) Fix web vital samples not loading in detail slideout panel by @edwardgou-sentry in #123623
  • Missing next bill card for platform orgs by @noahsmartin in #123976
  • SeerBadge tooltip by @TkDodo in #123690
  • Move long running issue tasks to the long pool by @evanh in #122244
  • Apply color scheme to all React routes by @evanpurkhiser in #122147

Documentation 📚

Api

  • Publish existing issue linking endpoints as experimental in #124068
  • Complete public issue linking schemas by @betegon in #124091
  • Add AI conversation details response example by @vgrozdanic in #123681
  • Add AI conversation response example by @vgrozdanic in #123542
  • Document the query parameter on listOrganizationMembers by @chromy in #123023

Breadcrumblist

  • Rework the story around item types and props by @Jesse-Box in #124154
  • Stop documenting a preservePageFilters prop by @Jesse-Box in #124000

Issues

  • Document preprod and configuration issue categories by @shashjar in #124054
  • Document the project issues statsPeriod default and accepted values by @shashjar in #122937

Scraps

  • Add drag handle best practices by @ChrisandraVaz in #122551
  • Show ToolCall detail example code by @priscilawebdev in #122816

Seer

  • Fix stale paths and add the stories step to the seer-embed skill by @billyvg in #123910
  • Document the embed directory convention by @billyvg in #123368

Other


This changelog has been truncated. See the full changelog for all changes.

Don't miss a new sentry release

NewReleases is sending notifications on new releases.