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/tlsfix (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_KEYenvironment variable is renamed toNOTIFICATION_ENCRYPTION_KEYto reflect its broader scope (it now also protects notification channel URLs). Rename the variable in your.envbefore upgrading, no fallback is provided. - The legacy
webhook_endpointstable is dropped. Existing webhook URLs are lost on upgrade because the URL format has changed (Shoutrrr style:discord://TOKEN@WEBHOOK_IDinstead 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 > Webhookspanel
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, andlogscommands on macOS (vialaunchctland Homebrew services) - Fixed systemd service detection and post-install messages on Linux
- Fixed LXC container detection via
/proc/1/environon cgroups v2 - Fixed registration installer not forwarding
--token/--host/--porttowatchflare-agent install - Default
log_levelin generatedagent.confis 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
/incidentsroute 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, stdlibuser.Lookupinstead 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_idguards; 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/netto 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-ioorganisation
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_KEYis 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
Securecookie flag is now set automatically based on the request context (direct TLS orX-Forwarded-Proto: httpsfrom a trusted proxy), replacing the oldENV=productionheuristic - 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
/packagespage 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_levelconfig field: agent log verbosity can now be set todebug,info,warn, orerrorinagent.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_HOMEredirect 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
Server→Hostthroughout 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/tmpmounts - Fixed UPlotChart ResizeObserver race conditions and memory leaks
v0.29.1 - 2025-03-31
Bug fixes
- Added
COOKIE_SECUREenvironment variable to decouple cookie security from theENV=productionheuristic
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
LimitReaderguards 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.