Engine

Notifications

Three events, one channel. The list of what is not built is on this page too, because finding that out from a silent integration is worse than reading it here.

What it notifies on

EventWhen
approaching criticalAn entry has crossed into the act-now tier. This is the one you act on.
bump succeededAn extension was submitted and verified against post-state, with its transaction hash.
bump failedAn extension was attempted and did not complete. An unconfirmed result is reported as failed rather than retried.

The channel

Email. The config names the recipient by environment variable (notifications.toEnvVar) rather than carrying an address, for the same reason it never carries a secret: configuration gets committed.

What is not built

Discord, Telegram, Slack and generic webhooks are not implemented. The configuration will not accept them, and there is no adapter waiting behind a flag. A Telegram channel is a stated candidate for the next scope of work; it is not a setting.

This page names them because a reader who assumes a webhook exists will configure one, see nothing, and conclude the engine is broken. The absence is a fact about the tool, and publishing it costs less than the support conversation it prevents.

Silence is not health

No notification can mean nothing crossed a threshold — or it can mean the scheduled run did not fire. Those are different situations that look identical from an inbox, which is why a missed run is alerted on separately rather than inferred from quiet. What the engine is

Next The GitHub Action Fail a pull request when a contract is closer to expiry than you allow.