v4.0.22 Changelog
See what's new in Kener v4.0.22, including new features, improvements, and bug fixes
New features
Note
The migration for sqlite3 was broken in the release 4.0.21. So it has been fixed in this release.
Multi-monitor alert configurations
Alert configurations can now be applied to multiple monitors at once. Previously each alert config was tied to a single monitor — creating the same alert for several monitors required duplicating it.
- A searchable multi-select UI replaces the single-monitor dropdown when creating or editing alerts.
- Alert logs show which specific monitor triggered each alert.
- Existing single-monitor configs are automatically migrated to the new schema.
New database migration adds a monitor_alerts_config_monitors junction table and a monitor_tag column on monitor_alerts_v2 to track per-monitor trigger history.
Upcoming maintenances on status pages
Upcoming scheduled maintenance events are now displayed on the home page, custom page routes, and individual monitor detail pages. This gives visitors advance notice of planned work.
Visibility is controlled by the existing Event Display Settings → Maintenances → Upcoming toggle in Manage → Site Configurations.
Maintenance subscriber notifications
Maintenance events can now trigger subscriber notifications at each lifecycle stage: created, reminder, started, and ended. Configure which events send notifications in Manage → Site Configurations → Maintenance Notification Settings.
| Event type | When sent | Default |
|---|---|---|
| Created | New event is generated | Off |
| Reminder | Event enters READY state | On |
| Started | Event enters ONGOING state | On |
| Ended | Event enters COMPLETED state | On |
The reminder buffer (default 1 hour) controls how far before the start time the READY transition and reminder notification happen.
Analytics documentation
A new Analytics documentation page covers all seven supported providers — Google Analytics, Plausible, Mixpanel, Amplitude, Microsoft Clarity, Umami, and PostHog — with configuration tables, setup instructions, and ad-blocker proxy tips.
Improvements
Google Tag Manager transport URL and script host
The Google Tag Manager integration now supports two new optional fields:
- Transport URL — custom endpoint for analytics hits (useful for bypassing ad blockers with a proxy like Saki).
- Script Host — custom URL for the gtag.js script instead of the default
googletagmanager.com.
Configure both in Manage → Analytics Providers → Google Analytics.
Improved TCP and API monitor error handling
- TCP monitors now collect all host connection failure messages and report them as a combined error.
- API monitors now create an HTTPS agent with keep-alive and socket pooling, distinguish timeout errors more accurately (
ECONNABORTEDvs message-based), and truncate eval errors to 200 characters.
"Included Monitors" shows count
The group monitor popover and related components now display the number of included monitors — e.g. "Included Monitors (5)" — making it easier to see group size at a glance. All locale files updated with the %count placeholder.
Czech and Slovak translation updates
Updated Czech (cs.json) and Slovak (sk.json) translations with new and corrected strings.
Bug fixes
- Fixed custom CSS and custom fonts documentation guide links pointing to incorrect URLs.
- Removed unused
<svelte:head>elements and stale metadata from documentation layouts. - Removed
knip.json— the project now uses default knip configuration.
Security
Patched critical and high-severity vulnerabilities by adding overrides for fast-xml-parser, rollup, undici, minimatch, devalue, dompurify, cookie, and mailparser. Updated @sveltejs/kit to ^2.53.3 and svelte to ^5.53.5.