Changelog
Customer-facing changes per release. Sprint-level detail lives in the pull requests and docs/history/decision_log.md.
Unreleased
- Operations: the 7/30/365-day uptime percentages are recalculated every 30 minutes instead of every 5 (
UPTIME_REFRESH_SECONDS), and the 24-hour response-time averages use the time index again. Together they remove most of the worker's background CPU, which had pushed the server into CPU throttling.
- Saved dashboard views. Filter the dashboard by search, status, group or tag (group and tag filters are new), then save the combination under a name. Views are yours on every plan and every team role; one of them can open with the dashboard. Up to 20 per login.
- Operations: the worker now watches its own host and warns the operator (Telegram) before trouble becomes downtime: disk filling up, the worker restarting repeatedly, or interrupted backup copies piling up. Backups wait when the disk has no room for them instead of filling it.
- Worker stability: scheduled maintenance (backups, retention, expiry checks, e-mail batches) now runs beside monitoring instead of inside it, so a large database can no longer pause checks or restart the worker; interrupted backup copies are cleaned up automatically.
- API body assertions. An API monitor can now require that the response body contains a string, and that one JSON field (a small JSONPath such as
$.data.status) exists or equals a value. A failed assertion is a failed check on a reachable endpoint, never downtime, and the incident cause is explained at /learn/api-body-assertion-failed.
- Monitor API. Create, update and delete monitors from your own tools:
POST /api/v1/monitors, PATCH /api/v1/monitors/<id>, DELETE /api/v1/monitors/<id>, plus GET /api/v1/monitors/<id>. API keys now have a scope: read (the default, and what every existing key keeps) or write. The API applies the same rules as the form, never returns credentials, and every change appears in your account activity. Docs on Integrations & API.
1.0.0 — launch (2026-09, tag v1.0.0 on main after the Sprint 8 deploy)
The first release ErrorDetector can honestly take money on. Since the pre-launch audit (docs/audits/PRELAUNCH_AUDIT_2026-09.md):
- Monitoring you can trust. Failures are confirmed with immediate re-checks before anything is called down; the schedule survives restarts; a reachable page that fails its check is an *issue*, never downtime; nothing invented (no fake regions, no made-up history). Nine monitor types: HTTP, keyword, API, cron/heartbeat, ping, port, DNS, blacklist, SSL and domain expiry.
- Alerts that arrive. Every alert is queued, retried and logged; you can see each delivery on the monitor; recovery reaches every channel; a channel that keeps failing is paused and you are told. Fifteen channels, e-mail on every plan including Free.
- Billing. EUR prices ex-VAT with VAT added by Stripe Tax and reverse charge for EU VAT ids; a 14-day Team trial without a card; cancel, switch and download invoices in the Customer Portal; when a plan ends, monitors over the limit are paused, never deleted.
- Onboarding in two minutes. Reachability check, first monitor, alert destination and a delivered test alert before you see the dashboard.
- Status pages on every plan, your own domain from Solo (with verification), white-label from Team, subscriber e-mails.
- Trust surface. Privacy policy with sub-processors and data location,
/security, /contact, one-click data export, account deletion that cancels billing first, account activity log, cookieless analytics only.
- Operations. Real health checks, watchdog, encrypted off-site backups with a weekly restore drill, JSON logs, Sentry, deploy health gate with automatic rollback, staging environment, runbooks, an admin customer view.
Known limits at launch (all stated on the site): one monitoring origin (the EU), no SMS/voice, HTTPS on custom status-page domains is issued by hand on request.