Bundle 3 from the v1.20.0 → v1.21.0 thread. Container Groups got promoted from a hidden tab in Settings (advanced-mode-only, no edit, ↑/↓ button reorder) to a first-class page in the main nav with the four things the legacy tab was missing.
Added
Dedicated /groups page in main navigation
New 📦 Groups nav entry. The legacy Settings → Groups tab still works (existing bookmarks survive) but the new page is the primary surface.
Edit existing groups in place
Each group card has an ✏️ Edit group <details> block — rename, change members, toggle restart_dependents, change wait_seconds, save. Previously the only way to "edit" a group was delete + recreate from scratch.
HEAD badge on the first container
restart_dependents semantics depend on which container is the head — making it explicit removes the "which one was first again?" guesswork.
Drag-and-drop reorder
HTML5 native DnD on .group-member list items, persisted via a new /api/group_reorder_batch endpoint that atomically replaces the member list of the named group. After drop, the HEAD badge updates client-side without a full reload.
Stale-member warning
Yellow stale badge on members whose container name no longer matches any running or stopped container on the host. Surfaces "I deleted that container but forgot to remove it from the group" before the next update flow hits a container not found error.
API
/api/group_savenow updates in place when called with agroup_id— preserves the slug instead of generating a new one fromname. Backward-compatible with the legacy create-from-name-only flow./api/group_reorder_batch(new) — atomic full-order replacement for the DnD UI. Returns JSON for the JS toast.- Both redirect targets respect Referer:
/settings#groupsif you came from the legacy tab,/groupsif you came from the new page.
Notes
- Storage layer unchanged. Same
container_store.save_group/delete_group/get_groups/reorder_group_container, same invariants (one-group-per-container,wait_secondsclamped to [0, 600],restart_dependentsdefaults to False). - No-op for users who don't use Container Groups. For users who do: the new page works immediately, no migration needed.
Upgrade
docker pull amayer1983/docksentry:latest
docker compose up -dHard-reload the Web UI (Ctrl+Shift+R) once so the new CSS + JS (DnD handlers, toast helpers) lands cleanly.