Updating or stopping a container from the Containers view failed on a real host, and said the socket was missing when it was not; an existing install still started new bookmarks on Off; and :config missed two sections. Recorded but not announced: the What's new window still leads with v1.15.0.
Containers
- fix — update and stop were cut off after five seconds. Every call to the Docker socket went through one client with a five-second
Timeout, and Go'shttp.Clientcounts reading the body in that. An update's pull streams progress for as long as the layers take, and a stop waits out the container's own stop timeout (ten seconds by default), so both were cut off mid-way. Start, stop, pause, restart, update and remove now use a client without that deadline;dockerActionTimeout(ten minutes) on the action's context ends one that hangs. Reads keep the five seconds.TestDockerUpdateOutlastsTheReadTimeoutholds the fake daemon's pull and stop open longer than the read deadline and fails without the change. - fix — a failure no longer claims the socket is missing.
writeDockerErroranswered every error that was not the daemon's own reply with503 {"reason":"no-docker-socket"}, and the browser, not knowing that reason, fell back to Docker did not do that. Only a failure to reach the socket is reported that way now; anything after the connection is502 {"reason":"docker-error","message":…}, and a failed update addsfailedStep(pull, stop, rename, create, connect or start) to the message. Every failed action is logged with its error.TestDockerUpdateSaysWhatBrokecuts the pull stream off halfway.
Bookmarks
- fix — an existing install still started a new bookmark on Off. v1.15.0 moved
defaultNewBookmarkCheckModeto Periodic, but Off had been the default before and every install that ever saved its settings had written it intosettings.json, so the change reached fresh installs only. A stored Off now moves to Periodic once, marked bynewBookmarkPeriodicMigrated; Monitor was never a default and stays, and Off chosen afterwards sticks. The fallback form insearch-commands-new.js, used when the dashboard's own form is not loaded, preselected Off whatever the setting said and now follows it too.TestStoredOffCheckModeMovesToPeriodicOnceseeds a stored Off.
Everywhere
- fix —
:configdid not offer the Inbox and Containers sections. Both were added to the Config rail in v1.15.0 but not to_CONFIG_SECTIONSinsearch-commands.js, so the palette's list of sections stopped short of the rail. They are there now, in rail order, withcommands.configInboxandcommands.configContainersin all six locales.dashboard-command-palette-config.spec.jscompares the palette with the rail. - fix — the page could stay locked after a modal closed. The watcher that holds the scroll lock while any modal is open re-checked on a mutation or a
transitionend; a close whose transition was cancelled, or never ran, fired neither once the overlay was finally hidden, and the page stayed unscrollable with nothing on screen. Seen in CI only. It now also listens fortransitioncanceland looks again every 300 ms while it holds the lock.scroll-lock-refcount.spec.jspolls for the release and, when it fails, names who still holds the lock.
Tests
- Specs follow v1.15.0: the glass and depth specs pick a glass theme first, since Matrix Bluepill, the new default, draws no blur; the Behavior and Statistics tab ids, the removed Health view and header button, the triage pile chooser, the inbox's one-line rows and Periodic as the new-bookmark default are what the specs expect now. Two density specs that measured the old inbox row were replaced by one on the shared list shell. The six Docker settings join the fields whose group note explains them instead of an ℹ.
Docs
- What's new:
static/data/whats-new/v1.15.1.jsonand its index entry, both withhideFromModal;NEXTDASH_WHATS_NEW_DATA_VERSIONmoves towhats-new-v305,DASHBOARD_RELEASEstays on v1.15.0.