Bug Fixes
- #156 — MQTT HASS sensor preserved during container recreate (
replacementExpectedflag prevents canonical topic deletion during Docker recreate race) - #183 — Container actions route by ID instead of display name (fixes cross-host Update All collision and
-oldcascade) - #192 — Digest-pinned containers detect updates via
dd.watch.digest=true+ Docker Hub sha256 tag support - #208 — Updates Available widget 6-row cap regression removed (+ regression tests)
- #217 — Host Status widget rows top-aligned to prevent scroll shift at scroll edge
- #221 — Human-readable local timestamps (
translateTime: 'SYS:HH:MM:ss.l') - #222 — Dashboard edit-mode drag restricted to
.drag-handle, restoring mobile scroll - #228/#229 —
clearDetectedUpdateState()clears rawresult/updateKinddata instead of derivedupdateAvailableflag - #237 — Update All button shows disabled with lock icon for bouncer-blocked stacks
- #238 — Container inspect
Config.Imagefallback + stale cache self-heal for cross-host status consistency - #236 — Docs site SRI config removed (was blocking JS hydration)
Features
- Agent reconnect notification — opt-in
agent-reconnectnotification rule - Stryker mutation badge on homepage
Hardening
- Auth lockout pruning: expired entries cleaned proactively, configurable identity cap
- Container ID-based routing throughout the UI (replaces name-based identity)
- Stryker mutation testing: incremental mode, focused shards, aggregate score pipeline
Install
```bash
docker pull ghcr.io/codeswhat/drydock:1.5.0-rc.3
```