diff --git a/CLAUDE.md b/CLAUDE.md
index b4e92fc..5b2e3aa 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -325,6 +325,12 @@ Storage:
● nvme0n1 T: 25C W: 4%
├─ ● /: 55% 250.5GB/456.4GB
└─ ● /boot: 26% 0.3GB/1.0GB
+
+Backup:
+● WD-WCC7K1234567 T: 32°C W: 12%
+ ├─ Last: 2h ago (12.3GB)
+ ├─ Next: in 22h
+ └─ ● Usage: 45% 678GB/1.5TB
```
## Important Communication Guidelines
diff --git a/Cargo.lock b/Cargo.lock
index c38efdc..ac43b28 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -279,7 +279,7 @@ checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d"
[[package]]
name = "cm-dashboard"
-version = "0.1.147"
+version = "0.1.148"
dependencies = [
"anyhow",
"chrono",
@@ -301,7 +301,7 @@ dependencies = [
[[package]]
name = "cm-dashboard-agent"
-version = "0.1.147"
+version = "0.1.148"
dependencies = [
"anyhow",
"async-trait",
@@ -324,7 +324,7 @@ dependencies = [
[[package]]
name = "cm-dashboard-shared"
-version = "0.1.147"
+version = "0.1.148"
dependencies = [
"chrono",
"serde",
diff --git a/agent/Cargo.toml b/agent/Cargo.toml
index fae63e5..6ee5787 100644
--- a/agent/Cargo.toml
+++ b/agent/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "cm-dashboard-agent"
-version = "0.1.148"
+version = "0.1.149"
edition = "2021"
[dependencies]
diff --git a/agent/src/collectors/backup.rs b/agent/src/collectors/backup.rs
index 8006111..8ef5a6a 100644
--- a/agent/src/collectors/backup.rs
+++ b/agent/src/collectors/backup.rs
@@ -1,13 +1,15 @@
use async_trait::async_trait;
-use cm_dashboard_shared::{AgentData, BackupData};
+use chrono;
+use cm_dashboard_shared::{AgentData, BackupData, BackupDiskData};
use serde::{Deserialize, Serialize};
+use std::collections::HashMap;
use std::fs;
use std::path::Path;
use tracing::debug;
use super::{Collector, CollectorError};
-/// Backup collector that reads backup status from JSON files with structured data output
+/// Backup collector that reads backup status from TOML files with structured data output
pub struct BackupCollector {
/// Path to backup status file
status_file_path: String,
@@ -16,12 +18,12 @@ pub struct BackupCollector {
impl BackupCollector {
pub fn new() -> Self {
Self {
- status_file_path: "/var/lib/backup/status.json".to_string(),
+ status_file_path: "/var/lib/backup/backup-status.toml".to_string(),
}
}
- /// Read backup status from JSON file
- async fn read_backup_status(&self) -> Result