Changes
- Terraform provider overhaul: state consistency, tests, CI gating, and rewritten docs
- PR: #2945
- feat(incidents): show the monitor summary that caused the incident / alert
- PR: #2947
- Session replay: wire up the dark capabilities — exception replay card, timeline signals, budgets, install diagnostics
- PR: #2946
- Terraform provider DX: typed monitor_steps, curated registry docs, plan-time validation, coverage ratchet
- PR: #2951
- Session replay Wave 2: reliability and compliance hardening
- PR: #2948
- Session replay Wave 3: player and list UX
- PR: #2950
- Session replay wave 4: trace correlation, performance triggers, targeted capture
- PR: #2952
- Fix the six failing Terraform E2E tests on master
- PR: #2954
- Fix zombie-row resurrection: updates racing hard deletes blocked status deletion forever
- PR: #2955
- Fix Terraform Create stranding created resources (root cause of the intermittent E2E destroy failure)
- PR: #2956
- fix(identity): close SAML XML Signature Wrapping bypasses (#2949)
- PR: #2957
- feat(network-map): add a search box that finds a site anywhere in the hierarchy
- PR: #2958
- Network map: markers can no longer hide each other
- PR: #2959
- Give Linux hosts a Systemd Units tab
- PR: #2960
- fix(api): enforce ownership on user-incoming-call-number resend-verification-code (GHSA-wc96-jm46-37hh)
- PR: #2961
- feat(status-page): bulk import resource groups from a CSV
- PR: #2964
- feat(dashboard): add a Clock widget
- PR: #2965
- feat(auto-remediation): rule-scoped AI auto-remediation for incidents and alerts (Phase 1)
- PR: #2966
- Rebuild the Network Topology map: readable default layout, draggable nodes
- PR: #2967
- fix(dashboard): scope public resource-list to the dashboard's own widgets (GHSA-qv79-j844-cc7m)
- PR: #2970
- fix(workflow): authorize the manual workflow run endpoint (GHSA-v8v9-p6ff-jwmm)
- PR: #2969
- feat(instance-health): notify master admins about Redis and PostgreSQL problems
- PR: #2968
- Add colors to custom field dropdown options
- PR: #2974
- Show incident, alert, and maintenance durations
- PR: #2977
- Add multiple monitors to status page groups
- PR: #2976
- feat: add RUM monitor recommendations
- PR: #2978
- feat(dashboard): add an HTML widget for author-supplied HTML, CSS, and JS
- PR: #2971
- Allow creating empty resource inventories
- PR: #2975
- fix(i18n): translate the Clock widget catalog strings
- PR: #2979
- feat(auto-remediation): outcome verification loop (Phase 2)
- PR: #2982
- feat(runner): merge the Runbook Agent and AI Agent into the OneUptime Runner
- PR: #2983
- Carry the status page group hierarchy into the emailed uptime report
- PR: #2984
- fix(sso): block SAML signature bypass via signed error response (#2981)
- PR: #2985
- fix(dashboard): stop the Value widget clipping its content at every grid size
- PR: #2987
- fix(status-page): make Add Multiple Monitors match the resource form
- PR: #2990
- Regroup the Add Widget picker by what widgets show
- PR: #2991
- fix(ui): stop the modal body from clipping autocomplete suggestions
- PR: #2993
- feat(rum): document session replay setup, split its settings, retune defaults
- PR: #2992
- fix(ui): stop the modal body from clipping the filter operator menu
- PR: #2994
- fix(ui): stop the modal body from clipping the colour and icon pickers
- PR: #2995
- fix(sso): block SAML value rewriting via XML processing instructions (#2988)
- PR: #2989
- fix(dashboard): stop the Value tile rendering an empty metric as "0"
- PR: #2996
- fix(dashboard): narrow trace widgets with dashboard variables
- PR: #2998
- fix(dashboard): keep the gauge value arc on its background track
- PR: #2997
- feat(kubernetes): recommend right-sized CPU and memory requests
- PR: #2999
- Add Real User Monitoring dashboard template
- PR: #3000
- feat(auto-remediation): let AI compose and run remediation commands
- PR: #3003
- feat(slo): bulk add/remove labels and owners on SLO tables
- PR: #3005
- fix(postgres): close schema drift on the Runner tables
- PR: #3007