26.10.2
LatestA controller that imported nothing, quietly
Every fix in this release was found by running 26.10.1 against real hardware rather than by reading code. The most serious one had been breaking device discovery for every controller type without reporting it: the task that starts a discovery crashed before contacting anything, while a separate health check kept marking the controller connected with a fresh last-sync time and no error. The result was a controller that looked healthy and had never imported a single device.
Upgrading: Rebuild and restart. There are no database migrations and no configuration changes. If a controller has been showing devices you did not expect to be missing, run a discovery after upgrading.
- NewDisabling a module now actually closes its endpoints. Previously the toggle hid the navigation and every route of a disabled module stayed callable with valid credentials. Only an explicit off refuses; an organization that never recorded a choice is still served, because treating absence as denial would lock it out of the whole product.
- FixedPressing Disable did nothing for a module nobody had explicitly enabled, which is most of them. The toggle now records the decision.
- FixedTrueNAS write support was under-reported in the product for two months: the badge said mock-tested while the storage write path had been validated against a real appliance. It now reads partial.
- FixedDevice discovery crashed before contacting any device, for every controller type, and reported itself as healthy while doing so.
- FixedA newly created site did not appear when adding a device, hypervisor or NVR for up to five minutes.
- FixedAsking a camera for its RTSP URL returned a server error for every device.
- FixedThe Omada Open API integration had never worked; its token, site-list and introspection calls all failed on their first line.
- FixedPointing a vendor-specific endpoint at a controller of another vendor, or asking for a feature the firmware does not implement, returned a server error instead of saying which.
- FixedThree VPN endpoints took over twelve seconds each whenever NetBird is not configured, which is the default, so the VPN page appeared frozen.
- FixedRequesting an import session, recording or camera setting that does not exist returned a server error instead of not-found.
- FixedDevices could be stored with a status the rest of the product does not understand, so a healthy appliance counted as offline.
- FixedFirmware showed as unavailable for devices whose version had already been collected, and Proxmox node versions were never stored.
- FixedTrueNAS synchronisation failed while its own controller page reported a successful connection.
- FixedTailscale could not start inside the API container, whose filesystem is read-only by design.
- NewAI provider model lists are now fetched from the provider with your own API key, so the picker shows the models that key can actually call.
- FixedThe metrics profile could not be built from a published release, because a lockfile carrying a critical dependency pin was silently dropped on the way out. A release gate now fails instead of publishing a tree that cannot build.
- FixedThe metrics profile was missing from the Max tier preset, so an enterprise install evaluated no alert rules at all.
- DocsThe example environment file documented four TLS and port settings that nothing reads, and omitted the four that work.