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.
Unreleased
Targeted as 1.0.0 — the first public release. Everything below ships in the
initial open-source build. At tag time this heading becomes [1.0.0] - <date>.
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/interactablecontrols driven by a$userGroupssource. - 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.
/wsruntime channel with a defined handshake, server/client message set, async-action result correlation, andconfig_changedpropagation. - 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 controllable via the
shell.attributionproject setting (hidden/customfor white-label deployments); it is a plain setting, not 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
Secureflag 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 LICENSE.txt, LICENSE-AGPL.txt, and COMMERCIAL.md.
- The
asyncua(LGPL-3.0) andzeroconf(LGPL-2.1) runtime dependencies are shipped loose (replaceable) in binary builds, with the LGPL texts and a written source offer bundled alongside.