Grey out the Swarm sidebar item with a help popover explaining how to
enable swarm mode. Recheck the peer on each hover and re-enable the
nav when LocalNodeState becomes active.
Reusable column visibility control after Clear on containers and on
other resource tables, with preferences persisted. Suppress horizontal
scrollbars so columns ellipsize instead of overflowing.
Replace em-dash and ad-hoc loaders with the shared job-tray spinner
for deploy templates, host/swarm/tunnels/events, health latency,
container stats/logs/processes, and registry/volume browsers.
Peers live under Settings; Images is local-only. Registry is a top-level view with vault credentials, Hub search, and Registry API V2 catalog/tags/manifest/delete over the wire.
Compare local RepoDigests to remote registry manifest digests, show status in the containers table Updates column, and support force recheck with vault credentials for private registries.
Adds a dedicated blank create form (name, image, always pull, ports,
auto-remove, advanced settings) separate from template Deploy, reuses
deployContainer with pull-if-missing and publish-all-ports support.
Show start, stop, kill, restart, pause, resume, recreate, duplicate/edit,
and remove in the container details header, enabled by runtime state, using
typed RPC for lifecycle operations.
Always show a containers action bar (start/stop/restart/pause/resume/kill/
recreate/remove/prune) driven by row selection via typed bulk RPC. Rebuild
the container Networking tab into a join/leave network manager with aliases
and optional static IPs, plus a clearer ports table.
When deploying a container whose name already exists, prompt to Replace
(stop and remove the old container) or Cancel. Server accepts replace:true
to perform the swap; clients pre-check names and retry on conflict races.
Expand server history samples with network/block rates and longer
retention, and rebuild the details Stats tab with live KPIs, 1m–30m
windows, auto-scale, pause, CSV export, and CPU/memory/net/disk charts.
Split overview into a stretching Identity/Runtime/Network band and a
content-height Ports/Mounts/Timeline strip with timeline, mount rows,
and clearer empty states so vertical space is used without sparse panels.
Make the overview tab body, card, and section grid grow with the details
shell so Identity/Runtime/Network and related panels use empty vertical
space instead of sitting in a short content-sized block.
Tighten container detail tabs into a fit-to-viewport layout with a richer
overview, debounced process filters, and a readable process table. Make
dashboard KPI cards navigate to resource views (with status filters that
reset on leave), and raise per-peer RPC limits so normal UI polling no
longer trips rate limiting.
Replace Bootstrap table dropdowns with a fixed body-portaled menu so
hovering other rows no longer opens their menus and the open menu no
longer expands table overflow.
Raise stacking for the open row, use Bootstrap Popper fixed strategy so
menus escape table paint order, and pause virtualization repaint while
a dropdown is open.
The Basics/Network/Volumes/Security/Review steps never advanced and only cluttered Container Configuration. Drop the strip, related CSS, and the structure test id.
Probe bash/sh/ash and related shells until a container terminal works, enable Swarm APIs by default, add keyboard go-chords and appearance prefs, and point install docs at https://install.peardock.boats.
Parse Docker stats streams as NDJSON so samples actually land, ship
memory limit for accurate bars, keep CPU/Memory columns visible with a
compact stacked meter, and match stats updates to table rows reliably.
Use fixed table layout, cell ellipsis, and progressive column hiding
on narrower widths so containers/images/networks tables stay within
the content pane instead of growing a horizontal scrollbar.
Replace exponential backoff and the 12-attempt cap with a fixed 5s
retry loop that keeps dialing after unexpected disconnects. Throttle
toasts so the UI is not spammed while the offline banner stays up.
Keep the containers table scoped to the active peer with a merge store,
restore the last active server on boot with a restoring screen, start
containers without a Docker API body (v1.24+), and stop ⋮ menus from
sticking to the viewport bottom after refreshes.
Skip skeleton wipes when data already exists, fingerprint list content so
auto-refresh does not rebuild unchanged DOM, and short-circuit container
structure updates when only live stats change.
Use Popper fixed strategy for the actions dropdown so it escapes
table-responsive overflow, and raise z-index / open-row stacking so
the menu paints above neighboring rows.
Copy runtime logos/favicons into assets/ and package icons into build/, then use them for the titlebar, favicons, dock/window icons, and docs so packaging and the UI no longer rely on placeholder marks.
Keep quick Add peer (and Peers shortcut) in the sidebar footer; full
saved-peer list, counts, and actions live on a new Peers view that is
reachable offline for managing keys.
Override Bootstrap outline/solid button variants and nav-tabs/pills
for dark surfaces, align settings subtabs with brand green, and
improve list-group, kbd, and dashboard danger actions contrast.