Announcement26.2.1
Sentry 26.2.1
Sentry 26.2.1 releases new features across autofix, command palette, code review, coding agents, dashboards, and more. Includes bug fixes for API security validations, dashboard queries, issue handling, and workflow stability.
New Features ✨
Autofix
- Add modal for GitHub Copilot license required by @JoshFerge in #108783
- Support explorer autofix steps in slack operator by @Zylphrex in #108569
- Add seer-slack-workflows-explorer flag by @Zylphrex in #108572
- Trigger process autofix updates in explorer autofix by @Zylphrex in #108389
Cmd K
- Add DSN lookup to both command palettes by @sergical in #108401
- Add DSN lookup API endpoint by @sergical in #108400
Code Review
- Set Sentry tags & context by @armenzg in #108435
- Add CodeReviewEvent model and migration [internal] by @vaind in #108531
- Allow bots to get PR reviews by @srest2021 in #108291
Coding Agents
- Detect GitHub App 403 permission errors and return structured failure_type by @JoshFerge in #108451
- Show GitHub App permissions modal on 403 errors by @JoshFerge in #108452
Dashboards
- Register text widget flag by @nikkikapadia in #108500
- Add chart-legend-component feature flag by @gggritso in #108370
Flags
- Remove disabled unlimited-auto-triggered-autofix-runs flag by @wedamija in #108724
- Remove 2 dead-except-tests flags (batch 13) by @wedamija in #108707
- Remove 5 dead/dead-except-tests flags (batch 12) by @wedamija in #108706
Forms
- Migrate account emails form to new form system by @JonasBa in #108384
- Rewrite password form using new form system by @JonasBa in #108380
Preprod
- Snapshots frontend v1 by @rbro112 in #108278
- Set up snapshot get API by @rbro112 in #108199
- Add Size Analysis detector by @chromy in #108208
- Add upload-options endpoint for snapshot uploads by @lcian in #108312
- Add artifact-type filtering controls to status rule UI by @cameroncooke in #108313
- Add artifact-type filtering to size status checks by @cameroncooke in #108311
Spans Buffer
- Split SUNIONSTORE timing and use stage tags for metrics by @untitaker in #108468
- Add more flusher documentation by @lvthanh03 in #108029
Uptime
- Add AI assertion suggestions frontend by @jaydgoss in #108378
- Add AI-powered assertion suggestions backend by @jaydgoss in #108382
Other
- (aci) Add CacheMapping helper by @kcons in #107821
- (auth) Add structured logging for AuthIdentity updates and deletes by @michelletran-sentry in #108688
- (billing) Allow frontend to set category retention to null by @vbro in #105462
- (cells) Introduce locality concept in configuration by @lynnagara in #108410
- (explore) Add analytics tracking to FloatingTrigger actions by @JonasBa in #108532
- (github) Add get_check_run method to GitHub client by @armenzg in #108434
- (gsAdmin) Add product trial extension support by @mrduncan in #108298
- (hybridFilter) Add shift-click range selection by @JonasBa in #108367
- (identity) Encrypt Identity.data field with EncryptedJSONField by @vgrozdanic in #108429
- (infra) Update test shuffling to shuffle across shards by @rbro112 in #108319
- (issues) Add engaged view tracking by @mrduncan in #107912
- (monitors-tables) Removing hardcoded column widths by @Abdkhan14 in #108234
- (parseJsonWithFix) Add tests by @priscilawebdev in #108303
- (profiling) More examples on slowest functions widget by @Zylphrex in #108739
- (relay) Remove
replay.relay-snuba-publishing-disabled.sample-rateby @tobias-wilfert in #108110 - (replay) Remove feature flag for new replay processing pipeline by @tobias-wilfert in #107474
- (repos) Add the X-Hits response header to /api/0/organizations/$org/repos/ by @ryan953 in #108388
- (sdk) Add configurable S4S transaction sampling by @JoshFerge in #108097
- (security) Add sentry-security skill synthesized from vulnerability history by @dcramer in #108433
- (seer) Add seer-agent-pr-consolidation feature flag by @JoshFerge in #108751
- (seer-explorer) Enable copy button without completed status, fall back to status string when no blocks by @aliu39 in #108743
- (settings) Migrate dynamic sampling from react-virtualized to tanstack by @scttcper in #108277
- (spans) Add FlusherLogger to track top flush operations by bytes by @lvthanh03 in #108266
- (uptime-traces) Linking uptime issues to check-ins in traces by @Abdkhan14 in #108464
- (webhooks) Log slow forwarding & more context by @armenzg in #108220
- (workflow-engine) Track tainted workflow evaluations by @kcons in #107311
- Add dotagents skill management and expand warden by @dcramer in #108695
Bug Fixes 🐛
Api
- Require project:write for transaction threshold override mutations by @dcramer in #108470
- Prevent IDOR in release threshold status via unvalidated project slugs by @dcramer in #108467
- Add org membership check to onboarding continuation email endpoint by @dcramer in #108474
- Validate linked dashboard org membership in field links by @dcramer in #108471
- Validate scope_list in ApiKey serializer by @dcramer in #108475
- Use parameterized query for shared_domain in missing org members by @dcramer in #108469
- Check token expiration in OAuth userinfo endpoint by @dcramer in #108465
- Scope member invite lookups to organization by @dcramer in #108463
Codeowners
- Add trailing slashes to directory patterns for recursive matching by @NicoHinderling in #108487
- Add trailing slashes to preprod directory rules by @NicoHinderling in #108485
Dashboards
- Put user_misery in equation by @nikkikapadia in #108716
- Use spans dataset in default overview dashboard backend by @nikkikapadia in #108682
Issues
- Remove broken scope tag by @kcons in #108450
- Handle None from event serialization in wrap_event_response by @mrduncan in #108508
- Downgrade assignee validation error to warning in occurrence consumer by @mrduncan in #108511
- Raise DoesNotExist for group IDs exceeding field max value by @mrduncan in #108489
- Fix a problem were
0may be rendered by @ryan953 in #108403
Seer
- Fix bad link construction by @ryan953 in #108442
- Rollback to the single Enable AI Code Review (beta) settings toggle for legacy orgs by @ryan953 in #108383
Tests
- Fix flaky test_update_workflows_add_workflow ordering by @joshuarli in #108731
- Fix flaky test_issue_owners_should_ratelimit by @joshuarli in #108663
- Fix default action data by @ceorourke in #108505
- Use TestCase instead of TransactionTestCase by @mrduncan in #108427
Workflows
- Avoid doing an additional query just to tag the session with a count by @kcons in #108734
- Make workflow limit values options so we can tweak if necessary by @kcons in #108718
Other
- (aci) Switch organizations:more-workflows to a flagpole feature by @kcons in #108634
- (alerts) Verify OrganizationCombinedRuleIndexEndpoint sort key by @kcons in #108321
- (autofix) Check for access in process_autofix_updates by @leeandher in #108619
- (AutoSaveField) Make sure boolean fields can revert on error by @TkDodo in #108528
- (code-review) Fix the audit log for code review settings by @suejungshin in #107994
- (cross-events) Remove checking explicit buckets to resolve fails around UTC midnight by @nsdeschenes in #107773
- (csrf) Note that cookies must be enabled on the CSRF error page by @JoshFerge in #108481
- (cursor) Mark branchName and autoCreatePr as optional in CursorAgentResponseTarget by @JoshFerge in #108497
- (data-browsing) Sort
device.classby power rather than alphabetically by @gggritso in #108122 - (deletions) Remove unnecessary skip_models check in Group deletion by @kcons in #108448
- (devserver) Improve HMR and liveReload for reverse proxy by @dashed in #108661
- (devservices) Support OrbStack and Docker Desktop in addition to Colima by @HazAT in #108740
- (escalating) Convert Redis threshold to float before comparison by @mrduncan in #108476
- (explore) Deduplicate group by and visualize select options by @nsdeschenes in #108679
- (flags) Convert Unleash createdByUserId to str in _get_user by @kcons in #108578
- (form) Delay hash scroll by @natemoo-re in #108414
- (forms) Allow hash-based field focus by @natemoo-re in #108376
- (frameRegisters) Sort registers numerically instead of lexicographically by @mrduncan in #108426
- (hybridcloud) Fix test assertion by @kcons in #108478
- (idp) Use auth base template for IDP email verification pages by @JoshFerge in #108417
- (incidents) Add failure_count to EAP_FUNCTIONS by @kcons in #108495
- (issue search) Fix wildcard IN filter on array fields by @shashjar in #108502
- (occurrences) Blocklist span data out of event ingestion by @thetruecpaul in #108553
- (occurrences on eap) Set a recursion depth limit on attribute arrays & dicts by @shashjar in #108555
- (orgmembers) Deleting user race condition causes list to fail by @mikejihbe in #108420
- (releases) Paginate GitHub client compare_commits to avoid 250-commit limit by @srest2021 in #108550
- (reprocessing) Add select_for_update() to Group queries in finish_reprocessing by @vgrozdanic in #108342
- (rpc) Handle organization slug collision gracefully during slug update by @sentry in #107053
- (rules) Make WorkflowEngineRuleSerializer write owner properly by @kcons in #108509
- (scraps) FormField Search in new form system by @TkDodo in #108453
- (security) Delete recovery codes when last primary authenticator is removed by @wedamija in #108264
- (sentry-security) Improve severity classification for cross-flow enforcement by @dcramer in #108494
- (servicehooks) Make servicehook updating idempotent by @Christinarlong in #108415
- (similar-issues) Fix overflow in issue diff modal by @mrduncan in #108444
- (teams) Prevent contributors from downgrading org admins' team roles by @wedamija in #108288
- (tracemetrics) Pass unit properly from backend for tracemetrics by @narsaynorath in #108441
- (typing) Bring sentry.auth and sentry.auth_v2 into the mypy stronglist by @kcons in #108620
- (uptime) Defensive error handling in deletion cascade for billing seats by @dashed in #108554
- (uptime-trace) Enabling linking to timing nodes on re-load by @Abdkhan14 in #108689
- (userrole) Fix guaranteed-to-fail comparison by @kcons in #108466
- (warden) Add remote source for dotagents-managed skills by @dcramer in #108735
- (workflow_engine) Fix integration_id type mismatch in action translator by @kcons in #108462
- Remove unused type exports by @gggritso in #108538
Documentation 📚
- (api) Warn that SentryIsAuthenticated bypasses base class access controls by @JoshFerge in #108480
- Add feature flag and PR splitting guidance to AGENTS.md by @sergical in #108530
Internal Changes 🔧
Aci
- Add actions data to WorkflowEngineRuleSerializer by @ceorourke in #108419
- Remove all references of sentry_app_identifier by @ceorourke in #107991
Explorer
- Clamp rec event algo to 14d and fallback on error or timeout by @aliu39 in #108261
- Default to max stats period for log/metric details by @aliu39 in #108258
- Cleanup chat GET requests when runId=null by @aliu39 in #108293
Flags
- Remove 4 dead feature flags (batch 11) by @wedamija in #108615
- Remove 5 dead feature flags (batch 10) by @wedamija in #108613
- Remove 4 dead feature flags (batch 9) by @wedamija in #108610
- Remove 5 dead feature flags (batch 8) by @wedamija in #108609
- Remove 5 dead feature flags (batch 7) by @wedamija in #108608
- Remove 5 dead feature flags (batch 6) by @wedamija in #108607
- Remove 5 dead feature flags (batch 5) by @wedamija in #108605
- Remove 3 dead feature flags (batch 4) by @wedamija in #108560
- Remove 5 dead feature flags (batch 3) by @wedamija in #108559
- Remove 5 dead feature flags (batch 2) by @wedamija in #108557
- Remove 4 dead feature flags (batch 1) by @wedamija in #108556
- Remove 5 dead feature flags by @wedamija in #108507
Performance
- Rename otlp/ to eap/ and use consistent EAP naming by @mjq in #108385
- Remove performance-otel-friendly-ui feature flag by @mjq in #108369
Seer
- Remove doc links from legacy Seer settings page by @sfanahata in #108473
- Refactor explorer-chat/ url pattern to be simpler. by @ryan953 in #108391
Settings
- Migrate close account form to new form system API by @JonasBa in #108392
- Migrate account subscriptions to new form system by @JonasBa in #108387
- Make code behind grouptombstones-hit-counter the default by @priscilawebdev in #108301
Ui
- Remove GroupStore usage from StreamGroup by @malwilley in #108625
- Update conventions package by @nsdeschenes in #108524
Warden
- Disable sentry-javascript-bugs skill by @dcramer in #108756
- Vendor sentry-backend-bugs and sentry-javascript-bugs skills by @dcramer in #108746
- Add Django access review automation by @dcramer in #107652
Other
- (agent-monitoring) Add tag to cost warnings for ownership assignment by @shellmayr in #108522
- (apiOptions) Use apiFetch internally to avoid includeAllArgs by @ryan953 in #108728
- (core-ui) Detect and log duplicate option keys for CompactSelect by @nsdeschenes in #108680
- (dashboards) Update mobile vitals configs by @gggritso in #108537
- (explore) Update trace item attribute hooks to remove context by @nsdeschenes in #108019
- (forms) Support
ReactNodefor label and hintText by @natemoo-re in #108477 - (getApiUrl) Use getApiUrl in all the places and update types to require it by @ryan953 in #108096
- (github) Centralize GitHub API Accept header into shared constant by @leeandher in #108354
- (grouping) Clean up grouphash caching by @lobsterkatie in #108274
- (issues) Remove time-to-process metric by @mrduncan in #108564
- (knip) Update knip to latest version and rm some extra exports by @ryan953 in #108397
- (relay) Add rollout option for eap accepted outcomes by @Dav1dde in #108314
- (replays) Clamp connected error query dates to org retention period by @aliu39 in #108428
- (sdk) Sample S4S upstream metrics at 1% by @JoshFerge in #108566
- (selective testing) Exclude tests/sentry/test_wsgi.py by @joshuarli in #108198
- (tests) Reduce session count in test_batch_query_percent_decimal by @mrduncan in #108425
- (tracemetrics) Use metrics rollout flows by @nsdeschenes in #108683
- Remove dead release.timestamp preflight query code by @noahsmartin in #108660
- Make code behind grouptombstones-hit-counter the default by @priscilawebdev in #108302
- Delete SessionsQueryConfig and inline AllowedResolution.ten_seconds by @noahsmartin in #108590
Other
- Idor issue group operations by @cvxluo in #107989
- Adds hybrid_cloud_rpc skill to claude config by @GabeVillalobos in #108548
- Move massage result functions from sessions_v2 to outcomes by @noahsmartin in #108598
- form(search) bailout if label is jsx node and make hintText optional by @JonasBa in #108690
- core(styling) drop double serializers by @JonasBa in #108631
- Distinguish Copilot licensing errors from GitHub App permission errors by @JoshFerge in #108565
- fix(pagefilter) increase hitBox, add infoTip and search clear by @JonasBa in #108422
- test(preprod): use fake timers to cut buildDetails spec from 22s to 2s by @scttcper in #108621
- test(billing): Refactor Stripe hook test to use fake timers by @scttcper in #108515
- ref(settings) better buttons on stats page by @JonasBa in #108501
- de 928 migrate customcommitsresolutionmodal to new form system by @TkDodo in #108348
- meta: Bump new development version in 7a5c2b85
- release: 26.2.0 by @hubertdeng123 in 58e75470
- Support spawning processes in multi process step by @fpacifici in #108472
- Harden SSO login pipeline for inactive user identities by @michelletran-sentry in #108458
- fix(relocation) Remove fixup passes on relocation processing by @markstory in #108374
- fix(relocation) Align max upload size with nginx limits by @markstory in #108381
- Increase product trial extension limit from 90 to 180 days by @rahulchhabria in #108395
- meta: Bump new development version in 98d06f22
- deps(ui): Upgrade react aria to feb 2026 by @scttcper in #106755
autofixapidashboardssecuritycodereview
Source: original entry ↗