* fix(dashboard): keep disk info working when a mount is stale or broken
The dashboard, the file manager mount list and the alert disk list
enumerated mounts with df. df calls statfs on every mount, so one bad
mount took the whole disk list down: the request hung until the
frontend timed out, or the list came back empty.
- enumerate mounts from /proc/self/mountinfo instead of running df
- read each mount through a guard with a 3s timeout that keeps at most
one call per mount in flight
- fail closed: a mount that cannot be read stays in the list with
errorType and error, and an unreadable mount table is an error
rather than an empty list
- show failed mounts and their reasons on the dashboard and in the
file manager
- cmd: after killing a timed-out command, wait at most 5s for it
instead of forever
* fix(dashboard): distinguish remounted and hidden filesystems
* fix(disk): simplify disk queries and bound timeout handling
* fix(disk): prevent overlapping df collection tasks
---------
Co-authored-by: ssongliu <sloooop1x@gmail.com>
* feat: Add PrettyDistro field to dashboard information and update related services and frontend components
* fix: Trim whitespace and parentheses from detected Linux distribution name in GetDistro method
* fix: Correctly trim parentheses from detected Linux distribution name in GetDistro method
* refactor: Simplify Linux distribution detection by removing unnecessary checks and consolidating logic
* fix: Update CPU usage retrieval to include detailed percentage information
* feat: Enhance CPU metrics by adding CPU frequency and detailed usage percentages
* feat: Add CPU frequency metric to dashboard base information
* feat: async load data of top CPU and memory processes data
* refactor: Update CPU and memory top toggle functionality and state management
---------
Co-authored-by: 王贺 <wanghe@fit2cloud.com>