feat: Expose all MemoryState metrics in API and dashboard
This commit is contained in:
1 parent
938b8dbf45
commit
0ecd862e89
2 files changed
+94
-1
No files matched your search
@@ -45,6 +45,58 @@
|
|||||||
<div class="stat-label">ADRs</div>
|
<div class="stat-label">ADRs</div>
|
||||||
<div class="stat-value" id="val-adrs">-</div>
|
<div class="stat-value" id="val-adrs">-</div>
|
||||||
</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>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -59,6 +111,20 @@
|
|||||||
document.getElementById('val-snippets').innerText = data.snippets;
|
document.getElementById('val-snippets').innerText = data.snippets;
|
||||||
document.getElementById('val-tech_debts').innerText = data.tech_debts;
|
document.getElementById('val-tech_debts').innerText = data.tech_debts;
|
||||||
document.getElementById('val-adrs').innerText = data.adrs;
|
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) {
|
} catch (err) {
|
||||||
console.error("Failed to fetch stats:", err);
|
console.error("Failed to fetch stats:", err);
|
||||||
}
|
}
|
||||||
|
|||||||
+28
-1
@@ -155,13 +155,40 @@ fn run_server(state: Arc<MemoryState>) -> Result<(), Box<dyn std::error::Error>>
|
|||||||
let tech_debts = state_clone.tech_debts.read().len();
|
let tech_debts = state_clone.tech_debts.read().len();
|
||||||
let adrs = state_clone.adrs.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!({
|
axum::Json(serde_json::json!({
|
||||||
"entities": entities,
|
"entities": entities,
|
||||||
"relations": relations,
|
"relations": relations,
|
||||||
"tasks": tasks,
|
"tasks": tasks,
|
||||||
"snippets": snippets,
|
"snippets": snippets,
|
||||||
"tech_debts": tech_debts,
|
"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
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|||||||
Reference in new issue
Block a user