NEXT HMIDocs
GitHub
Project / Changelog

Changelog

All notable changes to NEXT HMI are documented here.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. While the project is pre-1.0, minor versions may include breaking changes; these are always called out under a Changed or Removed heading.

[0.0.1-rc1] - 2026-08-18

Release candidate toward 1.0.0 — the first public release. Everything below ships in the initial open-source build.

Added

  • Browser-based HMI runtime. Self-hosted operator panels that run in any modern browser — no per-seat client install. Connects to PLCs over OPC-UA.
  • Manager + per-project instance model. A single manager front door supervises independent project instances behind a reverse proxy, each with its own runtime state and lifecycle.
  • In-browser page editor. Build and lay out dashboards from the runtime itself — widgets, bindings, and pages are authored without leaving the app.
  • Widget system. Built-in widget library plus a custom-widget SDK with a build pipeline, authoring rules, and a schema contract for third-party widgets.
  • Property value model. Typed property values with $-wrapped sources ($var, and friends), an OPC-UA type-collapse layer, and consistent resolution/coercion across components.
  • OPC-UA connectivity. Client pool with a self-signed client certificate generated on first secured connect; secure-config datasources.
  • Alarms, recipes, and historian. Alarm handling, recipe management, and historical data — all in the single open-source build, with no feature paywall.
  • Widget visibility model. Per-widget visible/interactable controls driven by a $userGroups source.
  • Theming. Theme token catalog and pipeline with hmi-* / cfg-* conventions and shared UI primitives; unset values fall through to theme tokens, set values override.
  • WebSocket protocol. /ws runtime channel with a defined handshake, server/client message set, async-action result correlation, and config_changed propagation.
  • Manager-to-manager LAN transfer. Peer transfer of projects between managers on a local network, with a trust model and collision policies.
  • REST API for the manager and project-instance apps.
  • MCP server exposing a workspace tool catalog with per-project gating.
  • Runtime performance tooling. Performance HUD (Ctrl+Alt+P), list windowing, and granular per-variable subscriptions.
  • HMI boot screen, carrying the product logo, version, load progress and the AGPL-3.0 attribution notice on every load of the runtime, held for a minimum of two seconds. The notice is edition-bound — no project setting hides it; the commercial build drops it and adds a shell.bootLogo setting for white-label branding, which the open-source build ignores. Neither is a runtime licence check.
  • Deployment targets. Multi-arch Docker image (linux/amd64 + linux/arm64) published to GHCR, and portable macOS / Windows binaries — all attached to each tagged release by CI.
  • Documentation set covering architecture, data formats, the value model, the WebSocket protocol, theming, custom widgets, the REST API, peer transfer, MCP, deployment, and a threat model.

Security

  • No CORS middleware ships by design; the runtime is same-origin and intended to sit behind a reverse proxy on an OT network or VPN, never on the public Internet. See SECURITY.md and the threat model in docs/dev/operations/deploy.md.
  • Session cookies set the Secure flag when served over HTTPS.
  • The page/widget editor is a privileged, code-execution-capable role (server-side file writes and arbitrary browser JS); documented in docs/dev/reference/custom-widgets.md.

Licensing

  • Released under AGPL-3.0. See LICENSING.md, LICENSE, and COMMERCIAL.md.
  • The asyncua (LGPL-3.0) and zeroconf (LGPL-2.1) runtime dependencies are shipped loose (replaceable) in binary builds, with the LGPL texts and a written source offer bundled alongside.