New Features ✨
Components
- Add split panel by @natemoo-re in #128834
- Add menu by @natemoo-re in #128833
- Add spinner by @natemoo-re in #128817
Conversations
- Show extraction spans like decision spans by @ArthurKnaus and @cleptric in #128989
- Merge decision span tabs into one by @ArthurKnaus in #128985
Dashboards
- Resolve prebuilt dashboard configs through a flag-aware helper by @edwardgou-sentry in #128923
- Persist widget query transformations by @nsdeschenes in #127565
- Add flag for web vitals dashboards on trace metrics by @edwardgou-sentry in #128921
- Add a low-priority query control by @wmak and @cursoragent in #128953
Explore
- Persist transformations in saved queries by @nsdeschenes in #128806
- Remove compare links and refine trace query controls by @nsdeschenes in #128752
Inbox
- Add item and event type registries by @cvxluo and @codex in #129050
- Add InboxItem and InboxItemEvent models by @malwilley in #128925
Integrations
- Add delete button to custom integration details page by @dcramer with @sentry-junior in #129048
- Instrument commit issue resolution by @giovanni-guidini in #128757
Investigations
- Add XOR actor references by @Zylphrex in #129024
- Draw the status block as a thinking block with the agent's reasoning by @billyvg and @claude in #128436
- Outline an investigation by its headings by @billyvg in #128465
Issues
- Fetch issue tag values through TanStack Query by @scttcper and @claude in #128957
- Make comment mutations independent of GAL rows by @shashjar in #128087
Other
- (action-log) Backfill FIRST_SEEN during derived data regen by @kcons with @sentry-junior in #127279
- (admin) Add Clear Pending Pay-as-you-go customer action by @noahsmartin in #128980
- (ai-monitoring) Add runtime selector for Pi Durable onboarding by @cleptric in #128344
- (api) Add an endpoint owner map that resolves inherited owners by @akhilp117 in #129026
- (auth) Add deprecated scope translation layer by @DominikB2014 in #128663
- (formulas) Add suggested values to formula params by @k-fish in #129000
- (middleware) Report requests that grow worker RSS by a lot by @mwarkentin and @claude in #129053
- (native) Add project option to apply source server info by @mujacica in #128692
- (onboarding) Use @sentry/agent-plugin in tracing and logs empty states by @bcoe with @sentry-junior in #129059
- (preprod) Add mark-as-viewed for snapshot review by @mtopo27 and @claude with @sentry-junior in #127259
- (repository) Add canonical reference resolver by @giovanni-guidini in #128993
- (scraps) Add rule against component and DOM selectors by @TkDodo in #128234
- (seer) Add a get_commit_author RPC for Seer Agent PRs by @joseph-sentry with @sentry-junior in #128776
- (seer-explorer) Add /investigate command by @billyvg in #128928
- (settings) Add scope navigation rail by @priscilawebdev with @sentry-junior in #128341
Bug Fixes 🐛
Hybridcloud
- Catch invalid RPC circuit breaker config by @valencitas and @claude in #128938
- Run RPCs without a ViewerContext the receiver can't parse by @gricha in #128970
Investigations
- Drop DOM-coupled selectors from text block layout by @billyvg with @sentry-junior and @getsantry in #129001
- Line up text block embeds with query block cards by @billyvg with @sentry-junior in #128892
- Close off a query table when prose follows it by @billyvg and @claude in #128547
Other
- (backup) Make relocation dependency scope invariants actually assert by @skaasten with @sentry-junior in #128896
- (dashboards) Tell the generate agent to scope named projects via the projects field by @skaasten with @sentry-junior in #129020
- (drawer) Cover docked Seer and respect page banners by @priscilawebdev and @billyvg with @sentry-junior in #128984
- (dropdown) Close submenus with Escape and Left Arrow by @priscilawebdev in #128987
- (issues) Type tag values as nullable by @scttcper and @claude in #128948
- (lint) Use scraps primitives in makeLazyloadComponent spec by @scttcper with @sentry-junior in #129072
- (objectstore) Only proxy object requests for registered usecases by @jan-auer with @sentry-junior in #128920
- (replay) Don't build a Replayer for loading or empty replays by @gggritso with @sentry-junior in #128811
- (routes) Stop remounting lazy routes on first re-render after load by @DominikB2014 in #126635
- (scm) Pick the code-mapping integration by its matching repository by @vaind in #128328
- (seer) Resolve GitLab repositories by stable identity by @giovanni-guidini in #128994
- (workflows) Validate unregistered action types by @kcons in #129049
Documentation 📚
- (discover) Document events and Discover endpoints by @DominikB2014 with @sentry-junior in #128036
Internal Changes 🔧
Aci
- Drop the retired
Incidenttable by @shashjar in #128387 - Retire the remaining
Incidentmodel definition by @shashjar in #128399 - Consolidate detector handler tests around the new lifecycle by @saponifi3d in #127135
Alerts
- Move
AlertRuleTriggerto pending deletion by @shashjar in #128602 - Move
AlertRuleTriggerActionto pending deletion by @shashjar in #128601
Flags
- Remove
organizations:tracemetrics-units-uiregistration by @cursoragent, @cvxluo and @nsdeschenes with @cursor and @sentry-junior in #126379 - Remove
organizations:tracemetrics-stats-bytes-uiregistration by @cursoragent, @cvxluo and @nsdeschenes with @cursor in #126429 - Remove
organizations:tracemetrics-stats-bytes-ui(frontend) by @cursoragent, @cvxluo and @nsdeschenes with @cursor in #126428 - Remove
organizations:tracemetrics-units-uifrontend reads by @cursoragent, @cvxluo and @nsdeschenes with @cursor in #126378 - Collapse organizations:gen-ai-conversation-title-generation reads by @cursoragent and @cvxluo with @cursor in #128942
Seer
- Remove request wrappers for deleted Seer endpoints by @azulus and @claude with @sentry-junior in #128975
- Remove the GHE integration config from the org seer-rpc registry by @azulus and @claude in #129030
- Remove the seer-gitlab-support feature flag registration by @joseph-sentry with @sentry-junior in #127632
- Read the retired code mode "on" override as "only" by @azulus and @claude in #128836
- Remove the /code-mode-on command from Seer Explorer by @azulus in #128838
- Remove seer-gitlab-support checks from the frontend by @sentry-junior in #127626
- Replace GitLab webhook debug_log with plain logger calls by @joseph-sentry with @sentry-junior in #127625
- Remove seer-gitlab-support gating from GitLab code review webhooks by @joseph-sentry with @sentry-junior in #127624
Other
- (✂️) Update knip by @TkDodo in #128358
- (api) Extract shared transformation pipeline parsing by @nsdeschenes in #128883
- (apidocs) Add structured output for the API input lint rules by @akhilp117 in #128815
- (auth) Simplify dashboard scopes to read and write by @DominikB2014 in #129012
- (dashboards) Label query priority as Normal and Faster by @wmak and @cursoragent in #129051
- (deps) Bump rrweb dependencies to 2.45.0 by @Lms24 in #128986
- (grouping) Add and update Unity grouping test inputs by @lobsterkatie in #129052
- (integrations) Normalize SCM provider metric values by @giovanni-guidini in #128889
- (issues) Drop removed
post-updateoption from comment commit test by @shashjar in #129031 - (preprod) Build size analysis detector on DetectorHandler evaluation by @saponifi3d in #127134
- (runner) Pause GC during boot and freeze the boot heap by @mwarkentin and @claude in #127145
- (scraps) Extract toast provider and API by @TkDodo in #129033
- (settings) Offer read and write levels for dashboard tokens by @DominikB2014 in #129013
- (timeseries) Add more instrumentation by @wmak in #128996
- Bump sentry-protos to 0.97.0 by @getsentry-bot with @sentry-release-bot and @sentry-junior in #129075
- Bump sentry-conventions to 0.30.0 by @getsentry-bot and @msonnb with @sentry-release-bot in #129006
- Bump sentry-protos to 0.96.0 by @getsentry-bot with @sentry-release-bot and @sentry-junior in #128976
Other
- chore(provisioning) Remove non-outbox based analytics creation by @markstory in #128997
- dep: upgrade granian to 2.8.6 by @gi0baro in #129021
- o11y(slack-investigation): Send start refusal counts to Sentry too by @alexsohn1126 in #129002
- o11y(slack-investigation): Count why investigations can't start by @alexsohn1126 in #128998
- chore(db) Make new_repository_id not null and add indexes by @markstory in #128548
- revert: Stop producing the unknown actor type (#128931) by @gricha in #128979