Repository navigation
v4.116.0
Events say how significant they are, and alert rules act on it
Every event in the project and organization feeds now carries severity: info (routine), notice (unusual but not known to be wrong), warn (probably wrong), or critical (wrong now). Your app declares it; Run402 never infers it. Alert rules filter on it, reduce a run of events to one message per window, or page the escalation ladder. No rule carries a count or rate condition.
CLI (run402)
run402 events list --min-severity <level>reads only what matters. The cursor belongs to the filtered view, so replaying it with other filters resets instead of skipping rows.run402 subscriptions addgains--min-severity,--window <seconds>, and--group-by <key[,key]>: one Telegram message per closed window with a line per group and its count, instead of one per event.run402 subscriptions add --escalate-to-level <n> --project <id>pages the organization's escalation ladder instead of a chat (owner only). A repeat while the escalation is open joins it.run402 contacts test --severity <level>exercises a rule filtered abovenotice; the report lists rules that stayed silent and why.
SDK (@run402/sdk)
ProjectEvent.severityand theEventSeveritytype;events.list/listForOrgtakeminSeverity.admin.rules.create/updatetakeminSeverity,groupBy,windowSeconds,channel, andescalationLevel;RoutingRulereads the effective values plusnext_window_closes_atandescalation_refused_count.admin.testNotificationtakesseverityand returnstelegram.skipped_rules.Escalation.raised_by.kind(principal|rule),attached_count, andlast_attached_at.
MCP (run402-mcp)
- No new tools: every new field and filter is reachable through
runsnippets on the SDK above.
In-function helper (@run402/functions 4.9.0, released separately)
events.emit(type, payload, { severity })declares the event's severity.
Defaults: a rule without --min-severity carries notice and above when it names no event types, and everything of the types it names. Rules created before this release keep delivering exactly what they did.