From c43b4ef863a20854c4793cde7e25630c098d503d Mon Sep 17 00:00:00 2001 From: Raj Nandan Sharma Date: Fri, 19 Jun 2026 23:23:22 +0530 Subject: [PATCH] chore(docs): include v4.1.1 changelog with new features and improvements --- src/routes/(docs)/docs.json | 4 ++ .../docs/content/v4/changelogs/v4.1.1.md | 51 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/routes/(docs)/docs/content/v4/changelogs/v4.1.1.md diff --git a/src/routes/(docs)/docs.json b/src/routes/(docs)/docs.json index 773039a7..db919e73 100644 --- a/src/routes/(docs)/docs.json +++ b/src/routes/(docs)/docs.json @@ -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" diff --git a/src/routes/(docs)/docs/content/v4/changelogs/v4.1.1.md b/src/routes/(docs)/docs/content/v4/changelogs/v4.1.1.md new file mode 100644 index 00000000..7f45dfca --- /dev/null +++ b/src/routes/(docs)/docs/content/v4/changelogs/v4.1.1.md @@ -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 `` in ``, 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.