// 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 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, error count, and warning count. Each alert row shows the source app slug, severity level badge, title, and how long ago it was emitted. Unacknowledged alerts have a subtle tinted background so they stand out. Clicking any row opens its full detail — message body, metadata JSON, and the acknowledge button.

meltuc.tech/herald/app
47
Total
3
Unacked
8
Errors
14
Warnings
Search alerts...
All Levels
All Sources
Unacked only
Level Source Title Ack Time
error kronos Job "AIF Hourly Scan" failing: 3 consecutive failures 34m
warn 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
ok nlg Newsletter batch #18 sent — 1240 recipients 6h

Filter by Severity

Herald supports four alert levels: error, warn, info, and ok. The level filter in the toolbar narrows the list to exactly the severity you care about. Combined with the source filter, 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 API supports the same filters so Nexus can pull a targeted subset for its dashboard summary.

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

Triage and Clear

Every alert can be acknowledged individually or in bulk. Once acknowledged, the alert stays in the database for audit purposes but is visually deprioritized — it no longer counts toward the unacked badge or appears when the "unacked only" filter is active. The Acknowledge All button clears all outstanding alerts in one action for when you need to reset after a deployment or incident. The unacked count drives the Nexus alert summary so the operations dashboard always reflects the current triage state.

meltuc.tech/herald/app — Alert Detail
3 Unacknowledged
error AIF Hourly Scan failing: 3 failures
warn YouTube quota exceeded
error Gmail token expired user id=42
Ack Selected
Ack All
ALERT DETAIL
Job "AIF Hourly Scan" failing: 3 consecutive failures
error kronos
Message
Connection refused: requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=5010): Max retries exceeded
Metadata
{"job_id": 7, "consecutive_failures": 3}
Emitted 34 minutes ago
Acknowledge

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', # error | warn | info | ok
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

error, warn, info, and ok 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. Acknowledged alerts persist in the database for audit but drop off the unacked counter — Nexus reflects the triage state immediately.

🕐

Kronos Integration

Kronos automatically emits an error-level alert after three consecutive job failures. No manual wiring required — the alert appears in Herald and surfaces in Nexus immediately.

🔎

Search & Filter

Full-text search across all alert titles, plus filter by level, source app, and ack status. Scope the view to unacknowledged errors from a specific app in two clicks.

🛰

Nexus Visibility

Unacknowledged alerts surface directly in the Nexus platform operations center — source, level, title, and timestamp all shown without leaving the ops 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.