maintenant 1.11.0 lets you edit a heartbeat from the dashboard, adds a subject label to email channels, and opens by IP address without any setting.
Heartbeats
- The heartbeat detail has an Edit button. It opens the creation form, prefilled. The id, the ping URL and the history are kept, and an interval set through the API outside the presets stays selectable.
- Changing the interval or the grace period now moves the next deadline of an
uporstartedheartbeat, counted from the last ping, the start of the run or the resume. Anew,pausedordownheartbeat keeps its deadline. - The detail shows the next expected ping time, grace period included.
- Other open dashboards see the change at once, through a new SSE event
heartbeat.updated. PUT /api/v1/heartbeats/{id}with only aninterval_secondslower than the current grace period now answers400 INVALID_INPUT, instead of storing a grace period longer than the interval.
Email channels
- An email channel can carry a subject label, set in the channel wizard, the edit form, the API (
config.subject_label) or the MCP channel tools. It replacesmaintenantbetween the brackets:[prod-paris] ALERT: …,[prod-paris] RESOLVED: …,[prod-paris] TEST: Test notification. - The label is trimmed and limited to 64 characters. A control character (line break, tab, NUL) is refused with
400 VALIDATION_ERRORand the channel keeps its previous label. - Without a label, alert and resolution subjects do not change. The test email subject becomes
[maintenant] TEST: Test notification, like the alerts, so one mail rule catches both. - The edit form shows the error returned by the server instead of closing silently.
Accepted hosts
- An IP address in the
Hostheader, IPv4 or IPv6, is always accepted. A fresh install withMAINTENANT_ADDR=0.0.0.0:8080and noMAINTENANT_BASE_URLnow opens athttp://<server-ip>:8080instead of answering421. - Host names such as
nas.lanstill have to be declared inMAINTENANT_BASE_URLorMAINTENANT_ALLOWED_HOSTS. The421message now names both variables.
MCP
- Each tool description says which tool provides the IDs it takes and which tool to use instead. For write tools, it also gives the side effects (emails to subscribers, notices to channels, escalations stopped) and the answer to an unknown, already handled or repeated call.
- Write tools declare
destructiveHint,idempotentHintandopenWorldHint. Which tools need thewritescope does not change. - Descriptions no longer announce fields the tools do not return: endpoint uptime, certificate issuer and expiry, container labels, a
stoppedcontainer state.
Interface
- Header menus no longer open behind the sticky toolbar of list pages.
Deployment
- New guide: deploying on Coolify, with a filtering proxy in front of the Docker socket and basic authentication in Traefik.
- The Helm chart moves to 1.11.0, the same as the application version.
The full documentation is at docs.maintenant.dev.