imrprove menu drawing & fix heartbeats page bug
A patch release fixing two dashboard regressions: the Containers navigation entry on Docker Swarm hosts, and a crash on the Heartbeats page.
Bug fixes
Dashboard ? Containers stays available on Swarm hosts
Two related navigation problems are fixed:
-
Containers hidden on an empty Swarm manager. A Docker host in Swarm manager mode reports its runtime as
swarm, which filtered the Docker-only Containers link out of the sidebar ? even with no service deployed. Users were left on empty Services/Tasks views with no way back to plain container monitoring.The runtime status endpoint now exposes
service_countin the Swarm metadata, and a local Swarm with zero services is treated as also offering thedockerruntime, so Containers stays visible next to the (empty) Swarm views. The navigation switches live as services come and go, viaswarm.service_discovered/swarm.service_removedevents. -
Navigation flicker on load (#28). The runtime defaulted to
docker, so the Containers link flashed in (and Services/Tasks out) for one frame before the real runtime resolved ? the "appears and disappears in a second" behaviour. Runtime-specific navigation (Containers / Services / Tasks / Workloads / Pods) now waits until the runtime is actually known instead of flashing the default.
Heartbeats ? page no longer crashes
The Heartbeats page threw TypeError: Cannot read properties of undefined (reading 'slice') and failed to render. The frontend referenced a uuid field that the backend no longer sends ? a heartbeat's id has been its public ping token since the UUID refactor. The UI now reads the ping token from id everywhere (monitor card, Copy URL, and the detail panel), so the page renders again and the ping URLs are correct.
Upgrade notes
No configuration changes, database migrations, or API breaking changes. Rebuild the backend and frontend to pick up the fixes.