Raise / ack / resolve all rendered with the same title and body on
ntfy and SMTP, so a recovery looked identical to the original alert.
Webhook was already fine because the JSON envelope carries 'event'.
ntfy:
Title '[raised · warning] dev backup_failed' (was '[warning] …')
Tags 'raised,warning,backup_failed' (was 'warning,backup_failed')
Body 'Resolved · <message>' / 'Acknowledged · <message>' on those events
SMTP:
Subject '[restic-manager] [raised · warning] dev: backup_failed'
Plus: cmd/_fake_alert now accepts the ref as a positional argument
(go run ./cmd/_fake_alert steve-001) instead of silently ignoring
unknown positional args. Refuses ambiguous '-ref X positional Y'.