trigger_source in the Runs API can be event, not just schedule or manual.
Signal kinds
Each signal has a severity (
info → critical), a fingerprint for dedup (the same anomaly reported twice in a day collapses to one row), and a 14-day TTL.
How runs consume signals
- The event orchestrator polls open signals above the minimum severity.
- It triggers a run for that app with the signal(s) attached.
- The collector injects the signal context into the payload, so the briefing opens with why this run happened (“Triggered by: downloads anomaly, −38% vs baseline”).
- The signal is marked
triggeredand won’t fire again.
Where you see them
- Dashboard → Co-founder → Signals — open/resolved list with severity and history
- Briefings — signal-triggered runs open with the triggering event
- Why-agent — a signal can seed a root-cause analysis with its metric context

