THE FULL RELEASE HISTORY OF THE CODEBASE YOU BUY. EVERY VERSION PUBLISHED AFTER YOUR PURCHASE IS INCLUDED, AT NO FURTHER CHARGE.

Changelog

All notable changes to Vigil are documented here. Versions follow semantic versioning: breaking changes bump the major, additive features the minor, fixes the patch.

1.29.0 — 2026-08-25

An incident that opens now writes down what was known at that moment: the observation that failed, the last one that succeeded, what changed between them, what four read-only probes found when they re-checked the target, and which other monitors were failing for a reason we can name. Both editions.

Added

What it does not do

1.28.1 — 2026-08-25

A packaging fix, with no change to the product. Vigil Core 1.28.0 was published with vigilctl committed non-executable, so a clone of that tag could not run ./vigilctl. The commercial edition was never affected.

Fixed

What it does not do

1.28.0 — 2026-08-24

vigilctl: the lifecycle of a self-hosted install, as one command. Install, doctor, backup, restore, update, rollback — the sequence that used to live in a document, with the refusals in it. Bash and Docker are the only requirements, because the host that runs the supported install has Docker on it and frequently no Node and no Postgres client. Ships in both editions.

Added

Fixed

1.27.0 — 2026-08-24

The Better Stack migration bridge. The one-time importer answers “can my monitors move”; the bridge answers “can I trust the move”, and the difference is evidence: connect a Better Stack account read-only, import into a non-paging shadow mode, run both systems side by side, and get a frozen cutover report with a SAFE or NOT SAFE verdict and every reason written out.

Added

What it does not claim

1.26.0 — 2026-08-23

Operations tasks: the human half of the runbook engine. A task is one piece of work a person has to do, written down beside the work automation does by itself, with a state, an owner, a deadline and a cause. It lands in an inbox, and the record of who had it and what they said outlives the incident.

Added

What it does not claim

Fixed

1.25.0 — 2026-08-20

Runbooks: the automation you would otherwise perform by hand while an incident is open, written down once and executed with a record of what it did. Something happens, a runbook that governs it starts, and it walks a list of typed steps.

Added

Unchanged

Nothing here is exactly-once and the product does not claim it is. External effects are at-least-once with a stable idempotency key: every attempt of a step carries the same key, so a receiver that honours one collapses the duplicate.

1.24.0 — 2026-08-20

Service level objectives, error budgets, and multi-window burn-rate alerting. An objective is a target, a rolling window and a budget that is spent when the target is missed — and an alert that fires while the budget is going, rather than a report that says it went.

Added

Fixed

1.23.0 — 2026-08-19

Scripted synthetics. Two new check types watch a sequence rather than an endpoint: sign in, act, read back, and assert on each answer. The failures that cost money are almost never one endpoint returning 500 - they are a token endpoint that stopped issuing tokens, a create that succeeds and a read-back that cannot see it, a checkout that returns 200 with an empty body. None of those is visible from one request.

Added

Unchanged

1.22.1 — 2026-08-18

The night scheme, recut in Vigil's own charcoal - warm grays from the porcelain's cloth, nothing pure black, states a step quieter. And a rule the first cut broke is now enforced: a dark page never shows a light screen.

Fixed

1.22.0 — 2026-08-18

A night scheme. Light stays the approved porcelain, and under a dark system preference the product and this site render the same structure on GitHub Primer's dark palette, switching live when the system does.

Added

Fixed

1.21.0 — 2026-08-12

Capacity, and a way to tell whether monitoring is running. The release started as high availability and the measurements turned it into something narrower and more useful.

Fixed

Added

1.20.0 — 2026-08-12

Planned work, and a written answer to “why did nobody get a message”. Two features that had to arrive together, because a maintenance window that does not participate in routing is a window that silences one of the three audiences and looks like it worked.

Added

Changed

1.19.0 — 2026-08-12

The migration system, and an audit of what the product claims about itself. Two of the defects below are the kind that make a monitoring tool report the wrong thing, and one of those reported it as healthy.

Added

Fixed

Changed

1.18.3 — 2026-08-04

Findings from an adversarial security review of the whole system. Four defects, three of them on paths that are reachable without an account.

Fixed

Changed

1.18.2 — 2026-08-04

An incident transition and the record that its consequences are owed now commit together. Everything below follows from that one change.

Fixed

Changed

1.18.1 — 2026-08-04

A flaky test turned out to be hiding six real ones.

Fixed

Changed

1.18.0 — 2026-08-04

A delivery engine that survives a provider being down for an afternoon, and shows you every attempt it made.

Added

Fixed

Notes

1.17.0 — 2026-08-03

Twenty-five providers Vigil implements, and a bridge that is honest about not being one.

Added

Fixed

Notes

1.16.0 — 2026-08-03

As many destinations as you have places to send.

Added

Changed

1.15.0 — 2026-08-03

Ten ways to be told, and one pipeline that does the telling.

What this release does not claim. Every provider runs on your own credential — a webhook URL from your Slack, a bot from your BotFather, your own mail server. Vigil funds no relay, hosts no gateway, and stores nothing it could not show you: channel secrets are encrypted at rest, never returned to a browser, and scrubbed from every recorded error. Delivery stays at-least-once, said plainly, because nothing that hands a message to a third party can honestly promise better.

Added

Changed

1.14.0 — 2026-08-02

Probes you host, and a quorum over what they say.

What this release does not claim. Vigil hosts nothing: no regions, no relay, no managed probes, no recurring cost. A probe is a container you run on hardware you already pay for, and the location field says what you typed because there is no way for Vigil to check it. Two agents on one machine are not two locations, and the app says so where you assign them.

Added

Fixed

1.13.0 — 2026-08-01

Trust, and a migration path off Uptime Kuma.

Both editions are cut from this commit. The work here is mostly not features: it is the difference between a number this product publishes and a number it can prove. Where the two disagreed, the number changed — including the uptime percentage on every dashboard.

What this release does not claim. 500 ms is a configurable check interval, not a detection time and not a notification time. Cadence holds exactly to 100 monitors on one worker; at 1000 it does not, and the run that failed is published alongside the ones that passed.

Added

Changed

Fixed

1.12.0 — 2026-07-28

Eight check types, and two bugs that only existed once they did.

This is not the migration release. The importer, the notification channels and the one-line install are not in it, and the four were meant to ship together — an importer that lands two hundred monitors and drops the user's routing is a demo, not a migration. What is here stands on its own and waits for the rest.

Added

Fixed

1.11.1 — 2026-07-28

Packaging fix for the first generated Core release, and the reason both editions are on 1.11.1 rather than 1.11.0.

Fixed

1.11.0 — 2026-07-28

Both editions are cut from this commit. Vigil Core 1.11.0 is the same monitor, published from the same tag, and stays in lockstep from here.

Both editions now build from this tree. npm run gate strips the commercial code and proves what is left: Core typechecks, passes 455 tests, builds, migrates onto an empty Postgres with no commercial table or column present, and serves. It exits 0.

No behaviour changed in the commercial edition. 531 tests, up from 525.

Added

Changed

Fixed

Licence and honesty

No product code changed. This entry exists because the licence did, and because several published claims about the free edition were false.

Licence — commercial licence 1.3

Changed — Vigil Core is now Apache-2.0

Changed — claims about Vigil Core

Added

1.10.1 — 2026-07-27

Two escalation rungs that paged the wrong person or nobody at all, and a status page that published monitors the operator had excluded from it. One additive, data-only migration (0011) that repoints escalation steps a deleted schedule left pointing at nothing.

Contains a security fix. Upgrade if you publish a status page and do not put every monitor on it — see Security below.

Fixed

Security

1.10.0 — 2026-07-27

Four new check types, thresholds measured in seconds instead of checks, and intervals that adapt. Additive migration (0010) — see docs/UPGRADE.md for the full procedure.

Contains a security fix. Upgrade if more than one person can create escalation policies, and read the first entry under Security below even if you run a single organization — one leg of it affects single-tenant installs too.

Added

Changed

Security

Fixed

1.9.3 — 2026-07-26

Patch release: removes a team-size limit nobody chose. No schema migration.

Fixed

1.9.2 — 2026-07-26

Security patch. Upgrade if you publish more than one status page from a single deployment. No schema migration.

Fixed

1.9.1 — 2026-07-11

Patch release: repository packaging and operator docs. No schema or application-code changes.

Fixed

Added

1.9.0 — 2026-07-11

Minor release: status-page subscriptions. One additive schema migration (status_page_subscribers); no change to existing pages.

Added

Fixed

1.8.0 — 2026-07-11

Minor release: notification channels, on-call schedules and escalation policies. Two additive schema migrations — on-call/escalation tables plus monitors.escalation_policy_id and incident acknowledgement columns (0007), and user.phone (0008). Existing monitors keep their current behaviour: with no policy attached, an incident still notifies all responders exactly as before.

Added

1.7.0 — 2026-07-11

Minor release: TCP/port monitoring and TLS-expiry checks. One additive schema migration (monitors.check_type, port, tls_check, tls_warn_days, tls_days_remaining); existing HTTP monitors are unaffected.

Added

1.6.0 — 2026-07-11

Minor release: status-page privacy and incident visibility. One additive schema migration (status_pages.visibility + password_hash, incident_events.internal); existing public pages are unaffected.

Added

1.5.0 — 2026-07-11

Minor release: keyword/content assertions. One additive schema migration (monitors.body_keyword, monitors.keyword_absent); existing monitors are unaffected.

Added

Fixed

1.4.2 — 2026-07-11

Patch release: recovery bookkeeping. No schema changes.

Fixed

1.4.1 — 2026-07-11

Patch release: recovery operability. No schema changes.

Added

1.4.0 — 2026-07-11

Minor release: recovery safety and learning. No schema changes.

Added

1.3.0 — 2026-07-11

Minor release: alert holding. One additive schema migration (incidents.notified_at, recovery_actions.hold_alerts); default behaviour is unchanged — alerts still fire at incident open unless a recovery action explicitly opts into holding them.

Added

1.2.0 — 2026-07-11

Minor release: automatic recovery. One additive schema migration (recovery_actions, recovery_attempts); existing behaviour is unchanged until a recovery action is configured and enabled.

Added

1.1.0 — 2026-07-10

Minor release: chat notifications. No schema changes; native webhook payloads are unchanged.

Added

1.0.1 — 2026-07-03

Patch release: deployment and UI fixes. No schema or API changes.

Fixed

1.0.0

Initial release.

Monitoring

Incidents

Status pages

Platform

Developer experience