v0.57.0: stable host-storage list + per-app Tier-2 config panel
Part A of the UI-fixes/storage-spike spec.
A1: enrichHostStorageTargets sorts /api/host-metrics storage_targets
server-side and attaches friendly Hungarian labels + purpose, fixing the
#host-storage-bars reorder-on-poll bug. Display labels only — PVE storage
ids are never renamed.
A2: new GET/POST /stacks/{name}/backup Tier-2 config panel; the "2. mentés"
Beállítás button is repointed there from the dead-end deploy page. Customer
can pin a target drive or disable Tier 2; preference is preserved across the
runner's status writes. Always visible (single-SSD + non-HDD apps included).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,39 @@
|
||||
## Changelog
|
||||
|
||||
### v0.57.0 — UI fixes: stable host-storage list + per-app Tier-2 config panel (2026-06-13)
|
||||
|
||||
Part A of the UI-fixes/storage-spike spec (Part B is a build-nothing findings report).
|
||||
|
||||
- **A1 — host storage list no longer reorders (item 2):** the monitoring page's `#host-storage-bars`
|
||||
list (the client-side one filled from the agent's PVE-storage list — `local`, `local-lvm`,
|
||||
`felhom-pbs`, `felhom-usb` with thin-pool % + temperature) reordered on every 8 s poll because the
|
||||
agent enumerates `pvesm` in a non-deterministic order and the list never passed through a Go sort.
|
||||
Now `enrichHostStorageTargets` (`agent_host_metrics_handler.go`) sorts the `/api/host-metrics`
|
||||
response server-side (user-data → system+apps → backup → other; alphabetical by id within a tier)
|
||||
and attaches a **friendly Hungarian label + one-line purpose** per entry (e.g. `local-lvm` →
|
||||
"Belső SSD – rendszer és alkalmazások"). The raw PVE id is kept and shown muted — **display labels
|
||||
only; PVE storage ids are never renamed** (vzdump/PBS configs reference them by name). The
|
||||
monitoring JS renders the friendly label + the purpose sub-line. (Note: this is the JS-driven list,
|
||||
NOT the server-rendered user-data `buildStorageBars` list that v0.56.0's 4C already sorted.)
|
||||
- **A2 — per-app Tier-2 config panel (item 4):** the "2. mentés" row's **Beállítás** button used to
|
||||
link to the app's deploy page, which has no backup-location setting (a dead end). New route
|
||||
`GET/POST /stacks/{name}/backup` (`tier2_config_handler.go` + `tier2_config.html`) is the real
|
||||
surface: it shows the current/effective off-drive target, whether it's the size-limited internal
|
||||
SSD, the last-run status, and lets the customer **pin a different registered drive** or **turn
|
||||
Tier 2 off**. The control is **always visible** — even when only the internal SSD qualifies (shows
|
||||
"automatikus: belső SSD — csak DB/konfiguráció" + the rootfs-headroom note) and for non-HDD apps
|
||||
(shows honest "already in the PBS whole-guest snapshot; the off-drive copy is supplementary"
|
||||
context). The button is repointed on every "2. mentés" branch (incl. the unconfigured + disabled
|
||||
states).
|
||||
- Persistence: two preference fields on `settings.CrossDriveBackup` — `UserDisabled` and
|
||||
`PreferredTarget` — set via `SetTier2Preference` and **preserved across the runner's status
|
||||
writes** (`withTier2Prefs`). `selectTier2Target` now honors a valid pinned target (off-disk,
|
||||
registered) before the auto-pick; an invalid pin silently falls back to auto. `RunTier2` skips a
|
||||
customer-disabled app. Saving with Tier 2 on for an HDD app triggers an immediate run so the
|
||||
result shows on return.
|
||||
- Tests: `enrichHostStorageTargets` order/labels/determinism; `selectTier2Target` honors/falls-back
|
||||
on a pin; status writes preserve the preference.
|
||||
|
||||
### v0.56.0 — Phase 4: FileBrowser scoping + deploy DB-on-SSD note + monitoring storage descriptions (2026-06-13)
|
||||
|
||||
Polish layer closing the slice.
|
||||
|
||||
Reference in New Issue
Block a user