Herald is the platform-wide alert inbox. Every blueprint can emit an alert via a single shared
helper — emit_alert() — and it appears here instantly.
Kronos fires error alerts when a job hits three consecutive failures. Other apps emit warnings
and info notices as they run. Herald collects them all, lets you filter by level and source,
and tracks acknowledgement so nothing gets lost.
The main Herald view is a reverse-chronological list of all platform alerts. Four stat tiles at the top show total alerts, how many are unacknowledged, errors + criticals combined, and alerts in the last 24 hours. Each alert row shows the source app slug, a colour-coded severity badge, the title, a truncated message, and how long ago it was emitted. Unacknowledged rows carry a coloured left-border accent by severity; acknowledged rows dim. Every row has an inline Acknowledge action — no separate detail view to open.
Herald supports four alert levels: critical, error, warning, and info. The level filter in the toolbar narrows the list to exactly the severity you care about. Combined with the source filter and the "unacknowledged only" checkbox, you can scope the view to — for example — only unacknowledged errors from Kronos, or all warnings from any app in the past 24 hours. The same filters are available on the API for scripted or MCP-driven queries.
Acknowledge an alert individually with the row's Ack button, or clear everything outstanding (optionally scoped to a level/source) with the header's Acknowledge All button. Acknowledged alerts stay in the database for audit purposes but dim in the list and drop off the unacknowledged count. For noise you expect but don't want to acknowledge yet — a maintenance window, a known flaky check — mute an alert for a set number of hours instead; it reappears automatically once the mute window passes.
Any blueprint can emit an alert by importing the shared helper — no HTTP call, no credentials,
no configuration. The call is fire-and-forget: it writes to herald_alerts and silently
continues if Herald is unavailable. Kronos already uses this pattern when jobs hit consecutive
failure thresholds. Your app can emit alerts for any condition that warrants operator attention.
Herald is fire-and-forget from the blueprint side and triage-ready on the operator side — no configuration, no credentials, no setup.
Any blueprint emits an alert with one import and one function call. No HTTP setup, no credentials, no configuration — if Herald is unavailable the call silently continues.
critical, error, warning, and info levels with color-coded badges. Filter the inbox to exactly the severity you care about — combined with source filter for precise triage.
Acknowledge alerts individually or in bulk (optionally scoped to a level or source). Acknowledged alerts persist in the database for audit but drop off the unacked count immediately.
Kronos automatically emits an error-level alert after three consecutive job failures. No manual wiring required — the alert appears in the Herald inbox immediately.
Filter the inbox by level, source app, and unacknowledged status, with a row-count cap and CSV export. Scope the view to unacknowledged errors from a specific app in two clicks.
Alert listing and acknowledgement are exposed as MCP tools, so an AI agent can check or clear platform alerts the same way an operator would from the dashboard.
Every alert carries JSON metadata. Search it directly — pull every alert for a job id, a user, or a ticket key, or list the 50 latest alerts for any developer by metadata match.
Bundle unacked alerts into a single Telegram digest. Set your personal look-back window — 1, 4, 8, or 24 hours — and Herald collects exactly that span, marking each line so it never repeats.
A failing-blueprints panel ranks the top 5 apps by error count over the last 7 days, plus an oldest-open-alert timestamp so you can see triage backlog at a glance. Mute and bulk-delete keep the inbox clean.
22 apps. One emit_alert() call. One inbox. Nothing gets missed.
Launch HeraldRequires a MelTuc account. Create one free.