Skip to content

v0.2.10

Choose a tag to compare

@github-actions github-actions released this 18 Jun 16:07
e18c955

We're excited to announce the release of chmonitor v0.2.10! In just one day, our team delivered 8 impactful commits and 34 review comments. With contributions from 2 dedicated developers, including our star contributor, @github-actions[bot], who led the way with insightful feedback, this release is a testament to our commitment to enhancing your ClickHouse monitoring experience. Get ready for improved functionality and a more seamless installation process!

✨ Features

  • Serve the chart repository via Cloudflare Pages at charts.chmonitor.dev for easier access and reliability.

🐛 Fixes

  • Ensure the /api/healthz endpoint is properly bounded and includes parameterized chart probes with dual-runtime guard.
  • Make the chart-releaser idempotent by skipping existing releases during deployment.
  • Fix the bootstrap process for the gh-pages branch on the first chart release to ensure successful initial deployments.
  • Remove the unnecessary Pages-enable step that consistently caused

📊 Release recap

  • 📦 8 commits across 8 pull requests
  • 🗓️ Shipped over 1 day — pace ~8.0 commits/day
  • 🌞 8 daytime · 🌙 0 night-time commits
  • 👥 2 contributors
  • 💬 34 comments back and forth across reviews
  • 🤖 5 AI agents involved
  • 🏆 Shoutout to @github-actions[bot] — 12 comments, 0 code reviews, 0 approvals

🐳 Docker image

This release is published to the GitHub Container Registry as ghcr.io/duyet/clickhouse-monitoring:0.2.10.

docker pull ghcr.io/duyet/clickhouse-monitoring:0.2.10
docker pull ghcr.io/duyet/chmonitor:0.2.10

Pin it in your own Dockerfile:

FROM ghcr.io/duyet/clickhouse-monitoring:0.2.10

🔁 Full changelog

Compare: helm-chmonitor-0.2.9...v0.2.10

Built from commit e18c955 on 2026-06-18T16:12:22.397Z · summary by anyrouter.

🚚 Migration — upgrading to v0.3 (Next.js → TanStack Start)

v0.3 switches the runtime app from the legacy Next.js dashboard to
dashboard-tsr (TanStack Start).
The ClickHouse connection vars are
unchanged, but client-side (NEXT_PUBLIC_*) vars are renamed to VITE_*
and server auth moves to CHM_*. The Docker entrypoint changed too.

What changed

Concern v0.2 (Next.js) v0.3 (TanStack Start)
Client env prefix NEXT_PUBLIC_* VITE_* (build-time inlined)
Auth provider (client) NEXT_PUBLIC_AUTH_PROVIDER VITE_AUTH_PROVIDER
Clerk key (client) NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY VITE_CLERK_PUBLISHABLE_KEY
Conversation DB flag NEXT_PUBLIC_FEATURE_CONVERSATION_DB VITE_FEATURE_CONVERSATION_DB
Auth provider (server) derived from NEXT_PUBLIC_AUTH_PROVIDER CHM_AUTH_PROVIDER (none|clerk|proxy, wins on server)
Docker entrypoint node server.js (OpenNext standalone) node server/index.mjs (Nitro node-server)
ClickHouse vars CLICKHOUSE_HOST/USER/PASSWORD/NAME unchanged
Secrets CLERK_SECRET_KEY, etc. unchanged (still server secrets)

The old NEXT_PUBLIC_* names still work as a compatibility fallback — the
rename is recommended but not required, nothing breaks if you skip it. Client
VITE_* vars are build-time inlined — set them when building the image /
Worker, not only at runtime. Server vars (CLICKHOUSE_*, CHM_*, *_API_KEY)
are read at runtime as before and are unchanged.

Full per-platform steps: see Migrate to v0.3.

Paste this into any AI assistant to migrate your config

You are migrating a chmonitor deployment from v0.2 (Next.js) to v0.3 (TanStack Start).
Here is my current environment (.env / docker-compose / wrangler / k8s manifest):

<PASTE YOUR ENV HERE>

Rewrite it for v0.3 applying EXACTLY these rules, and output the migrated config
plus a short list of what you changed:

1. Rename every client var prefix NEXT_PUBLIC_ -> VITE_. Specifically:
   NEXT_PUBLIC_AUTH_PROVIDER          -> VITE_AUTH_PROVIDER
   NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY  -> VITE_CLERK_PUBLISHABLE_KEY
   NEXT_PUBLIC_FEATURE_CONVERSATION_DB-> VITE_FEATURE_CONVERSATION_DB
   (any other NEXT_PUBLIC_X -> VITE_X)
2. Add server-side auth var CHM_AUTH_PROVIDER (none|clerk|proxy) mirroring the
   client provider. It is authoritative on the server; keep VITE_AUTH_PROVIDER too
   so the browser bundle agrees.
3. Do NOT rename server vars: CLICKHOUSE_HOST, CLICKHOUSE_USER, CLICKHOUSE_PASSWORD,
   CLICKHOUSE_NAME, CLICKHOUSE_MAX_EXECUTION_TIME, CLERK_SECRET_KEY, *_API_KEY — keep as-is.
4. VITE_* vars are build-time inlined: ensure they are present at image/Worker BUILD time
   (Docker build-args or CI build env), not only at container runtime.
5. If this is a Docker deployment, change the container start command from
   `node server.js` to `node server/index.mjs`. Port 3000 and the /api/healthz
   healthcheck are unchanged.
6. Flag anything that has no v0.3 equivalent instead of silently dropping it.

0.2.10 (2026-06-18)

✨ Features

  • agent: add AgentState as a conversation-history backend option (#1673) (9080602)
  • agent: add scatter/radial/bar-list chart types to chat visualization (#1658) (a9b8a3f)
  • agent: expand skill library with 9 new skills (#1655) (3accc86)
  • agent: route AnyRouter upstream through @anyr/ai-sdk-provider (#1682) (eec305e)
  • agent: route prod conversations to AgentState backend (#1731) (cf15bbb)
  • auth: add SSO/SAML scaffold (enterprise-gated, community inert) (#1700) (c948e3f)
  • brand: flatten chmonitor mark across landing, docs & dashboard (#1661) (5277eec)
  • brand: use chmonitor mark in host switcher (#1662) (7873e44)
  • ch-capabilities: add capability-diff report formatter (Plan 10c offline) (#1724) (ff6f7da)
  • ch-compat: add capability discovery + diff harness (#1703) (e7b279d)
  • charts: redesign query activity heatmap as github-style year calendar (5f9f137)
  • ci: add Claude Code GitHub Workflow (#1664) (08f4ea4)
  • deploy: add Railway/Render/Fly one-click templates (#1708) (e61d41c)
  • docs: generate ClickHouse platform support matrix (#1702) (a7d1deb)
  • docs: redirect /docs to docs.chmonitor.dev, remove in-app reader (#1663) (6eea45b)
  • edition: add open-core edition module (default community, fail-open) (#1690) (cc78c22)
  • health: redesign Health Summary with severity banner, filters & sparklines (#1680) (24d6765)
  • helm: publish chart to OCI and GitHub Pages on release (8636352)
  • helm: serve chart repo via Cloudflare Pages at charts.chmonitor.dev (#1747) (a5c5d1e)
  • landing: add chmonitor logo system + /brand page (#1660) (77d15d3)
  • menu: surface 5 orphaned pages in navigation (#1735) (762d915)
  • overview: add multi-disk Disk Usage breakdown card (#1674) (f1fafa1)
  • overview: break Query Activity Heatmap into compact per-month blocks (#1725) (d491024)
  • overview: icons on heatmap metric pills, compact KPI cards, hidden scrollbar (#1727) (93eae72)
  • overview: move query activity heatmap to top, full width (#1668) (d6d4876)
  • overview: redesign Query Activity Heatmap as multi-metric full-width banner (#1681) (0dc0a36)
  • overview: restyle backup size card empty state (#1677) (fea30f7)
  • overview: restyle disk size card to match storage redesign (#1675) (a30082c)
  • overview: restyle storage tab — partition health stat-triad, RankBars, grid (#1678) (b48dfb6)
  • query-config: add clickhouseSettings to declarative schema; migrate tables-overview + stack-traces (#1717) (c940031)
  • query-config: add declarative config loader behind CHM_CONFIG_SOURCE (default ts) (#1689) (43c1d31)
  • query-config: add declarative config schema + validator (#1685) (91f3837)
  • query-config: declarative docs as plain string + migrate query-cache/merge-performance (#1718) (c875dc7)
  • query-config: declarative expandable spec, migrate settings/users (#1728) (d119b03)
  • query-config: declarative permission field + migrate query-detail/mergetree-settings/metrics (#1721) (640ea18)
  • query-config: declarative rowStyle (compiles to rowClassName) + migrate kafka-consumers (#1719) (e3d82e5)
  • query-config: migrate explorer/ domain to declarative catalog (behind flag) (#1693) (63595e5)
  • query-config: migrate keeper/ domain to declarative catalog (behind flag) (#1694) (2e555d0)
  • query-config: migrate logs/security/anomaly/merges domains to declarative (behind flag) (#1697) (dbe6de1)
  • query-config: migrate more/ domain to declarative catalog (behind flag) (#1695) (3d86388)
  • query-config: migrate part-info/projections/user-processes to declarative catalog (#1716) (a6c133e)
  • query-config: migrate part-log + mutations to declarative rowStyle (#1720) (26dd40c)
  • query-config: migrate queries/ domain to declarative (behind flag) (#1696) (2996fca)
  • query-config: migrate system/ domain to declarative catalog (behind flag) (#1691) (4507be8)
  • query-config: migrate tables/ domain to declarative catalog (behind flag) (#1692) (ba5ea86)
  • query-config: resolve declarative catalog in registry behind CHM_CONFIG_SOURCE (default ts) (#1699) (9a545ae)
  • rbac: add RBAC scaffold (community all-access, fail-open) (#1698) (1d54595)
  • telemetry: add opt-in daily instance ping (dark by default) (#1688) (964f6b3)
  • telemetry: add opt-in telemetry core (off by default) (#1683) (87b6de0)
  • telemetry: capture deploy target + ClickHouse version/flavor dimensions (#1686) (6ac19ce)
  • telemetry: wire activation events + define activation metric (#1684) (9a3137e)

🐛 Bug Fixes

  • agent: separate reasoning & tool blocks, local grouping, auto-collapse (#1657) (e20b996)
  • charts: degrade optional chart with missing table to empty 200 (#1733) (ef5161c)
  • charts: mount charts eagerly to stop scroll-triggered skeleton flashing (dd398dc)
  • charts: stop disks-usage query OOM by pre-filtering metrics (#1736) (8c2e920)
  • ci: publish chmonitor multi-arch manifest on push to main (#1751) (36ffe49)
  • conversation-store: widen AgentState list scan to keep older history (#1737) (69ec855)
  • dashboard: responsive audit — min-w-0 on about FeatureCard (#1666) (65fc2e6)
  • data-table: contain horizontal scroll within table on mobile (#1670) (e58ca6e)
  • healthz: add /healthz route and fix k8s probe crash loop (e3886b6)
  • healthz: add /heathz typo alias sharing the same handler (47cbed4)
  • healthz: bound /api/healthz ping + parameterize chart probes + dual-runtime guard (#1749) (67b49c8)
  • helm: bootstrap gh-pages branch on first chart release (#1745) (b676241)
  • helm: drop dead Pages-enable step that 403s every run (#1746) (c4ff1d6)
  • helm: skip existing releases so chart-releaser is idempotent (#1748) (b05072c)
  • insights: add auto-rows to charts grid to prevent blank space (#1671) (047648a)
  • insights: align card title padding between skeleton and loaded states (#1667) (35c8a3c)
  • insights: give charts-section grid definite row height (7e70f1d)
  • landing: correct stale OpenNext deploy copy on the marketing page (#1714) (5ba0eb9)
  • overview: remove stray tab strip scrollbar (#1665) (b4e8d7c)
  • shell: resolve app-shell Lighthouse a11y failures (aria, label, skip-link) (#1734) (200cdc7)
  • ui: explorer tree a11y — name toggle buttons, fix list nesting (#1740) (f09751d)
  • ui: give data-table Select triggers accessible names (#1741) (405e9bf)
  • ui: give Progress bars accessible names (aria-progressbar-name) (#1743) (bfe4e1e)
  • ui: host switcher accessible name matches visible label (WCAG 2.5.3) (#1742) (ea9ae2f)
  • ui: name the icon-only query-row action links (a11y link-name) (#1739) (786f2e0)
  • ui: raise contrast of data-table "N records" count (WCAG AA) (#1744) (492ca08)
  • ui: raise contrast on muted labels and the "New" badge (WCAG AA) (#1738) (8f64428)

⚡ Performance

  • health: batch health checks into one request + show cached values instantly (#1669) (9be95d8)

♻️ Refactoring

  • agent: trim tools to lean primitives (63 to ~18) (#1656) (6879bf1)