This release includes breaking changes for platform teams planning a safe upgrade.
Published 11d
Error & Performance Tracking
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
apm
crash-reporting
crash-reports
csp-report
devops
django
+8 more
error-logging
error-monitoring
fair-source
monitor
monitoring
python
sentry
tag-production
Affected surfaces
auth
Summary
AI summaryBroad release touches Other, Seer, Conversations, and Issues.
Full changelog
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_headersfield 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-sidebarfeature flag by @TkDodo in #117791 - Register
seer-explorer-thinking-summaryfeature flag by @natemoo-re in #117688 - Pass
enable_tool_summaryto 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
McpIdentityProviderfor 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
OrganizationIdentitymodel 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
TopicEnum by @george-sentry in #119150 - Add taskworker-process-segments to Topic enum by @lvthanh03 in #119061
- Add
taskworker-launchpad-pushto 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-concurrencyFlag 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
SafeRolloutComparatorby @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_headersfield 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_activityby @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
timestampcolumn in Explore by @mjq in #118949 - Preserve page filters when opening an issue from a widget by @DominikB2014 in #118683
- Consider
errorfor 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
eventsrequest 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
SubmitButtonby @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.pyto 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_errorshould also considererrorby @mjq in #118476- Write span
statusfield 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
- Escape syntax-like span attribute filters by @constantinius in #119210
- Keep vital indicator line and label visible at timeline edges by @buenaflor in #118752
- Use primary alias for description by @wmak in #119011
- Expose slow/frozen frames rate vitals for EAP traces by @buenaflor in #118446
- Open Span JSON link in a new tab by @cleptric in #118219
- Expose V2 mobile app vitals for EAP traces by @nsdeschenes in #118238
- Include new web vital attributes by @nsdeschenes in #117910
Trace Waterfall
- Handle V2 mobile app vitals for EAP traces by @nsdeschenes in #118239
- Use new web vitals by @nsdeschenes in #118035
Tracemetrics
- Allow clearing equation to trigger update by @narsaynorath in #118919
- Store label format of equation so duplicates aren't clobbered by @narsaynorath in #118367
- Limit adding series in widget builder to max amount by @narsaynorath in #118156
- Disable equation field if loading metrics by @narsaynorath in #118155
- Filter out and disable rate aggregates in equations by @narsaynorath in #118045
- Literals in equations delete incorrect item by @narsaynorath in #117926
- Use portal to prevent clipping of dropdown menus by @narsaynorath in #117922
Traces
- Encode linked logs filter + row state in the URL by @JoshuaKGoldberg in #118831
- Reserve min-width for interactive object Pretty/Raw control by @ArthurKnaus in #119097
- Preserve autogroup segment bounds by @nsdeschenes in #118164
Ui
- Paint SplitPanel divider accent above pane content by @priscilawebdev in #119383
- Pin GridEditable header height in Safari on back-nav by @priscilawebdev in #119490
- Ignore 1Password in overlay search inputs by @scttcper in #119172
- Resize autosize textarea on container width changes by @TkDodo in #118855
- Give the main scrollbar on the html element secondary background color by @TkDodo in #118435
Validate
- Check attributes in query even during error by @wmak in #118018
- Make the default behaviour better by @wmak in #117962
Vercel
- Upsert env vars one target at a time to avoid ENV_CONFLICT by @Christinarlong in #118490
- It seems like we need v10 for vercel to upsert env vars by @Christinarlong in #118314
- Use upsert to set env vars when linking projects by @Christinarlong in #118207
- Redirect sentry.dev root to sentry.io by @ryan953 in #118076
- Preserve the next param through the install pipeline by @evanpurkhiser in #117855
Other
- (admin) Migrate adminRelays DELETE to async/await by @sentry in #118264
- (agent-insights) Stop trace.rendered analytics from firing twice by @obostjancic in #118541
- (agents) Keep timeline row selection visible on hover by @ArthurKnaus in #119204
- (analytics) Use the same DEBUG_ANALYTICS localstorage key in prod & dev by @ryan953 in #118373
- (api) Scope clientSecret visibility to app owner in serializer by @michelletran-sentry in #118369
- (apigateway) Preserve Content-Encoding when proxying snapshot create by @NicoHinderling in #118327
- (apigw) Update issue events route, add missing routes by @gi0baro in #118832
- (attachments) Disable preview for large text/JSON attachments by @JoshuaMoelans in #116963
- (attribute-breakdowns) Store breakdown pagination in URL by @nsdeschenes in #118233
- (automations) Allow value of 0 for frequency conditions by @souredoutlook in #118128
- (backpressure) Remove unhealthy service log by @shellmayr in #119514
- (billing) Fix billing status overlay button spacing by @cvxluo in #117867
- (charts) Preserve ECharts zoom state by @scttcper in #119237
- (ci) Fix failing
test-toolsaction by updating hardcoded YAML by @kenzoengineer in #118670 - (cmd-k) Make settings field helpText searchable in command palette by @TkDodo in #118557
- (commandPalette) Prevent useOrganization from throwing without org context by @sentry in #119362
- (configoptions) Change from YAML parsing to JSON parsing to fix float parsing issue by @kenzoengineer in #118492
- (consumers) Propagate tags to all threads by @bmckerry in #119550
- (cursor) Validate pr_url and extract branch_name from statusChange webhook by @giovanni-guidini in #117682
- (data_export) Scope export detail lookup to the requesting user by @manessaraj in #119635
- (data_forwarding) Safely convert request headers to dict by @sentry in #118124
- (dev) Symbolicator mode now depends on objectstore by @Dav1dde in #118783
- (ecosystem) Add select_related to slack activity notification task by @scttcper in #118856
- (equations) Handle count_unique by @wmak in #117714
- (errors) Add conditional Ask Seer prop by @nsdeschenes in #117789
- (formatters) Add trillion suffix to abbreviated number formatting by @skaasten in #119715
- (forms) Resolve no-callback-api-request lint error in doApiRequest by @sentry in #117727
- (frontend-tsc) Convert PermissionsObserver to functional component by @sentry in #118480
- (gitlab) Cap org IDs in webhook debug log attribute by @billyvg in #118097
- (grouping) Reject Seer matches with mismatched exception types by @yuvmen in #118202
- (groups) Normalize string
assignedTovalue before optimistic bulk update by @shashjar in #119588 - (issue details) Send time range params for specific event IDs in prev/next navigation by @shashjar in #118246
- (issue-search) Prevent overflow crash in recommended_v2 sort by @roggenkemper in #118277
- (issue-stream) Dismiss the Recommended sort badge after a sort is chosen by @roggenkemper in #119537
- (issue-views) Stop view sort changes from overwriting the feed sort by @roggenkemper in #119415
- (listBox) Fix virtualized scrolling when mouse is used by @TkDodo in #118380
- (mcp) Add mcp referrer by @wmak in #118167
- (metric-monitors) Anchor non-percentage chart y-axis at zero by @malwilley in #118384
- (middleware) Guard request.auth access in is_frontend_request by @sentry in #117966
- (mobile-vitals) Include app.start in cold/warm start transaction.op conditions by @buenaflor in #118436
- (msteams) Treat ApiUnauthorized (401) as a configuration halt, not a failure by @billyvg in #119510
- (nav) Keep mobile menu open when switching organizations by @natemoo-re in #117683
- (nav-tour) Navigate to Sentry Built dashboards in step 4 by @ale-cota in #118342
- (organizationMembers) Convert OrganizationMemberRow to function component by @sentry in #118477
- (overlay) Recalculate controlled overlay position on open by @TkDodo in #119611
- (page-frame) Standardize spacings by @TkDodo in #118451
- (pagefilters) Clamp old absolute date changes by @nsdeschenes in #118720
- (plugins) Block deprecated plugins from test-fire notifications by @Christinarlong in #118257
- (preprocessing) Handle malformed URLs and missing raw frame keys by @Christinarlong in #117816
- (processing-errors) Drop null entries from event errors by @cvxluo in #118312
- (producer) Register SingletonProducer shutdown eagerly by @untitaker in #118650
- (profiling) Detect android trace chunks by version and structure by @markushi in #119604
- (project) Skip optimistic update on project slug change by @TkDodo in #118822
- (project-settings) Migrate release token regeneration to async/await by @sentry in #118267
- (projectKeys) Migrate KeyStats to useApiQuery by @sentry in #117757
- (projectReleaseTracking) Migrate release token regeneration to useMutation by @sentry in #118270
- (query-builder) Move logging out of loop by @nsdeschenes in #118086
- (query-client) Stop retrying on 400s by @nsdeschenes in #117928
- (quotas) Add repr for quota config by @volokluev in #118601
- (redis) Fix handling of boolean values by @lobsterkatie in #117931
- (relay) Flush the organization options local cache for project recomputation by @klochek in #117602
- (reprocessing) Check for stale reprocessing by @tobias-wilfert in #118626
- (resultGrid) Migrate api.request to api.requestPromise by @sentry in #118265
- (scim) Add scimType and status to SCIM error responses by @Asynchronite in #117870
- (scm) Update error handling in project webhook task by @GabeVillalobos in #118248
- (scm-sync) Skip repo sync creation for repos scheduled for deletion by @bruno-garcia in #119332
- (sdk) Inherit parent sampling decision instead of overriding it by @Lms24 in #118736
- (serviceWorker) Gracefully handle SecurityError in sandboxed iframes by @sentry in #119170
- (slack) Ensure Slack user is member of org for Seer actions by @ceorourke in #118877
- (snapshots) Use sun icon for light/dark preview toggle by @NicoHinderling in #119120
- (spike-protection) Keep toggle value after save on project settings by @TkDodo in #118459
- (split-panel) Restore horizontal divider hit area by @TkDodo in #119623
- (splitPanel) Clamp the sized pane to its min size by @TkDodo in #118338
- (stories) Use default variant for Default button example in button.mdx by @ryan953 in #119347
- (tab) Observe the root tabs component when calculating overflowMenu by @TkDodo in #118546
- (taskworker) Add the ability to send canary tasks from taskbroker_send_tasks by @evanh in #119224
- (teamProjects) Migrate api.request to useMutation by @sentry in #118038
- (tempest) Align frontend permissions to backend checks by @mujacica in #118540
- (tests) Always run control silo URL tests by @kenzoengineer in #117862
- (textAreaAutoSize) Turn off the react compiler by @TkDodo in #119618
- (theme) Strip stale body theme class on cmd-k theme switch by @TkDodo in #118432
- (trace-item-stats) Resolve issue with pagination by @nsdeschenes in #118039
- (trace-view) Show App Start Cold/Warm vitals for app.start transactions by @buenaflor in #118438
- (uptime) Use safe HTTP for robots.txt fetch in autodetect by @michelletran-sentry in #118358
- (useResizableDrawer) Don't rely on stable options by @TkDodo in #118092
- (weekly-report) Prevent recording delivery on dry runs by @amy-chen23 in #118249
- (weekly-reports) Cache event counts after successfully sending emails by @amy-chen23 in #118309
- (workflow) Speed up workflow group history count query by @Christinarlong in #118323
- (workflow-engine) Require DataConditionGroup IDs to be ints by @kcons in #117887
- Seer header responsiveness by @TkDodo in #118924
- Forward query string verbatim in Objectstore proxy and API gateways by @lcian in #119512
- Enable ce for all orgs by @shruthilayaj in #119014
- Use a global h1 for title slot by @TkDodo in #118014
Documentation 📚
Scraps
- Point Flex column direction to Stack by @priscilawebdev in #119599
- [StatusIndicator] add non-animated usage subsection by @JoshuaKGoldberg in #118599
Other
- (api) Add download query parameter to attachment details OpenAPI schema by @jan-auer in #119105
- (cells) Update skill with better directions to run cell routing mode by @lynnagara in #118079
- (explore) Add replays and ai_conversations to dataset help text by @vgrozdanic in #118810
- (laravel) Add AI agent monitoring onboarding by @constantinius in #118363
- (metrics) Document metric tag conventions by @shellmayr in #117787
- (preprod) Clarify diff snapshots omit top-level images array by @NicoHinderling in #118198
- (seer) Update GitLab MR limitation comment by @billyvg in #117831
- Add tracing wrapper guidance to backend AGENTS.md by @cleptric in #118781
Internal Changes 🔧
Action Log
- Deduplicate pull request closed action by @malwilley in #119367
- Add test helper to assert action log publishing by @kcons in #119271
Ai Search
- Gate issue list AI search on gen-ai-issues-search flag by @aliu39 in #118425
- Add gen-ai-issues-search feature flag by @aliu39 in #118424
Alerts
- Add rendering support for resolution activities by @leeandher in #119259
- Increase legacy alerts API brownouts by @ceorourke in #118680
- Dont use legacy alerts endpoint in metric issue details by @ceorourke in #117482
- Batch detector fetches on Alerts list by @shashjar in #116798
Api
- Type group reprocessing status details info by @cvxluo in #119684
- Tighten trace endpoint response types by @cvxluo in #118955
- Tighten event serializer response types by @cvxluo in #119351
- Type event/group event-type as a Literal by @cvxluo in #119350
- Type group level as a Literal by @cvxluo in #118758
- Type event serializer occurrence by @cvxluo in #118926
- Type event serializer groupingConfig by @cvxluo in #118786
- Type group response fields as literals by @cvxluo in #118668
- Promote Telemetry Experience release endpoints to spectacular public docs (sentry-api-schema#76) by @betegon in #118005
- Reassign release endpoints from TELEMETRY_EXPERIENCE/UNOWNED to COMMUNITY by @vgrozdanic in #118339
- Use token operationIds + summary for preprod/monitors/sentry_apps/notifications/seer/feedback endpoints by @betegon in #117403
- Use token operationIds + summary for issues/integrations/releases/workflow endpoints by @betegon in #117339
- Use token operationIds + summary for core + api endpoints by @betegon in #117337
- Add control silo URL patterns for monitoring provider API endpoints by @shashjar in #117851
Apigw
- Catch more network errors on proxied requests by @gi0baro in #118729
- Prevent netloc mismatch on proxied requests by @gi0baro in #118640
- Review routes, add tests, readme by @gi0baro in #117313
Ask Seer
- Register UX Rework Flag by @nsdeschenes in #119645
- Add default to ask seer feature flag by @nsdeschenes in #118721
Autofix
- One more quick ref before adding check suite handling by @joseph-sentry in #119520
- Move pr iteration functionality around by @joseph-sentry in #119299
- Remove checkWriteAccess from useAutofixSetup by @Zylphrex in #118667
- Remove checkWriteAccess from useAutofixSetup by @Zylphrex in #118665
- Add rendering for PR Iteration activities by @joseph-sentry in #118408
Billing
- Bump sentry-protos to 0.43.3 by @armcknight in #119594
- Bump sentry-protos to 0.43.0 by @skonves in #119358
- Bump sentry-protos to 0.42.0 by @armcknight in #119178
- Add quota_config_mapping for proto/sentry QuotaConfig conversion by @volokluev in #119133
- Bump sentry-protos to 0.41.0 by @armcknight in #119143
- Remove dead overage-warning banner code by @noahsmartin in #118977
- Derive checkout categories on the frontend by @noahsmartin in #118785
- Added snapshot tests for billing details widget(REVENG-245) by @krithikravi in #118260
- Bumped sentry-protos version to 0.31.2 by @krithikravi in #117842
Billing Platform
- Bump sentry-protos 0.44.2 by @brendanhsentry in #119730
- Bump sentry-protos 0.44.1 by @brendanhsentry in #119644
- Bump sentry-protos 0.37.1 by @brendanhsentry in #118773
Cells
- Drop category filter from get_cells / get_cell_name by @lynnagara in #118070
- Updates error-embed URL to point to control by default by @GabeVillalobos in #118056
- Remove unused find_all_multitenant_cell_names function by @lynnagara in #117875
- Deprecate cells category by @lynnagara in #117844
- Remove
categoryfrom CellConfig by @lynnagara in #117558
Codeowners
- Add dashboards as owner of static/app/utils/dashboards by @DominikB2014 in #118686
- Change the owner of attachments endpoint by @olksdr in #117665
Control
- Remove control callees for Team replication by @strongs in #119647
- Actually DROP ExternalActorReplica by @strongs in #119533
- Pending deletion for dead ExternalActorReplica table by @strongs in #119532
This changelog has been truncated. See the full changelog for all changes.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Beta — feedback welcome: [email protected]