feat(server): persist activity history on the server and expose it to the dashboard UI via /api/activity instead of relying on fragile localStorage

This commit is contained in:
Riz Ashraf committed 2026-09-21 18:01:21 +01:00
1 parent bf7bf48163
commit ae0ea9ab22
4 files changed
+83 -41

No files matched your search

+19 -1
View File
@@ -27,6 +27,7 @@ pub struct MemoryState {
pub tech_debts: Store<Vec<TechDebt>>,
pub gates: Store<Vec<GateRecord>>,
pub context_workspaces: Store<Vec<ContextWorkspace>>,
pub recent_activities: Store<std::collections::VecDeque<serde_json::Value>>,
pub activity_tx: tokio::sync::broadcast::Sender<String>,
}
@@ -37,9 +38,26 @@ impl MemoryState {
}
pub fn broadcast_activity(&self, message: &str) {
let time = std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.unwrap_or_default()
.as_millis() as u64;
let item = serde_json::json!({
"time": time,
"message": message
});
self.recent_activities.modify(|activities| {
activities.push_back(item.clone());
if activities.len() > 100 {
activities.pop_front();
}
});
let payload = serde_json::json!({
"type": "activity",
"data": message
"data": item
})
.to_string();
let _ = self.activity_tx.send(payload);