A RUM regression alert is the trigger; the surrounding window is the evidence pool
Autopilot does not continuously scan for trouble — it investigates when real-user monitoring proves something got worse, or when you ask it to.
The trigger#
The primary trigger is a RUM regression alert: real-user metrics (LCP, INP, CLS, TTFB) that fall outside a 24-hour window baselined over 5 days with a minimum of 75 samples, opening an alert with severity needs-improvement or poor (activity rum.regression_opened). You can also start one manually from the Autopilot → Diagnoses screen: pick a domain in the Domain select (or All domains) and press Run diagnosis — with nothing selected you get Select a domain before running a diagnosis. The table's Triggered by column shows RUM regression alert or Manual.
The window#
A diagnosis correlates evidence from a 48-hour correlation window around the trigger (up to 48 hours before the alert, with a 12-hour recent sub-window) across five evidence pools: resource, configuration, origin, security, and cache. The screen's own hint says it best: Each diagnosis correlates a RUM regression against resource, configuration, origin, security, and cache evidence in the same window and ranks candidate causes with confidence — it reports “insufficient evidence” rather than guessing when nothing correlates.
Data and endpoints#
GET /v1/autopilot/diagnoses lists rows for the workspace (scoped to the selected domain when filtered), and POST /v1/domains/:id/autopilot/diagnoses runs one (201; Diagnosis could not be run. as the fallback error, with the raw message preferred when available). The backend distinguishes statuses completed, insufficient_evidence, and failed — the screen maps the middle one to Insufficient evidence alongside Completed and Failed. Both trigger kinds persist, so a manual run sits beside alert-driven ones in the same table and the same window arithmetic applies to each.
The screen#
Panel Diagnoses, eyebrow Performance Autopilot; columns Domain | Status | Metric | Triggered by | Top cause | Window | Created. Statuses render as Completed, Failed, or Insufficient evidence. Row actions: Evidence (expand) and Generate proposal (completed rows with a metric only). Empty state: No diagnoses yet. Select a domain and run one, or wait for a sustained RUM regression alert. Endpoints: POST /v1/domains/:id/autopilot/diagnoses (201), GET /v1/autopilot/diagnoses.

