github getsentry/sentry 26.3.0

5 hours ago

New Features ✨

Aci

Ai Conversations

Alerts

  • Include single-written detectors in AlertRuleFetchMixin.fetch_metric_alerts by @kcons in #110673
  • Add trace metrics support to new alert UI (detectors) by @k-fish in #108730
  • Consistent logging for cases where users hit alert limits by @kcons in #109101

Assets

Autofix

Billing

Cells

Ci

Code Review

Coding Integrations

  • Limit coding agent integrations to one per organization by @sehr-m in #110690
  • Add Claude logo for claude_code integration by @sehr-m in #110663

Context Engine

Core Ui

Dashboards

Dev

Discover

Eslint

Explore

Explorer

Flags

Infra

  • Report frontend-snapshot upload failures to Sentry by @rbro112 in #110427
  • Replace full backend workflow on PRs with selective testing by @rbro112 in #109346

Insights

Integrations

Issues

Metric Issues

Notifications

Occurrences On Eap

  • Implement double-read performance issues query for summaries task by @shashjar in #110277
  • Implement double-read query for trace errors count by @shashjar in #110251
  • Update query abstractions & utils by @shashjar in #109696
  • Implement double reads from EAP for organization traces API endpoint by @shashjar in #109636
  • Implement double reads from EAP for monitors associated groups by @shashjar in #108008
  • Implement double reads from EAP for error counts timeseries by @shashjar in #107308
  • Implement double reads from EAP in organization events trace API endpoint by @shashjar in #109391
  • Implement double reads from EAP for reprocessing2 flow by @shashjar in #109345
  • Support debug logging for data mismatches in rollout comparator by @shashjar in #109247

Onboarding

Pagefilters

  • Fix sentinel toggle behavior for All/My Projects quick-select by @JonasBa in #109545
  • Auto-select single project for single-project orgs by @JonasBa in #109767

Perf Detectors

  • Set default enabled state of perf Detectors based on configuration by @kcons in #109961
  • Make ProjectPerformanceIssueSettingsEndpoint optionally write to Detector.config by @kcons in #109623
  • Consider Performance Detectors to be system created by @kcons in #109762
  • Create Performance Detectors by default by @kcons in #109760

Preprod

Processing Errors

Relay

Scm

Seer

  • Register project and org option keys for seer preferences migration by @srest2021 in #110548
  • Migration for SeerProjectRepository and SeerProjectRepositoryBranchOverride models by @srest2021 in #110542
  • Allow installing integrations directly from within the Seer SCM treeview by @ryan953 in #110551
  • Seer Code Review page allows inline editing of the connected repos in a modal by @ryan953 in #110501
  • Iterate on the seer settings header, copy and visual alignment by @ryan953 in #110500
  • Add a flag to control if orgs can toggle their Enable Code Generation setting by @ryan953 in #110491
  • Rewrite the Seer > Project list page by @ryan953 in #109531
  • Create an SCM config component to streamline seer setup by @ryan953 in #110166
  • Add is_private field to repo definitions for code review by @vaind in #110190
  • Detect Cursor GitHub access errors and return specific failure type by @isaacwang-sentry in #109692
  • Add tooltip to ResponseDot showing step status by @chromy in #109659
  • Add signed viewer context header to Seer API requests by @azulus in #109626
  • Iterate on the instructions at the top of seer settings pages by @ryan953 in #109586
  • Include isolated services in explorer service map by @shruthilayaj in #109330
  • Add default_coding_agent field to SeerOrganizationSettings by @JoshFerge in #108762
  • Simplify and consolidate the Settings > Project > Seer page by @ryan953 in #109349
  • Add SeerOrganizationSettings model by @JoshFerge in #109299
  • Add Explorer service map extraction pipeline by @shruthilayaj in #108379
  • Add github_copilot_not_licensed failure type by @JoshFerge in #108782

Seer Explorer

Size

Snapshots

Sourcemap Issues

Span Buffer

  • Add zerocopy mode by @untitaker in #109313
  • OOB storage by @untitaker in #109191

Spans

  • Distribute span payload keys across Redis cluster by @lvthanh03 in #110593
  • Add per-trace segment flush limit by @lvthanh03 in #110337
  • Add flusher log support to GCP log analyzer tool by @lvthanh03 in #109080
  • Emitting outcomes when accepted_outcome_emitted is false by @tobias-wilfert in #109305
  • Add metric to ensure accepted_outcome_emitted arrives by @tobias-wilfert in #109303
  • Bump sentry-kafka-schemas version by @tobias-wilfert in #109174

Supergroups

Tracemetrics

  • Support units in monitors UI by @narsaynorath in #109732
  • Alerts allow search on field by @narsaynorath in #109883
  • Use units in alerts metric selector UI by @narsaynorath in #109593
  • Expose unit type in metrics UI by @narsaynorath in #108036
  • Add deno to available metrics platforms by @narsaynorath in #109195

Ui

Webhooks

  • Composite GitHub tag by @armenzg in #110521
  • Add push-based drain trigger to eliminate scheduler wait by @tnt-sentry in #109214
  • Exclude mailboxes from delivery_time_ms metric by @armenzg in #108711

Other

  • (actions) Log Action deduplication by @kcons in #109160
  • (admin) Add Last Active column and sort to user search by @ndmanvar in #109736
  • (agent-monitoring) Add LLM instructions to copy markdown button by @priscilawebdev in #109307
  • (alerts-api) Add tests and fixes for OrganizationAlertRuleDetails API backward compatibility by @kcons in #110362
  • (analytics) Add Amplitude tracking to project page filter by @JonasBa in #109431
  • (broadcasts) Add show=latest filter to broadcast index endpoint by @JonasBa in #110323
  • (button) Busy spinner with absolute position by @TkDodo in #110202
  • (client-reports) Feature flag for new client report processing pipeline by @tobias-wilfert in #109860
  • (codecov) Hide TA feature by @calvin-codecov in #109527
  • (commits) Support Sentry issue URLs in "Fixes" references by @vaind in #106174
  • (compactSelect) Use fzf for default search matching by @JonasBa in #109252
  • (config-issues) Registering issue type and associated trace item by @Abdkhan14 in #110225
  • (configuration-issues) Making processing_errors queryable by @Abdkhan14 in #109884
  • (control) Add support for dropping unprocessed GitHub webhook events by @armenzg in #109354
  • (conversations) Collapse tool calls in message bubbles by @priscilawebdev in #109176
  • (cursor) Add retry with model fallback for Cursor API launches by @isaacwang-sentry in #108768
  • (data-browsing) Use custom React chart legend component in TimeSeriesWidgetVisualization by @gggritso in #108493
  • (data-forwarding) Add padding prop to FieldLayout components by @JonasBa in #108803
  • (dynamic-sampling) Add new trace based health check bias with higher sample rate by @shellmayr in #109552
  • (events) Add occurrences as a dataset by @wmak in #109727
  • (features) Register organizations:page-frame feature flag by @JonasBa in #110264
  • (form) Enhance field status indicators with lock icon for disabled state by @TkDodo in #109189
  • (forms) RadioField by @TkDodo in #108819
  • (frontend) Web snapshot testing by @rbro112 in #107971
  • (github) Add mailbox bucketing for GitHub webhooks by @tnt-sentry in #108138
  • (grouping) Parameterize hex values that are up to 128 characters long by @thetruecpaul in #109137
  • (inbound-filters) Add health-check to healthcheck globs by @shellmayr in #110402
  • (issue-details) Format is_active field as 'Is Active' in app context by @philipphofmann in #107047
  • (issue-detection) Use title-only fingerprinting for LLM-detected issues by @roggenkemper in #109131
  • (metric alerts) Add tests for differences in workflow-engine-rule-serializers output by @kcons in #109242
  • (middleware) Expand AI agent guidance with docs and plugin links by @dcramer in #108938
  • (models) Recreate CodeReviewEvent with updated schema [3/3] by @vaind in #109424
  • (monitors) Add Mobile Builds to monitors sidebar by @mtopo27 in #110464
  • (occurrences) New ingest by @thetruecpaul in #109180
  • (page-filters) Use fzf for project search in ProjectPageFilter by @JonasBa in #108725
  • (performance-detectors) Use config from Workflow Engine Detectors if available and enabled by @kcons in #107137
  • (profiling) Back SuspectFunctionsTable with EAP by @mjq in #109293
  • (queue) Register insights-queue-dashboard-migration feature flag by @DominikB2014 in #109332
  • (queues) Split transaction table into producer and consumer tables by @DominikB2014 in #109683
  • (replays) Convert replay console tab to tanstack virtual by @scttcper in #109292
  • (repos) Replace the repo list page with the new repo tree-view by @ryan953 in #110290
  • (repositories) Add danger delete button with label to repository row by @JonasBa in #108764
  • (rollouts) Add comparator with timings by @thetruecpaul in #109104
  • (scim) Move privilege grant/revoke to async task by @michelletran-sentry in #109129
  • (sdk) Upgrade Sentry SDKs to 10.41.0-beta.0 by @billyvg in #109494
  • (sentry-apps) Expose sentryAppId in SentryAppInstallation API by @souredoutlook in #109496
  • (skills) Add lint skills by @natemoo-re in #110133
  • (spans-buffer) Track pre-merge oversized parent sets by @lvthanh03 in #108447
  • (stories) Lazy load story API type docs by @scttcper in #110332
  • (symbolicator) Disable Intel symbol source by @tobias-wilfert in #109311
  • (theme) Add swatch utils by @natemoo-re in #110090
  • (trace-items) Update trace item search with dynamic keys by @nsdeschenes in #108121
  • (traces) Add 'Open in Logs' link to Logs view by @JoshuaKGoldberg in #110311
  • (traces-explorer) Pass through all chart visuals in Compare Queries by @JoshuaKGoldberg in #110153
  • (typing) Enable mypy strict_equality in our strongly typed config by @kcons in #108606
  • (uptime-assertions) Improving json path form by @Abdkhan14 in #109963
  • (uptime-form-errors) Improving assertion error handling by @Abdkhan14 in #109352
  • (uptime-trace-issues) Rendering uptime issues in traces by @Abdkhan14 in #108567
  • Allow sentry-replay-debugger uri scheme for oauth by @billyvg in #109976
  • Disable webhook forwarding to codecov by @calvin-codecov in #110023
  • Add branch to use taskbroker-client by @markstory in #110001
  • TanStack devtools by @TkDodo in #110032
  • Add flamegraph for metric kit hangs by @noahsmartin in #106412
  • Devenv syncs chromedriver to the google chrome version by @joshuarli in #109739
  • Remove github-console-sdk-self-invite flag registration by @mujacica in #109493
  • Remove github-console-sdk-self-invite feature flag by @mujacica in #109470
  • Add endpoint to list only issues that have PRs created from Seer Explorer by @billyvg in #107850

Bug Fixes 🐛

Aci

Agents

  • Add error boundary around ModelsTable by @priscilawebdev in #110509
  • Handle null modelId in agent monitoring page by @priscilawebdev in #110505

Ai Conversations

Alerts

Api

  • Preserve RateLimitExceeded metadata in handle_query_errors by @cvxluo in #109821
  • Fix user serializers to return emails for superusers by @wedamija in #109837
  • Add missing cursor query parameter to paginated endpoint OpenAPI schemas by @MathurAditya724 in #109642

Auth

  • Mask SCIM token after 5-minute visibility window by @wedamija in #108093
  • Show warning when authenticated user isn't an org member by @JoshFerge in #109952
  • Fix for impersonated sessions by @michelletran-sentry in #109903
  • Revoke superuser/staff when user not in default org by @michelletran-sentry in #109510
  • Invalidate sessions when a linked identity is disconnected by @wedamija in #108250

Autofix

Billing

Build

  • Exclude snapshot test files from rspack type-checker by @NicoHinderling in #110547
  • Exclude react-select from SWC loader to fix emotion warning by @TkDodo in #109563

Ci

  • Exclude .venv from pyc cache cleanup by @mchen-sentry in #110585
  • Lint issue in snapshot.ts by @nsdeschenes in #110414
  • Skip selenium plugin import on non-acceptance backend test shards by @mchen-sentry in #109757
  • Add CODEOWNERS fastpath to selective testing by @joshuarli in #109163

Conversations

  • Left-align text content in user message bubbles by @priscilawebdev in #110403
  • Preserve query params on redirect to explore by @obostjancic in #110030

Dashboards

Detectors

  • Fix WorkflowEngineDetectorSerializer snooze field by @kcons in #110529
  • Make mobile build threshold validation require at least one by @mtopo27 in #110460
  • Require data sources for Detector creation by default by @kcons in #110246

Eap

  • Use addFilterValue for transaction name in EAP sidebar charts by @mjq in #109089
  • Fix possibly-undefined group_list in delete helper by @scttcper in #109518
  • Silence possibly-undefined warning in SearchResolver by @scttcper in #109514
  • Add transaction filters to SegmentSpansTable query by @mjq in #109084

Events

  • Don't link to trace explorer when trace id is missing by @mrduncan in #110670
  • Handle Snuba errors in group events endpoint gracefully by @shashjar in #109158

Explore

Explorer

  • Fix issue/event formatters by @aliu39 in #110378
  • Incl project id and slug in issue details response by @aliu39 in #110338
  • Handle missing counts in get_filter_key_values and don't query both backends by @aliu39 in #110172
  • Use sentry org for conversations url and rename slash cmd by @aliu39 in #109592

Form

  • Swap hashchange for useLocation by @natemoo-re in #109570
  • Remove padding & negative margin from HighlightableFlex by @TkDodo in #109304

Github Copilot

Grouping

  • Handle grouphash cache invalidation errors gracefully by @lobsterkatie in #110158
  • Fix "kitchen" time parameterization regex by @lobsterkatie in #109895
  • Stop parameterizing message variable in custom titles by @lobsterkatie in #109893
  • Make derived rules visible to users by @thetruecpaul in #109836
  • Fix ip parameterization false positives by @lobsterkatie in #109713
  • Fix hex parameterization lookahead bug by @lobsterkatie in #109709
  • Resolve mypy possibly-undefined errors in grouphash caching by @scttcper in #109602
  • Avoid mutating class-level initial_context in grouping info endpoint by @joshuarli in #109009
  • Fix UnboundLocalError in _is_race_condition_skipped_event by @mrduncan in #109393

Insights

Integrations

  • Reload integrations after installing coding agent by @sehr-m in #110665
  • Cache empty repo 409 responses to reduce GitHub API calls by @trevor-e in #109153
  • Record 409 empty repo responses as halts instead of failures by @trevor-e in #109134
  • Add interaction events for /repos and /installation/repositories by @trevor-e in #108722

Issues

Logs

Metrics

Oauth

  • Delay before allowing pressing Approve button by @oioki in #110304
  • Add distributed lock to refresh token exchange to prevent race condition by @wedamija in #108193

Objectstore

  • Use OrganizationReleasePermission for Objectstore endpoint by @lcian in #109865
  • Change scopes type from dict to list of tuples by @lcian in #108693

Occurrences On Eap

Onboarding

  • Preserve user-entered project slug during platform selection by @sentry in #109609
  • Fix CopyDsnField markdown + hide copy button with AI setup by @jaydgoss in #109953
  • PHP renaming trace_metrics -> traceMetrics by @constantinius in #109066

Perforce

  • Use P4CONFIG for per-connection trust file isolation by @mujacica in #109828
  • Isolate P4 trust/ticket files per client to prevent lock contention by @mujacica in #109652
  • Use tmp files for the trust locks instead of global paths by @mujacica in #109469

Performance

  • Remap request.method for EAP related issues table by @mjq in #109196
  • Fix EAP transaction summary method filter and duration breakdown chart by @mjq in #108483

Preprod

Profiling

  • Wrap billing banner inside DescriptionWrapper by @priscilawebdev in #109867
  • Show empty state when no suspect functions found by @mjq in #109295

Replay

  • Fix customElement.define by @billyvg in #110352
  • Fix tooltips on timestamps in replay index by @billyvg in #109691

Seer

  • Reduce the staletime of the SCM tree so it can refresh as integrations change by @ryan953 in #110287
  • Prevent duplicate navigation in Seer settings tabs by @scttcper in #110222
  • Add auth signing to grouping record delete-by-hash requests by @JoshFerge in #110205
  • Set explicit timeouts for AI translate endpoints by @sentry in #109960
  • Update seer_model after training mode request by @yuvmen in #109539
  • Apply stacktrace length filtering to all platforms for V2 grouping model by @yuvmen in #109287
  • Populate missing IssueDetails fields for explorer_index by @sentry in #109213

Settings

  • Remove double url normalization by @natemoo-re in #110160
  • Add team selection modal and navigation support by @TkDodo in #108669

Spans

  • Convert nones to zeros for failure rate and count by @Zylphrex in #110330
  • Use decompressed bytes size for oversized segment check by @lvthanh03 in #109839
  • Detect subprocess crash during startup health check by @lvthanh03 in #109832
  • Route spans to queue by Kafka partition by @lvthanh03 in #109490
  • Handle null span attributes by @lvthanh03 in #109316

Stories

  • Wrap StoryTabPanels in Stack by @natemoo-re in #110657
  • Fix HMR for .stories.tsx and .mdx files in Scraps by @scttcper in #109630

Tests

Trace

  • Prefer standalone span indicators over pageload span indicators by @nsdeschenes in #110297
  • Handle missing groups by @wmak in #109942

Tracemetrics

  • Preserve all visualizes when changing chart type by @nsdeschenes in #110618
  • Hide explicit none types in UI by @narsaynorath in #110443
  • Include conditions for unit:none explicitly by @narsaynorath in #110415
  • Handle unit for "value" column in frontend by @narsaynorath in #110095
  • Fix effective sample rate in dual write by @k-fish in #110104
  • Properly handle duration scaling in alerts by @narsaynorath in #109950
  • Metric select field in alerts should use isLoading by @narsaynorath in #109943
  • Changing to categorical bar chart loses unit value by @narsaynorath in #109899
  • Parse units off response in events request for alerts by @narsaynorath in #109608
  • Allow explicitly defining none in requests by @narsaynorath in #109328

Traces

  • Filter unreleased issue types from trace API by @nora-shap in #110356
  • Hide LLM Detected issues from trace details view by @nora-shap in #109929
  • Switch 'Edit Table' button to use the Edit icon, not Table by @JoshuaKGoldberg in #109780
  • Handle heavily sampled projects by @wmak in #108750

Ui

  • Align upsell modal feature list by @natemoo-re in #110677
  • Move git_pr_number to number tags in explore constants by @runningcode in #110040
  • Change git_pr_number field type from STRING to INTEGER by @runningcode in #110033
  • Align event drawer header with sidebar header and sticky EventNavigation by @TkDodo in #109930
  • Defer scroll restoration by @natemoo-re in #109885
  • Hide LLM Detected issues from trace timeline by @nora-shap in #109857
  • Filter null-tuple unhandled rejections by @scttcper in #109588
  • Improve layout responsiveness for smaller screens by @priscilawebdev in #109173

Workflow Engine

  • Skip workflow processing for inactive projects by @malwilley in #110553
  • Fix Workflow.DoesNotExist issue(s) by @saponifi3d in #110169

Workflows

  • Treat OrganizationWorkflowIndexEndpoint query parse errors as 400s by @kcons in #110434
  • Don't report missing Environment as an error by @kcons in #109958
  • Account for no associated workflow by @kcons in #109509
  • Make update_workflow_action_group_statuses handle missing foreign keys by @kcons in #109149

Other

  • (ai-agents) Remove platform filters by @obostjancic in #110295
  • (ai-monitoring) Fix error icon bg bleed in ai trace span list by @priscilawebdev in #109177
  • (attachments) Skip rate limiting for attachments already in objectstore by @jan-auer in #110035
  • (AutoSaveField) Type inference for mutationOptions by @TkDodo in #110413
  • (avatar) Coerce owner id and avatar name to string before trim by @JonasBa in #110598
  • (broadcasts) Guard against non-array broadcasts value to prevent crash by @JonasBa in #110599
  • (buffer) Allow dicts during buffer encoding by @thetruecpaul in #110024
  • (button) Restore focus ring on transparent LinkButton by @JonasBa in #109735
  • (cells) Fix ByCellName resolver by @lynnagara in #110217
  • (charts) Break infinite render loop in ChartLegend overflow detection by @gggritso in #110480
  • (cleanup) Move partition validation before environment setup by @joshuarli in #108404
  • (code-review) Filter pr_closed webhook when no code review triggers configured by @giovanni-guidini in #109192
  • (coding integrations) Setting branding + loading bug by @sehr-m in #110448
  • (CompactSelect) Adjust scrollbar gutter behavior based on overflow state by @TkDodo in #109653
  • (components) [SearchQueryBuilder] cap FilterWrapper width to 2xl less than parent by @JoshuaKGoldberg in #110334
  • (crons) Try to fix deletion spikes from crons by @wedamija in #109388
  • (cursor) Fall back to /v0/models for API key verification by @JoshFerge in #109297
  • (data-browsing) Allow SQLish to parse some Unicode control characters by @gggritso in #110306
  • (eco) Addresses ApiForbidden errors, IntegrationConfigurationError noise by @GabeVillalobos in #109711
  • (eslint) Use optional chain in restrict-jsx-slot-children rule by @TkDodo in #109557
  • (fixability) Always pass issue summary to fixability endpoint by @Mihir-Mavalankar in #109258
  • (formatting) Run ruff format by @thetruecpaul in #109618
  • (forms) Hash-based scroll + focus by @natemoo-re in #108536
  • (gen-ai) Gracefully handle malformed JSON in AI message parsing by @sentry in #109645
  • (gettingStartedDocs) Update LangGraph example to use StateGraph API by @priscilawebdev in #109551
  • (github) Swallow error when getting back an error response for codeowners file by @Christinarlong in #110233
  • (globalDrawer) Fix horizontal scroll on small screens by @priscilawebdev in #109168
  • (gsAdmin) Handle missing abuse reason in customer stats by @priscilawebdev in #110293
  • (guidedSteps) Reset to first step when currentStep exceeds totalSteps by @jaydgoss in #109501
  • (interfaces) Allow 'self' as context key by @kcons in #106991
  • (issue search) Route non-error issue message search through Snuba instead of truncated Postgres field by @shashjar in #109110
  • (issue-details) Preserve page filters when searching issues by tag value by @yuvmen in #109102
  • (issue-detection) Use LLM-resolved project_id for cross-project issue attribution by @roggenkemper in #109253
  • (issue-timeseries) Allow higher granularities by @wmak in #109827
  • (jira) Update error handling to handle more form errors by @Christinarlong in #109764
  • (metric-issue) Defer chart request until open period has loaded by @malwilley in #109425
  • (metric-issues) Handle 10k data point limit for the metric chart by @malwilley in #109882
  • (migrations) Getsentry clean migration by @hubertdeng123 in #110374
  • (modal) Skip ESC close when event is already handled by child by @TkDodo in #109556
  • (monitors) Remove radius on schedule preview when overlapping panels by @evanpurkhiser in #108673
  • (notifications) Attach occurrence to GroupEvent for test notifications by @mrduncan in #110562
  • (occurrences) Filter None values out of headers by @thetruecpaul in #110355
  • (pageFilters) Expand sentinel selection before unchecking a project by @JonasBa in #110274
  • (processing-errors) Fix missing received value from our processing-error TraceItems by @wedamija in #109851
  • (profiles) Re-enable skipped symbolicator deobfuscation tests by @romtsn in #110379
  • (projectredirect) Increase slug size by @thetruecpaul in #109968
  • (releases) Sort by build number & code in semver when resolving in next release by @srest2021 in #106885
  • (rules) Update escalation condition label to reflect actual behavior by @malwilley in #110328
  • (safe) Handle None query parameter in safe_urlencode by @malwilley in #110367
  • (scm) Rename to apps.py by @cmanallen in #110682
  • (search) Preserve scroll position in multi-select filter combobox by @nsdeschenes in #108526
  • (security) Only include emails in user serialization for the requesting user by @wedamija in #108287
  • (sentry-apps) Handle empty webhook_url in external requests by @sentry in #109529
  • (similar-issues) Deduplicate groups with multiple hashes in similar issues response by @mrduncan in #108513
  • (snuba) Handle direct project.id groupby in top event conditions by @Zylphrex in #109535
  • (span-buffer) Track outcome on produce errors by @evanh in #109944
  • (storybook) Convert missed default imports to named by @JoshuaKGoldberg in #110535
  • (taskbroker) Allow taskbroker_send_tasks to run indefinitely by @evanh in #110573
  • (tempest) Add more metrics, logs and spans for monitoring by @mujacica in #107041
  • (trace-waterfall) Fix duration text overlap in trace waterfall by @nsdeschenes in #108230
  • (traces-explorer) Remove chart-specific restrictions on deletion logic by @JoshuaKGoldberg in #110046
  • (typing) Add missing types to group-merge code by @thetruecpaul in #110229
  • (useScrollLock) Fix document.documentElement locking to not break position: sticky by @TkDodo in #109663
  • (vercel) Adds signature check to vercel delete endpoint by @Christinarlong in #109974
  • (virtualization) Adjust height calculation to include vertical padding for scrollbar consistency by @TkDodo in #109480
  • (webhooks) Eliminate head-of-line blocking in sequential mailbox drain by @tnt-sentry in #110215
  • Only disable SubmitButton while form is in submitting state by @TkDodo in #110192
  • Add dependency on column drop migration by @markstory in #110214
  • Revert "ref(core): button busy state and form SubmitButton UX" by @natemoo-re in #109891

Documentation 📚

Skills

  • Add no-toast guidance for auto-save form fields by @JonasBa in #109483
  • Add setup-dev skill for dev environment setup by @HazAT in #108744

Other

Internal Changes 🔧

Aci

Alerts

  • Refactor DetailedWorkflowEngineDetectorSerializer to remove inheritance by @kcons in #110706
  • Remove unused neglected rule code by @ceorourke in #110363
  • Replace useRouter with specific hooks in ruleDetails by @evanpurkhiser in #110116

Api

  • Remove OrganizationEventsSpansHistogramEndpoint by @cvxluo in #110339
  • Remove ProjectUserStatsEndpoint by @cvxluo in #110342
  • Use logs instead of capture_message by @billyvg in #109794
  • Remove dead code from organization traces API endpoint by @shashjar in #109637

Attachments

  • Skip V2 objectstore delete for EventAttachments during cleanup by @jan-auer in #109776
  • Clean up objectstore rollout options by @jan-auer in #109674
  • Remove objectstore double-write code by @jan-auer in #109671

Auth

  • Replace browserHistory with useNavigate in loginForm by @evanpurkhiser in #110013
  • Replace browserHistory with useNavigate in ssoForm by @evanpurkhiser in #109992
  • Replace browserHistory with useNavigate in registerForm by @evanpurkhiser in #109998

Autofix

Avatar

Billing

Cells

Ci

  • Add action to update baseline-browser-mapping by @natemoo-re in #110608
  • Add mdx type checking by @natemoo-re in #107776
  • Refactor jest-balance job to use shared setup-node-pnpm step by @ryan953 in #110534
  • Remove repo-level Warden workflow by @gricha in #110134
  • Use shared setup-node-pnpm action in acceptance workflow by @hubertdeng123 in #110022

Code Review

Coding Integrations

Components

Context Engine

Core

  • Improve select field types by @TkDodo in #110454
  • Button busy state and form SubmitButton UX by @TkDodo in #109869

Dashboards

Db

  • Add (group_id, action_id, date_added) index on NotificationMessage by @beezz in #109179
  • Remove (group_id, last_seen DESC) index from GroupRelease by @beezz in #109067

Deps

  • Update baseline-browser-mapping by @github-actions in #110672
  • Bump django from 5.2.11 to 5.2.12 by @dependabot in #110406
  • Bump werkzeug from 3.1.5 to 3.1.6 by @dependabot in #110425
  • Bump sqlparse from 0.5.0 to 0.5.4 by @dependabot in #110424
  • Pnpm approve native bindings by @natemoo-re in #110435
  • Bump pillow from 11.0.0 to 12.1.1 by @dependabot in #109657
  • Bump cryptography from 44.0.1 to 46.0.5 by @dependabot in #109655
  • Bump @rspack/cli, @rspack/core, @rspack/plugin-react-refresh by @oioki in #109656
  • Fix GHSA-23c5-xmqv-rm74 vulnerable minimatch in api-docs by @oioki in #109658
  • Fix GHSA-fjxv-7rqg-78g4 vulnerable form-data in api-docs by @oioki in #109654
  • Bump minimatch from 5.1.6 to 5.1.9 in /api-docs by @dependabot in #109536
  • Bump typescript-eslint to 8.56.1 by @JoshuaKGoldberg in #109312
  • Bump objectstore-client to 0.0.18 by @lcian in #109193

Discover

  • Replace browserHistory with useNavigate in landing by @evanpurkhiser in #110010
  • Replace browserHistory with useNavigate in actionDropdown by @evanpurkhiser in #110018
  • Replace browserHistory with useNavigate in eventInputName by @evanpurkhiser in #109979

Eslint

Explore

Explorer

Flags

Gen Ai

  • Remove noisy parse exception captures in AI input by @priscilawebdev in #110400
  • Remove redundant cost alert capture message by @priscilawebdev in #110398

Github

  • Bucket webhooks by event type to reduce head-of-line blocking by @tnt-sentry in #109988
  • Remove mailbox allowlist for drop-unprocessed-events by @armenzg in #109519

Grouping

  • Improve message parameterization metrics by @lobsterkatie in #110612
  • Cache parameterization on context by @lobsterkatie in #110605
  • Remove ContextValue and ContextDict by @lobsterkatie in #110466
  • Change where message variable is parameterized by @lobsterkatie in #110377
  • Convert message parameterizer to singleton by @lobsterkatie in #110384
  • Change custom fingerprint helper to return entire description by @lobsterkatie in #110380
  • Move GroupingContext to new module by @lobsterkatie in #110373
  • Small normalization and parameterization refactors by @lobsterkatie in #110014
  • Add fingerprinting test input for title parameterization by @lobsterkatie in #109886
  • Add git SHA parameterization by @lobsterkatie in #109753
  • Expand hex parameterization to include numbers with 9-15 digits by @lobsterkatie in #109751
  • Remove grouphash cache expiry options by @cvxluo in #109677
  • Expand datetime message parameterization by @lobsterkatie in #109706
  • Clarify and add to xfail parameterization tests by @lobsterkatie in #109693
  • Small parameterization refactor by @lobsterkatie in #109690

Hc

  • Adds skill for outbox development and debugging by @GabeVillalobos in #108626
  • Adds skill for general hybrid cloud testing by @GabeVillalobos in #108622

Insights

  • Replace useRouter with specific hooks in webVitals pageOverview by @evanpurkhiser in #110118
  • Replace useRouter with specific hooks in screenLoadSpansPage by @evanpurkhiser in #110120
  • Replace useRouter with specific hooks in screenSummaryPage by @evanpurkhiser in #110121
  • Remove unused dashboard migration feature flags by @DominikB2014 in #110044
  • Consolidate platformized hooks into useHasPlatformizedInsights by @DominikB2014 in #109967

Issues

Llm Detected Issues

  • Use new llm detected issue type by @shayna-ch in #109144
  • Create new issue type for llm detected issues by @shayna-ch in #109138

Logs

Models

Nav

Objectstore

  • Remove objectstore.force-stored-symbolication flag by @jan-auer in #109660
  • Pass through compressed bytes when client accepts encoding by @jan-auer in #109571

Occurrences On Eap

Onboarding

  • Replace useRouter with specific hooks in platformOptionDropdown by @evanpurkhiser in #110108
  • Replace useRouter with specific hooks in platformDocHeader by @evanpurkhiser in #110128
  • Replace inline AI rules with sentry-for-ai skill prompts by @HazAT in #109647
  • Update tanstack start vite plugin to subpath export by @nicohrubec in #107672

Ownership

Performance

  • Replace useRouter with specific hooks in durationChart by @evanpurkhiser in #110123
  • Replace browserHistory with useNavigate in trends chart by @evanpurkhiser in #110011
  • Replace browserHistory with useNavigate in eventsTable by @evanpurkhiser in #110008
  • Replace browserHistory with useNavigate in tagExplorer by @evanpurkhiser in #110012
  • Replace browserHistory with useNavigate in tagValueTable by @evanpurkhiser in #110009
  • Replace browserHistory with useNavigate in onboarding by @evanpurkhiser in #110017
  • Replace browserHistory with useNavigate in traceWaterfall by @evanpurkhiser in #109978
  • Replace browserHistory with useNavigate in metricsEnhancedSetting by @evanpurkhiser in #109991
  • Convert TransactionThresholdModal from class to function component by @JoshuaKGoldberg in #109574
  • Convert TransactionThresholdButton from class to function component by @JoshuaKGoldberg in #109567
  • Convert OperationSort from class to function component by @JoshuaKGoldberg in #109331
  • Convert TeamKeyTransactionsManager from class to function component by @JoshuaKGoldberg in #109591
  • Convert Table from class to function component by @JoshuaKGoldberg in #109578
  • Convert TagExplorer from class to functional component by @mjq in #109298

Preprod

Profiling

  • Replace useRouter with specific hooks in landingWidgetSelector by @evanpurkhiser in #110125
  • Replace browserHistory with useNavigate in functionTrendsWidget by @evanpurkhiser in #109980
  • Replace browserHistory with useNavigate in flamegraphQueryParamSync by @evanpurkhiser in #109981
  • Replace browserHistory with useNavigate in content by @evanpurkhiser in #109990
  • Replace browserHistory with useNavigate in slowestFunctionsWidget by @evanpurkhiser in #109987
  • Replace browserHistory with useNavigate in profileSummary by @evanpurkhiser in #109982

Relay

  • Update project config snapshot for health-check glob by @oioki in #110408
  • Remove metrics extraction integration test by @phacops in #109613
  • Migrate ingestThroughTrustedRelaysOnly to AutoSaveField by @JonasBa in #108761
  • Add rollout option for eap accepted span outcomes by @tobias-wilfert in #109078

Releases

  • Replace useRouter with specific hooks in releases detail overview by @evanpurkhiser in #110129
  • Replace browserHistory with useNavigate in releases overview by @evanpurkhiser in #109983
  • Replace browserHistory with useNavigate in preprodBuilds by @evanpurkhiser in #109984

Replays

  • Remove granular-replay-permissions flag registration by @priscilawebdev in #110397
  • Clean up granular-replay-permissions feature flag (backend) by @priscilawebdev in #110036
  • Clean up granular-replay-permissions flag (frontend) by @priscilawebdev in #110037
  • Migrate projectReplays settings to AutoSaveField by @JonasBa in #109364
  • Migrate replay network/errors virtualization to tanstack virtual by @scttcper in #108190

Repos

  • Refactor Settings > Seer > Repos to use virtual rendering by @ryan953 in #108798
  • Refactor useOrganizationRepositoriesWithSettings to use apiOptions & useInfiniteQuery by @ryan953 in #108295

Seer

  • Remove unused SeerOrganizationSettings model and mark table for pending deletion by @srest2021 in #110656
  • Add random 50% rollout for context engine in start_run by @Mihir-Mavalankar in #110574
  • Trim whitespace from ASCII snapshot to reduce token usage by @Mihir-Mavalankar in #110273
  • Rename useAgentHooks to seerAgentHooks by @ryan953 in #110188
  • Propagate viewer_context to background tasks and utilities by @azulus in #109724
  • Propagate viewer_context to Seer endpoint call sites by @azulus in #109723
  • Propagate viewer_context to autofix Seer call sites by @azulus in #109722
  • Propagate viewer_context to LLM detection and event manager by @azulus in #109721
  • Propagate viewer_context to code review Seer call sites by @azulus in #109717
  • Propagate viewer_context to explorer Seer call sites by @azulus in #109716
  • Propagate viewer_context to feedback Seer call sites by @azulus in #109714
  • Propagate viewer_context to anomaly detection Seer call sites by @azulus in #109720
  • Propagate viewer_context to breakpoints Seer call sites by @azulus in #109718
  • Propagate viewer_context to similarity Seer call sites by @azulus in #109719
  • Propagate viewer_context to replays Seer call sites by @azulus in #109715
  • Add viewer_context passthrough to all Seer API wrappers by @azulus in #109697
  • Add typed wrappers for remaining Seer API callsites by @azulus in #109607
  • Add typed wrappers for Seer API callsites by @azulus in #109589
  • Batch size modifiable and retry on rate limit by @shruthilayaj in #109568
  • Extract typed severity score request function by @azulus in #109507
  • Refactor explorer service map query and instrumentation by @shruthilayaj in #109322
  • Refactor useCodingAgentIntegrations to be based on apiOptions instead by @ryan953 in #109290
  • Migrate remaining seer calls to urllib3 connection pools by @azulus in #109263
  • Migrate seer endpoints to urllib3 connection pools by @azulus in #109254
  • Migrate explorer to urllib3 connection pools by @azulus in #109224
  • Migrate autofix and summarization to make_signed_seer_api_request by @azulus in #109205
  • Remove unused allowBackgroundAgentDelegation org option - be by @ryan953 in #109083

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.