diff --git a/app.js b/app.js
index b26114fa..2ce18438 100644
--- a/app.js
+++ b/app.js
@@ -1229,19 +1229,21 @@ function updateDevQueue(issues) {
async function updateSovereignHealth() {
const container = document.getElementById('sovereign-health-content');
if (!container) return;
-
+
let metrics = { sovereignty_score: 100, local_sessions: 0, total_sessions: 0 };
+ let daemonReachable = false;
try {
const res = await fetch('http://localhost:8082/metrics');
if (res.ok) {
metrics = await res.json();
+ daemonReachable = true;
}
} catch (e) {
- // Fallback to static if local daemon not running
console.log('Local health daemon not reachable, using static baseline.');
}
const services = [
+ { name: 'LOCAL DAEMON', status: daemonReachable ? 'ONLINE' : 'OFFLINE' },
{ name: 'FORGE / GITEA', url: 'https://forge.alexanderwhitestone.com', status: 'ONLINE' },
{ name: 'NEXUS CORE', url: 'https://forge.alexanderwhitestone.com/Timmy_Foundation/the-nexus', status: 'ONLINE' },
{ name: 'HERMES WS', url: 'ws://143.198.27.163:8765', status: wsConnected ? 'ONLINE' : 'OFFLINE' },
@@ -1249,7 +1251,7 @@ async function updateSovereignHealth() {
];
container.innerHTML = '';
-
+
// Add Sovereignty Bar
const barDiv = document.createElement('div');
barDiv.className = 'meta-stat';
@@ -1266,13 +1268,28 @@ async function updateSovereignHealth() {
`;
container.appendChild(barDiv);
+ // Session metrics (if daemon provides them)
+ if (daemonReachable && (metrics.local_sessions || metrics.total_sessions)) {
+ const sessDiv = document.createElement('div');
+ sessDiv.className = 'meta-stat';
+ sessDiv.innerHTML = `SESSIONS${metrics.local_sessions || 0} local / ${metrics.total_sessions || 0} total`;
+ container.appendChild(sessDiv);
+ }
+
services.forEach(s => {
const div = document.createElement('div');
div.className = 'meta-stat';
div.innerHTML = `${s.name} ${s.status}`;
container.appendChild(div);
});
-});
+
+ // Last updated timestamp
+ const tsDiv = document.createElement('div');
+ tsDiv.className = 'meta-stat';
+ tsDiv.style.opacity = '0.5';
+ tsDiv.style.fontSize = '0.7em';
+ tsDiv.textContent = `UPDATED ${new Date().toLocaleTimeString()}`;
+ container.appendChild(tsDiv);
}
function updateNexusCommand(state) {