// UNIFIED ALERT HUB

EVERY PLATFORM ERROR.
ONE PLACE.

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.

Launch App See How It Works Learn More
4
Alert Levels
22+
Source Apps
1
emit_alert() Call
Ack
Tracked Per Alert

All Alerts in One Stream

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.

meltuc.tech/herald/app
47
Total
3
Unacked
8
Errors+Crit
14
Last 24h
All Levels
All Sources
Unacknowledged only
50 rows
Level Source Title Ack Time
error kronos Job "AIF Hourly Scan" failing: 3 consecutive failures 34m
warning aif YouTube API quota exceeded — scan incomplete 1h
error mellissa Gmail OAuth token expired for user id=42 2h
info ght Rate limit hit on GitHub API — backed off 60s 3h
info nlg Newsletter batch #18 sent — 1240 recipients 6h

Filter by Severity

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.

meltuc.tech/herald/app — Level Breakdown
Alert Distribution by Level
critical
8
8
error
14
14
warning
16
16
info
9
9
Alert Count by Source App
kronos 12
aif 8
mellissa 7
ght 6
nlg 5
srm 4
other 5

Triage and Clear

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.

meltuc.tech/herald/app
3 Unacknowledged
error Job "AIF Hourly Scan" failing: 3 consecutive failures Ack
warning YouTube quota exceeded — scan incomplete Ack
error Gmail token expired user id=42 acked
Acknowledge All
📋 Send Digest

One Call to Alert

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.

blueprints/yourapp/routes.py
# In any blueprint route or cron handler:
from shared.herald import emit_alert
emit_alert(
'myapp', # source_app slug
'Something went wrong', # title
level='error', # critical | error | warning | info
message=str(e), # full error text
metadata={'user_id': uid},
)
# Alert is immediately visible in Herald inbox
# Silently swallowed if Herald schema not ready
// WHAT YOU GET

Platform Alerting That Just Works

Herald is fire-and-forget from the blueprint side and triage-ready on the operator side — no configuration, no credentials, no setup.

🔔

Single emit_alert() Call

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.

🚦

Four Severity Levels

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 Workflow

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 Integration

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 & Triage

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.

🛰

MCP-Accessible

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.

🧬

Metadata Search

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.

📋

Configurable Digests

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.

📉

Noisiest-App Stats

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.

// GET STARTED

One Inbox. Every Platform Error.

22 apps. One emit_alert() call. One inbox. Nothing gets missed.

Launch Herald

Requires a MelTuc account. Create one free.