Watchflare docs
On this page

Changelog

Full release history for Watchflare Hub and Agent: new features, bug fixes, and breaking changes. Updated with every release since v0.27.0.

Hub and Agent share a single version number and are released together. Full release notes, signed binaries, and archives are published on GitHub Releases . To update your installation, see Update the Hub or Update the Agent .

v0.40.1 - 2026-07-17

Bug fixes

  • Fixed the Containers page getting stuck on “Loading containers…” when a host ran a container that exposed the same port over both TCP and UDP. Duplicate port badges crashed the table render; port badges are now deduplicated.

v0.40.0 - 2026-07-17

New features

  • systemd service monitoring: monitor Linux systemd services per host. Each host detail page gains a Services tab listing units with their state and a colour-coded freshness indicator. The agent collects over D-Bus on two cadences: a full inventory every 15 minutes and health every 30 seconds. Stopped services are pruned from the inventory.
  • Global containers view: a new Containers page in the sidebar lists every running container across all hosts in one table, with Live/Stale status based on the host, search, host/runtime/liveness filters, and a per-container detail drawer.
  • Notification categories: every notification channel and the SMTP sender now subscribes to one or more categories (Alerts, Transactional), so monitoring alerts and account messages can be routed to different destinations.
  • Account security notifications: the Hub now sends transactional notifications on account events (new login with IP and device, password change, two-factor enabled or disabled, and email address changes) to any channel or SMTP sender subscribed to the Transactional category.

Bug fixes

  • Updated the Go toolchain to 1.26.5 to incorporate the upstream crypto/tls fix (GO-2026-5856).

v0.39.1 - 2026-06-22

Bug fixes

  • Restored full metric collection for LXC containers (disk, disk I/O, network, swap, and temperature). These stopped being reported in v0.39.0 when LXC were routed to the limited container profile; LXC are now monitored as full hosts again.
  • Fixed metric values lingering in the Hosts table after a host stopped reporting them (for example a temperature that kept showing on an LXC).
  • Added a host-level indicator on an LXC’s Disk I/O, Load Average, and CPU Temperature charts, since these reflect the underlying host node (shared kernel) rather than the container.

v0.39.0 - 2026-06-20

New features

  • Pause incidents with hosts: pausing a host now also pauses its open incidents. Paused incidents are excluded from the active list and shown with a dedicated filter and badge on both the Incidents page and the host detail. Resuming a host restores normal incident handling without falsely resolving incidents, and package inventory from paused hosts is ignored.
  • Modal behavior: dialogs now lock background scrolling and close when you click outside them.

Bug fixes

  • Fixed 7-day and 30-day charts losing history and showing only recent points (continuous aggregate refresh offsets exceeded raw data retention).
  • Improved LXC detection on cgroups v2 and unprivileged agents (now via /run/systemd/container).
  • Entering an invalid 2FA code no longer logs you out (returns 403 instead of 401).
  • Dead agents are now correctly marked offline when the Hub restarts (the heartbeat cache is primed from the database on boot).
  • Improved alert and incident accuracy around host pause/resume and pending-to-online transitions.
  • Hub error messages are capitalized when displayed in the UI.

v0.38.0 - 2026-06-16

New features

  • Two-factor authentication (2FA): optional TOTP-based two-factor authentication for an extra layer of account security. Set it up from User > Account by scanning a QR code with any authenticator app (Proton Pass, Proton Authenticator, 2FAS, 1Password, etc.). You also get one-time backup codes for recovery and can regenerate them at any time. Once enabled, login requires a 6-digit code after your password.
  • Multi-channel notifications: alert notifications can now be sent through any of the 26+ services supported by Shoutrrr (Discord, Slack, Telegram, Matrix, Ntfy, Gotify, Teams, Pushover, SMTP, generic webhooks, and more). Manage channels from Settings > Notifications with a side drawer for add/edit.
  • Test before save: the channel form now validates and sends a test notification without persisting anything, so you can verify a URL before clicking “Create”.
  • Per-channel test cooldown: the Test button is rate-limited to once every 5 seconds per channel (or per URL for drafts) to prevent accidental spam.
  • Redesigned containers table: the containers view is now more compact and scannable. A runtime icon distinguishes Docker from Podman, memory shows usage at a glance, and exposed ports appear as badges. Click any row to open a detail drawer with the full breakdown.

Breaking changes

  • The SMTP_ENCRYPTION_KEY environment variable is renamed to NOTIFICATION_ENCRYPTION_KEY to reflect its broader scope (it now also protects notification channel URLs). Rename the variable in your .env before upgrading, no fallback is provided.
  • The legacy webhook_endpoints table is dropped. Existing webhook URLs are lost on upgrade because the URL format has changed (Shoutrrr style: discord://TOKEN@WEBHOOK_ID instead of the native Discord webhook URL). Re-add your channels through Settings > Notifications.

Removed

  • Native Discord, Slack, Telegram and Generic webhook senders, superseded by Shoutrrr
  • The previous Settings > Webhooks panel

v0.37.0 - 2026-06-08

New features

  • Webhook notifications: alert and resolution notifications can now be sent to Discord, Slack, Telegram, or any HTTP/HTTPS endpoint; manage multiple endpoints from Settings → Notifications; Discord, Slack, and Telegram URLs are auto-detected and receive natively formatted messages; any other URL receives a structured JSON payload

Bug fixes

  • Fixed status, start, stop, restart, and logs commands on macOS (via launchctl and Homebrew services)
  • Fixed systemd service detection and post-install messages on Linux
  • Fixed LXC container detection via /proc/1/environ on cgroups v2
  • Fixed registration installer not forwarding --token/--host/--port to watchflare-agent install
  • Default log_level in generated agent.conf is now "info" instead of being omitted
  • Upgraded Go to 1.26.4

v0.36.0 - 2026-05-27

New features

  • Logo and favicon: logo, full favicon set, and minimal meta tags added to the Hub frontend
  • Persistent update spinner: agent update dispatched from the Hub now shows a persistent spinner on the host detail page instead of a disappearing confirmation message

v0.35.0 - 2026-05-23

New features

  • Containers table: new “Containers” tab on the host detail page listing all running containers with status, health check result, exposed ports, and sortable columns; includes an inline search filter
  • Configurable notification recipient: alert notification email address can now be set independently in Settings → Notifications, separate from the Hub admin account
  • Renamed “Load” to “Load Avg” in dashboard columns and alert rule labels for clarity

Bug fixes

  • Sort button styling harmonized across the Hosts, Packages, and Containers tables
  • Per-host SSE connection badge now displays correctly in the sidebar on host detail pages

v0.34.0 - 2026-05-20

New features

  • Container metrics: agent collects per-container CPU usage, memory, and network I/O for Docker, Podman, and Colima via the API socket; opt-in with --containers
  • IP address reporting: agent sends all current network interface addresses on every heartbeat; addresses are displayed in the host detail header
  • Dashboard redesign: full bento grid layout with new stat cards (CPU, memory, disk, load avg), per-metric sparklines with 1h/24h delta trends; Sparkline chart rewritten from SVG to Canvas for performance
  • Global incidents page: new /incidents route listing all active and resolved alert incidents across every host, with start/end timestamps and triggering values
  • Settings tab bar: Settings reorganized into tabs; collapsed sidebar now opens as a popover flyout instead of requiring full expansion
  • Reworked command palette: rebuilt with native keyboard navigation; fixes iOS Safari focus trap and scroll-lock issues
  • Current installed version shown in the “Latest Version” column on the Packages page for packages that are already up to date

Bug fixes

  • Hardened agent binary install: atomic replacement with os.Rename, stdlib user.Lookup instead of shell calls, correct Homebrew registration order (register → start service)
  • Widened valid temperature range; CPU thermal sensor now uses a bool sentinel to distinguish “no reading” from zero
  • Login error handling sanitized: database failures are logged server-side, and clients receive a generic 503 to prevent information leakage
  • SSE stream cleanup: removed unused per-host batch machinery and redundant host_id guards; per-host stream now correctly filters the global broadcast
  • Load average (1m/5m/15m) included in aggregated metrics snapshots and dashboard sparklines
  • Upgraded Go to 1.26.3 and golang.org/x/net to patch HTTP/2 and network-layer vulnerabilities

v0.33.1 - 2025-04-25

Bug fixes

  • Fixed SSE connection leak on host detail page: connections are now reused instead of duplicated on navigation
  • Added breadcrumb navigation on the host detail page (Hosts › hostname)
  • Updated repository URLs to watchflare-io organisation

v0.33.0 - 2025-04-19

New features

  • Agent version via SSE: the agent version is now broadcast on the first heartbeat and displayed live in the host detail header, no page refresh required
  • Automatic agent updates (Linux): self-update via systemd path unit: the Hub dispatches an update command to the agent, which downloads and applies the new binary without manual intervention

v0.32.1 - 2025-04-19

Bug fixes

  • SMTP_ENCRYPTION_KEY is now required at startup. The Hub exits with a clear error instead of silently failing when SMTP credentials cannot be decrypted

v0.32.0 - 2025-04-19

New features

  • HTTPS auto-detection: the Secure cookie flag is now set automatically based on the request context (direct TLS or X-Forwarded-Proto: https from a trusted proxy), replacing the old ENV=production heuristic
  • Extended system metrics: iowait %, steal %, swap used/total, process count, and host info (CPU model, core counts, clock speed) are now collected and displayed
  • Global packages view: new /packages page showing a deduplicated package inventory across all hosts, with filters and outdated counts
  • Per-host SSE filtering: the host detail page subscribes to a host-specific SSE stream instead of the full broadcast, reducing client-side processing
  • Outdated package detection: packages with available updates and security fixes are flagged; supported managers: apt, dnf, pacman, apk, Homebrew, npm, pnpm, pip, gem, Composer
  • log_level config field: agent log verbosity can now be set to debug, info, warn, or error in agent.conf
  • Server-side pagination for the packages endpoint

Bug fixes

  • Fixed WAL corruption: the WAL is now reset instead of blocking metrics when it contains invalid records
  • Fixed pnpm, yarn, pipx, composer, flatpak collectors (path redirects, format changes, D-Bus availability)
  • Fixed Cargo collector (CARGO_HOME redirect for unprivileged service user)

v0.31.0 - 2025-04-11

New features

  • Command dispatch via heartbeat: the Hub can dispatch commands to agents through HeartbeatResponse: force package collection, trigger agent update
  • Add host modal: the add host flow is now a modal on the hosts page instead of a separate page

Breaking changes

  • Renamed ServerHost throughout the Hub, frontend, and agent (API paths, SSE events, config keys). Existing agents must be re-registered or have their config updated if upgrading from v0.30.

v0.30.0 - 2025-04-10

New features

  • Alert system: threshold-based alerts for CPU, memory, disk, load average, and temperature, plus host offline notifications
  • Email notifications: SMTP configuration in Settings → Notifications with test email support; AES-256-GCM encrypted password storage
  • Incident history: alert incidents are stored with start/end time and triggering value; visible on each host detail page
  • Incident resolution emails: a second notification is sent when an alert resolves
  • Default alert rules: global defaults apply to all hosts; per-host rules override them

v0.29.2 - 2025-03-31

Bug fixes

  • Fixed agent self-update on Linux systems with noexec /tmp mounts
  • Fixed UPlotChart ResizeObserver race conditions and memory leaks

v0.29.1 - 2025-03-31

Bug fixes

  • Added COOKIE_SECURE environment variable to decouple cookie security from the ENV=production heuristic

v0.29.0 - 2025-03-31

New features

  • Per-sensor temperature collection with multi-curve charts
  • User display preferences: time format (12h/24h), temperature unit (°C/°F), gauge thresholds

Security & bug fixes

  • Comprehensive security and code quality audit across the entire codebase (agent and Hub)
  • Fixed agent UUID hijacking prevention during re-registration
  • Added LimitReader guards throughout the agent to bound memory usage
  • Exec timeout enforcement on all external command calls in the agent

v0.28.1 - 2025-03-22

Bug fixes

  • Fixed Linux agent install issues (ETXTBSY errors and silent service failures)
  • Fixed agent status shown as offline on initial registration
  • Fixed theme preference not applied consistently during registration

v0.28.0 - 2025-03-21

New features

  • Homebrew distribution: the agent is now available via brew install watchflare-agent (tap: watchflare-io/watchflare)
  • Agent version display: the running agent version is shown on host list and detail pages with an update badge when a newer release is available
  • Username: users can set a display username in profile settings

v0.27.5 - 2025-03-21

New features

  • Vulnerability detection for installed packages
  • Package inventory UI improvements
  • Mobile host card redesign
  • Dashboard search and filter

v0.27.4 - 2025-03-19

New features

  • Additional dashboard columns: Load Average, Network I/O, Temperature
  • Actions dropdown in host table replaced with inline controls

Bug fixes

  • SSE broadcast optimization for metrics charts

v0.27.3 - 2025-03-16

Bug fixes

  • Host detail header redesign with improved mobile charts
  • Agent tick alignment corrections

v0.27.2 - 2025-03-15

Bug fixes

  • Agent metrics aligned to wall clock boundaries for consistency

v0.27.1 - 2025-03-15

Bug fixes

  • Comprehensive codebase audit (42 bugs addressed)
  • Chart gap detection threshold improvements

v0.27.0 - 2025-03-14

New features

  • CI/CD with GoReleaser: automated release pipeline producing signed binaries and archives for Linux (amd64/arm64) and macOS (amd64/arm64)
  • Docker container metrics: per-container CPU, memory, and network I/O via the Docker API socket (opt-in with --containers)
  • uPlot charts: all metric charts migrated from SVG (layerchart) to Canvas (uPlot), fixing Firefox OOM on host detail pages with many series
  • Clock desync detection: the gRPC interceptor detects agent clock drift and shows a warning banner on the host detail page
  • Distroless Docker image: production Hub container uses a minimal Debian-based distroless image

Note

Versions prior to v0.27.0 were internal development releases. The public release history starts at v0.27.0.