Changes
- Write hooks run only once the caller is checked, and make room only after the write succeeds
- PR: #4384
- Every AI agent page puts Test connection and Reset agent in one ⋯ menu next to the agent's status
- PR: #4385
- Teams on SSO and SCIM providers are held to what the person saving them could grant
- PR: #4386
- fix(references): rules and owner rows accept only their own project's records
- PR: #4387
- chore: npm audit fix
- PR: #4381
- docs(ai): Ollama setup uses a Base URL the egress guard allows, in all 17 languages
- PR: #4388
- An outdated agent version shows a warning sign that opens how to upgrade it, on every resource
- PR: #4389
- fix(templates): substitute in one pass so a value's {{...}} text stays literal
- PR: #4390
- A runbook's approval steps can't be pre-approved or skipped before the run reaches them
- PR: #4391
- A record points only at files of its own project, and pages serve only those
- PR: #4394
- fix(monitors): incoming email templates fill the variables the docs promise
- PR: #4392
- Create Monitor: what to monitor first, six common types, and default criteria folded
- PR: #4395
- Edits take edit permissions: monitoring switch, template settings, workflows and custom domain certificates
- PR: #4396
- Every language's runbook page says which step can be completed, approved or skipped
- PR: #4397
- fix(templates): expand {{#each}} loops in the same pass as substitution
- PR: #4399
- docs(ai): sync the 15 lagging LLM provider guides with English
- PR: #4400
- Preview notification is a small 'Preview' link on the line of the value it previews
- PR: #4401
- Rename the AI Insights page of every cluster and resource to AI Logs and add a real AI Insights page
- PR: #4398
- fix(ai): let the bundled vLLM global provider work with billing enabled
- PR: #4402
- feat(ui): a friendlier color picker everywhere - named swatches first, Custom color for an exact code, nothing spilling out of dialogs
- PR: #4403
- AI investigations are on by default for every resource, and each Overview ends with its AI agent's status
- PR: #4393
- Every service checks that the records it names are the project's own
- PR: #4404
- Private images open only to their project; uploads start private and need access to the project
- PR: #4405
- AI access follows the agent: green badges, agent-set investigation and fixes, and the commands to change them
- PR: #4406
- A paid feature can always be switched off, on any plan: plan-gated settings go back to their default on every plan
- PR: #4407
- Templates: Change Monitor Status to and Initial Incident State are editable by the template's editors
- PR: #4408
- Hosts, Proxmox, Ceph and VMware agents report their version: outdated sign and upgrade dialog
- PR: #4409
- feat(ai): project-wide daily AI token and spend limits under More settings on Project Settings → AI Features
- PR: #4410
- fix(status-page): a scheduled maintenance state change with a public note tells subscribers once
- PR: #4411
- A reference sent under both of its names must name one record
- PR: #4414
- AI daily limit checks read today's AI Logs through an index (online, bounded migration)
- PR: #4415
- Incident, alert, maintenance, monitor and status page label and owner rules take the shared two steps; Edit never insists on what a rule adds
- PR: #4416
- docs(ai): the LLM provider guide says Global LLM Providers reach private addresses
- PR: #4417
- Incidents and Alerts get an AI section with Insights, Logs, Settings and Auto Remediation Rules
- PR: #4419
- fix(status-page): a state change's public note is posted or the change is refused, and it names the new state
- PR: #4421
- Update side effects follow real changes: re-sent notify flags and severities do nothing, a severity change counts under either name
- PR: #4422
- Reference rules hold under either name: service checks, create lists, episode updates, ee/Server guards
- PR: #4424
- All/Any only from two conditions everywhere; workspace summaries start weekly and are always scheduled
- PR: #4425
- Grouping rules fold everything beyond grouping under More fields (retire Show advanced settings)
- PR: #4426
- Who created or changed a record is recorded by OneUptime, read-only in the API and Terraform
- PR: #4427
- Create Alert and Create Episode start in the Initial State they offer
- PR: #4428
- Subscribers hear about a postmortem once, when it is published
- PR: #4429
- Duplicate fills in the copy's name (' 2') and keeps a refused copy in the dialog
- PR: #4430
- On-call: each person keeps one palette colour on every card, never black or grey
- PR: #4431
- Incoming call escalation rules ring for 20 seconds by default
- PR: #4432
- chore: npm audit fix
- PR: #4433
- feat(storage-arrays): Storage Arrays product for Pure Storage FlashArray and FlashBlade
- PR: #4420
- Incidents, alerts and episodes created already acknowledged or resolved page nobody
- PR: #4435
- Say exactly who can turn on SMS, phone calls, WhatsApp and Telegram: a project owner or someone with Manage Billing
- PR: #4436
- feat(mobile): ship the iOS critical alerts entitlement in store builds (1.5.0)
- PR: #4437
- Heartbeat monitors no longer go Offline when the ingest queue falls behind
- PR: #4438
- fix(episodes): clear episode references when members are removed
- PR: #4423
- fix(kubernetes-ai): translate the automatic investigation confirmation
- PR: #4439
- Serve Farsi docs pages right to left
- PR: #4440
- Below a feature's plan, leftover SSO, SCIM, API keys, schedules and Slack/Teams rules can be seen, switched off and deleted
- PR: #4441
- Plan and permission checks for Test Rule, a status page's Require SSO and alert/episode state change notes
- PR: #4442
- fix(telemetry): coalesced incoming requests evaluate the newest payload
- PR: #4443
- Store monitor ingest payloads in jsonb columns Postgres can hold
- PR: #4444
- fix(episodes): an incident's or alert's episode follows its membership only
- PR: #4446
- fix(api-reference): serve Farsi pages right to left
- PR: #4445
- fix(kubernetes-ai): translate the cluster's AI agent page
- PR: #4447
- Reads return a record's files only to readers who may see them; status page and form images are public exactly while shown
- PR: #4448
- fix(migrations): stop schema migrations queueing ahead of app traffic
- PR: #4449
- Workspace summaries go out at the same local time all year: each summary has a time zone
- PR: #4450
- fix(permissions): every column is read with its own record's read permission
- PR: #4452
- fix(kubernetes-agent): upgrade without --reuse-values, and warn when a release keeps an older chart's defaults
- PR: #4459
- feat(kubernetes-agent): opt-in drop of OBI client calls that belong to no trace
- PR: #4460
- Label and owner rules: a new rule must add something, everywhere; a rule that only inherits is named after its switches
- PR: #4461
- fix(postmortem): a postmortem published while its incident is hidden is sent when the incident is made visible
- PR: #4462
- fix(status): readiness fails when a datastore is down; liveness no longer depends on one
- PR: #4463
- test(notes): wait for the new event's feed to mount, not just to appear
- PR: #4464
- fix(jest): match ignore patterns by whole path segment
- PR: #4465
- fix(migrations): keep runtime pods off a schema older than their code
- PR: #4466
- fix(ai-access): translate the shared AI access UI into every Dashboard language
- PR: #4467
- fix(permissions): every permission check reads team rows by one rule
- PR: #4468
- Low-balance messages say who can add balance, and link only for them
- PR: #4470
- fix(dashboard): give the Automatic mode card's riskier changes their own translation keys
- PR: #4479
- fix(i18n): extract a literal translatableTerm() as a Dashboard translation key
- PR: #4480
- Below their plan, API keys and SCIM stop working until the project upgrades
- PR: #4481
- Apply incident/alert and episode privacy to episode member rows
- PR: #4482
- fix(workflow): clean up schedules after trigger changes and deletion
- PR: #4458
- A private incident or episode is never shown on a status page
- PR: #4483
- i18n(dashboard): translate the AI agent pages into every Dashboard language
- PR: #4484
- feat(navbar): draw the folded product categories as one aligned list
- PR: #4485
- feat(dashboard): search and sort the Host Processes list (#4477)
- PR: #4486
- feat(workflow): Dynamics 365 / Dataverse workflow templates
- PR: #4488
- fix(workflow): Update steps merge custom fields; a reference on its own in a JSON setting is the value
- PR: #4490
- Every Send Test asks what sending it for real asks
- PR: #4489
- fix(status-pages): what a status page hides stays hidden
- PR: #4491
- A plan-gated setting needs its plan on create as well as on update
- PR: #4492
- fix(telemetry): every telemetry read follows the caller's label, owned and block scope
- PR: #4493
- feat(cloud): discover IaaS and PaaS resources from Azure Monitor, CloudWatch and Cloud Monitoring
- PR: #4494
- Billing Admins switch paid channels; Workflow Admins edit workflows, Members run them
- PR: #4495
- feat(scheduled-maintenance): Change Monitor Status to can be edited until the event starts
- PR: #4496
- Workflow steps act as a Project Admin of their project, on its plan
- PR: #4497
- Every diagram runs mermaid built from source, with the katex npm installed
- PR: #4498
- fix(feed): alert and episode titles are text in every feed item and chat message
- PR: #4499
- fix(github): connecting an installation needs permission to add code repositories
- PR: #4501
- Release 14.0.15
- PR: #4505