Bug fixes, enhancements, and UI polish. Agent bumped to v2.25.1 for the restore-progress change.
Fixes
- Daily email report counted only one repo per client (#175): the report picked a single "last backup" per client, so clients with two or more backup plans reported only one plan's size and file count. It now aggregates the latest completed/failed backup per plan per client and sums size and files across all of them. Clients with a mix of ok and failed plans now show as "Partial" (orange) so it's visible at a glance.
- "Last generated" timestamp always showed the current time (#176): the scheduler regenerates the day's report every minute to keep numbers fresh, and an earlier fix was bumping
created_aton every regenerate. Now only the manual "Generate Report Now" button updates the timestamp; scheduled refreshes leave it alone. - Restore stuck on "Starting task..." (#168):
borg extractnow runs with--progressand the agent forwardsprogress_percentevents so the UI shows a live progress bar during restore, matching the backup experience. - Schedule page descenders clipped on hover (#171): the
:hovertransform was scaling the block, which clipped the bottom pixel row of letters like g/p/y. Replaced with a stronger box-shadow — same lift cue without the clipping. - Repo detail status badges hard to read (#169): warning/info badges now use
text-darkfor contrast instead of default white-on-light.
Enhancements
- Auto-update stops re-queueing up-to-date agents (#174): the daily
update_borgsweep compares each agent's current borg version against the target and skips the ones already at or past it, instead of re-installing the same binary every day. Log line now breaks out queued vs already-current vs incompatible counts. - Per-user low-storage alert thresholds were already added in 2.28.5 — if you missed it, each user now sets their own trigger (percent used or free GB) under Profile → Account → Low-Storage Alerts.
- Activity icons on Dashboard Recently Completed (#172): same task-type icon vocabulary as the Queue page — backup / prune / compact / restore / update / etc. — so the two pages read consistently.
- Server Health drops redundant root row (#178): when
/var/bbssits on the root filesystem, the widget no longer shows/and/var/bbsas two identical rows. - Clients sorted alphabetically (#182): the Clients list is now sorted by name instead of creation order.
- Version prefix consistency (#170): the Clients page showed raw version numbers where the rest of the app said
v<num>; aligned them.