Sentry 26.7.0

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

View original

Upgraded? How did it go?

Discussion