feat: Expose all MemoryState metrics in API and dashboard

This commit is contained in:
Riz Ashraf committed 2026-09-09 06:26:58 +01:00
1 parent 938b8dbf45
commit 0ecd862e89
2 files changed
+94 -1

No files matched your search

+66
View File
@@ -45,6 +45,58 @@
<div class="stat-label">ADRs</div>
<div class="stat-value" id="val-adrs">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Audit Ledger</div>
<div class="stat-value" id="val-ledger">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Sticky Notes</div>
<div class="stat-value" id="val-sticky">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Error Fixes</div>
<div class="stat-value" id="val-error_fixes">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Pinned Files</div>
<div class="stat-value" id="val-pinned_files">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Session Summaries</div>
<div class="stat-value" id="val-session_summaries">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Handoff Memos</div>
<div class="stat-value" id="val-handoff_memos">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Env Fingerprints</div>
<div class="stat-value" id="val-env_fingerprints">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Env Requirements</div>
<div class="stat-value" id="val-env_requirements">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Milestones</div>
<div class="stat-value" id="val-milestones">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Environments</div>
<div class="stat-value" id="val-environments">-</div>
</div>
<div class="stat-card">
<div class="stat-label">PR Checklists</div>
<div class="stat-value" id="val-pr_checklists">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Safety Gates</div>
<div class="stat-value" id="val-gates">-</div>
</div>
<div class="stat-card">
<div class="stat-label">Workspaces</div>
<div class="stat-value" id="val-context_workspaces">-</div>
</div>
</div>
<script>
@@ -59,6 +111,20 @@
document.getElementById('val-snippets').innerText = data.snippets;
document.getElementById('val-tech_debts').innerText = data.tech_debts;
document.getElementById('val-adrs').innerText = data.adrs;
document.getElementById('val-ledger').innerText = data.ledger;
document.getElementById('val-sticky').innerText = data.sticky;
document.getElementById('val-error_fixes').innerText = data.error_fixes;
document.getElementById('val-pinned_files').innerText = data.pinned_files;
document.getElementById('val-session_summaries').innerText = data.session_summaries;
document.getElementById('val-handoff_memos').innerText = data.handoff_memos;
document.getElementById('val-env_fingerprints').innerText = data.env_fingerprints;
document.getElementById('val-env_requirements').innerText = data.env_requirements;
document.getElementById('val-milestones').innerText = data.milestones;
document.getElementById('val-environments').innerText = data.environments;
document.getElementById('val-pr_checklists').innerText = data.pr_checklists;
document.getElementById('val-gates').innerText = data.gates;
document.getElementById('val-context_workspaces').innerText = data.context_workspaces;
} catch (err) {
console.error("Failed to fetch stats:", err);
}
+28 -1
View File
@@ -154,6 +154,20 @@ fn run_server(state: Arc<MemoryState>) -> Result<(), Box<dyn std::error::Error>>
let snippets = state_clone.snippets.read().len();
let tech_debts = state_clone.tech_debts.read().len();
let adrs = state_clone.adrs.read().len();
let ledger = state_clone.ledger.read().len();
let sticky = state_clone.sticky.read().len();
let error_fixes = state_clone.error_fixes.read().len();
let pinned_files = state_clone.pinned_files.read().len();
let session_summaries = state_clone.session_summaries.read().len();
let handoff_memos = state_clone.handoff_memos.read().len();
let env_fingerprints = state_clone.env_fingerprints.read().len();
let env_requirements = state_clone.env_requirements.read().len();
let milestones = state_clone.milestones.read().len();
let environments = state_clone.environments.read().len();
let pr_checklists = state_clone.pr_checklists.read().len();
let gates = state_clone.gates.read().len();
let context_workspaces = state_clone.context_workspaces.read().len();
axum::Json(serde_json::json!({
"entities": entities,
@@ -161,7 +175,20 @@ fn run_server(state: Arc<MemoryState>) -> Result<(), Box<dyn std::error::Error>>
"tasks": tasks,
"snippets": snippets,
"tech_debts": tech_debts,
"adrs": adrs
"adrs": adrs,
"ledger": ledger,
"sticky": sticky,
"error_fixes": error_fixes,
"pinned_files": pinned_files,
"session_summaries": session_summaries,
"handoff_memos": handoff_memos,
"env_fingerprints": env_fingerprints,
"env_requirements": env_requirements,
"milestones": milestones,
"environments": environments,
"pr_checklists": pr_checklists,
"gates": gates,
"context_workspaces": context_workspaces
}))
}
}))