A router that refuses you now says why. The connection test had one answer for every failure, and it named the password first. That sent people down the wrong path: a GL.iNet owner changed his password twice, but his OpenWrt never exposes the interface we talk to, so no password could ever have worked. Unreachable, no endpoint, refused, no data and no brand matched are separate answers now. OpenWrt reports its own diagnosis; the other brands fall back to a reachability probe, which at least separates "no answer at all" from "answered and said no". A guessed diagnosis would be worse than an honest coarse one.
Four brands need the router opened up before anything can connect, and the picker now says so on the spot: ubus for OpenWrt, an API key rather than an account password for UniFi, the applications switch on a FRITZ!Box, www-ssl on MikroTik. The other thirteen show nothing rather than an empty box. The help text also stopped selling the feature short, and stopped promising switch ports for every brand, because only UniFi reports them. What you get is devices the scan cannot reach at all (sleeping phones, anything behind a firewall, other VLANs), the names from the router's DHCP table, and whether an address is a lease or a fixed reservation.
The phone says the same thing in the same words. It has its own router client and its own catalogue, so it had kept answering "check the credentials or the router type" for every failure. Someone holding both devices would have been told two different stories about one router.
All seventeen brands now have recorded answers on file, replayed through the Go and the Dart implementation alike, and that turned up three defects. A Peplink client that is not connected no longer counts as present. A Netgear device whose MAC cannot be read no longer disappears from the list. And a UniFi controller on Network 9.x reports the switch port it actually uses, rather than the field older firmware used.
Threshold checks work like every other setting now. They used to sit idle for a full monitor interval after each restart. At a fifteen-minute cadence that is fifteen minutes of a check which looks armed, measures nothing, and cannot raise the alarm it exists for. They also had a Save button nothing else has, so an edit you typed but did not confirm was thrown away, in the one place where losing an edit means an alarm quietly stops watching. Fields save as you leave them now, and the status line is read out to a screen reader.
A check also records what it measured. The result used to be evaluated and dropped, so a check row sat at a dash with a grey bar forever and reported itself up whatever it found. And in the monitoring list a check no longer poses as a device: someone asked about a device called Test that does not exist on any network, because a check pointing at localhost sat between wlan0 and a NAS, carrying a device icon and nothing to mark it. Checks have their own group now, their own icon, and their type written next to the name, in text, because colour alone reaches neither a screen-reader user nor anyone with a colour deficiency.
Desktop and server are 1.7.9, the mobile apps 1.3.9. Existing licences carry over; nothing in the data formats changed.