controller v0.45.0: storage UX polish — deterministic order, init filter, register shortcut, system-storage clarity
B1 sort /api/disks (user-data→system→backup, alpha within); B2 init wizard excludes mounted drives; B3 Regisztrálás primary action for mounted-unregistered user-data drives (POST /api/storage/register); B4 per-card purpose descriptions + app-backing tags + tiering note (local & local-lvm both kept); B5 eject already names affected apps. Pairs with felhom-agent v0.24.0 eject role-gate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,30 @@
|
||||
## Changelog
|
||||
|
||||
### v0.45.0 — storage UX polish: deterministic order, init filter, register shortcut, system-storage clarity (2026-06-12)
|
||||
|
||||
Builds on v0.44.0's role-aware drive management. Pairs with felhom-agent v0.24.0 (the eject role-gate
|
||||
lives at the agent — see its CHANGELOG). This release is the controller-side clarity/ordering polish.
|
||||
|
||||
- **Deterministic disk order (B1)** — `GET /api/disks` now sorts the agent's drive list server-side:
|
||||
**user-data → system → backup** (then unrecognized), alphabetical by storage name within each tier.
|
||||
The agent's storage view iterates an unordered Go map, so the list previously reordered on every
|
||||
reload (CLAUDE.md lesson #3). The customer's manageable drives are now always on top, stably.
|
||||
`sortDisksForView` in `agent_disk_handlers.go` + `TestSortDisksForView`.
|
||||
- **Init wizard excludes mounted drives (B2)** — `storage_init.html`'s formattable filter gained
|
||||
`&& !d.mount_path`, matching the attach wizard: an already-mounted drive (e.g. `felhom-usb`) no
|
||||
longer appears as an "initialize" candidate. Eject it first to make it an init target.
|
||||
- **Register shortcut (B3)** — a mounted, unregistered **user-data** drive now offers **Regisztrálás**
|
||||
as its PRIMARY per-card action (Leválasztás/Törlés stay secondary). It records the existing mount
|
||||
into the `StoragePath` registry (no format, no eject) via the new `POST /api/storage/register` →
|
||||
`registerStoragePath`, then FileBrowser syncs. The natural "use this drive" intent, not "wipe it".
|
||||
- **System-storage clarity (B4)** — `local` and `local-lvm` are both kept (not collapsed); each
|
||||
storage card now carries a plain-Hungarian **purpose description** keyed on the agent's role/type,
|
||||
the app-backing storages (`local-lvm` → "Alkalmazás-rendszer"; user-data → "Alkalmazás-adatok") are
|
||||
tagged, and a one-line tiering note above the list answers "which storage do the apps use?". Pure
|
||||
controller-side presentation — no agent contract change; role/type stay authoritative from the agent.
|
||||
- **Eject impact (B5)** — the eject confirmation already lists, by name, the deployed apps that lose
|
||||
their storage (via `/api/storage/impact`), at parity with the wipe warning — verified, no change.
|
||||
|
||||
### v0.44.0 — role-aware drive management: protected lockout + customer type-to-confirm wipe + drive-list restyle (2026-06-11)
|
||||
|
||||
The controller half of the storage-authorization redesign. The drive UI is now driven by the agent's
|
||||
|
||||
Reference in New Issue
Block a user