The problem is not “another inbox clone.” The problem is Kronos failures, SRM events, and
SIGMA noise with nowhere canonical to land. Herald owns herald_alerts.
Blueprints call shared.herald.emit_alert() (fire-and-forget, no fingerprint, no raise).
HTTP ingest POST /herald/api/emit is localhost-only, 100/min, MD5 fingerprint
source_app:title, upsert on conflict. Operators filter severity and source, search
JSONB metadata, ack, mute, bulk-delete, see noisiest apps over 7 days. A Telegram digest of
unacked alerts exists in the product — platform tokens are retired so that digest is a no-op
unless you restore them. Notification Center is a reader of this table, not a second
bus. New failure paths should emit here, not Telegram.
In-process emit does not dedupe. HTTP emit does. Know which path your blueprint uses.
Not PagerDuty. Not Notification Center’s UI copied as a screenshot.
Helper: no fingerprint. HTTP: md5 upsert. Do not expose emit to the internet.
If both landings sound identical, this sentence is the difference.
send_telegram_alert is a no-op without tokens. Wire new alerts here.
Will not 200 emit from the WAN. Will not store alert bodies on /herald/.
Engineers watching the factory. If you only wanted a pretty changelog, that is ShipLog.
No invented on-call rotations.
Login for /herald/app. This page is not the feed.
Open HeraldRequires a MelTuc account. Create one free.
Unified Alert Hub — central dashboard for platform alerts, errors, and Telegram notices. Health stays cheap. If this page disagrees with the signed-in app, trust the app — the product contract and tests enforce that rule.