chore(docs): include v4.1.1 changelog with new features and improvements

This commit is contained in:
Raj Nandan Sharma
2026-06-19 23:23:22 +05:30
parent a9e06ae9f7
commit c43b4ef863
2 changed files with 55 additions and 0 deletions
+4
View File
@@ -311,6 +311,10 @@
"group": "v4.x",
"collapsible": false,
"pages": [
{
"title": "v4.1.1",
"content": "v4/changelogs/v4.1.1"
},
{
"title": "v4.1.0",
"content": "v4/changelogs/v4.1.0"
@@ -0,0 +1,51 @@
---
title: v4.1.1 Changelog
description: See what's new in Kener v4.1.1, including new features, improvements, and bug fixes
---
## New features {#new-features}
### Display events inline {#display-events-inline}
A new **Display Events Inline** toggle in **Manage → Site Configurations** controls how active events surface on the public site.
- **On** — ongoing incidents, ongoing maintenances, and upcoming maintenances render as inline sections directly on the home, custom, and monitor pages, alongside a dedicated events list.
- **Off** (default) — events stay in the notifications popover in the top bar.
The two surfaces are mutually exclusive: when inline events are enabled the notifications popover is hidden so events aren't shown twice.
### Public RSS feeds {#rss-feeds}
Kener now publishes a public **RSS 2.0** feed of incidents and scheduled maintenance, so users can subscribe without email.
- Routes: `GET /rss.xml` (default page), `GET /{page_path}/rss.xml` (named page), and `GET /monitors/{monitor_tag}/rss.xml` (single monitor).
- The public layout emits a `<link rel="alternate" type="application/rss+xml">` in `<head>`, scoped to the current view, so browsers and readers auto-discover the right feed.
- An RSS icon button appears next to the Subscribe / share controls, gated on a new **`showRssFeed`** option (default on) under **Manage → Site Configurations → Monitor Sub Menu Options**.
- Coverage mirrors the events page — past (last 90 days) and upcoming maintenance windows — and site-wide maintenances show as `Affected: All monitors`. Responses are cached for 5 minutes.
## Improvements {#improvements}
### Path-based heartbeat URLs {#heartbeat-url-format}
Heartbeat monitors now use a path-separated endpoint, `/ext/heartbeat/{tag}/{secret}`, instead of the old `{tag}:{secret}` form. Legacy colon-style URLs are automatically rewritten, so existing heartbeats keep working without changes. See [Heartbeat Monitor](/docs/v4/monitors/heartbeat).
### "Started" column on incidents {#incident-started-column}
The **Manage → Incidents** table gained a **Started** column showing when each incident began, and date formatting across the incidents UI is now standardized for consistent display in cells and tooltips.
### Isolated web and worker database pools {#db-pool-isolation}
Background jobs can no longer starve page loads of database connections. The connection pool is split by execution context (routed via `AsyncLocalStorage`):
- **Web pool** — `DATABASE_POOL_MAX` (default 10) — serves HTTP requests.
- **Worker pool** — `DATABASE_WORKER_POOL_MAX` (default 5, new) — serves schedulers and BullMQ workers.
This fixes `KnexTimeoutError: Timeout acquiring a connection` errors seen when monitor bursts overlapped page loads. See [Environment Variables](/docs/v4/setup/environment-variables).
### Faster monitor-bars aggregation {#monitor-bars-index}
Added a covering index `(monitor_tag, timestamp, status, latency)` on `monitoring_data` so the daily status aggregation behind the status-page bars is served entirely from the index. This removes per-row table lookups and cuts multi-second queries on large instances (~1M+ rows) to near-instant.
## Bug fixes {#bug-fixes}
- **Redis writes recover after replica failover.** Clients now reconnect on `READONLY` errors, so after a primary failover writes resume without restarting Kener. Point `REDIS_URL` at the writer/primary endpoint when your provider exposes separate reader and writer URLs.