diff --git a/app.js b/app.js
index 4147640..83667fb 100644
--- a/app.js
+++ b/app.js
@@ -1121,8 +1121,8 @@ function createTerminalPanel(parent, x, y, rot, title, color, lines) {
async function fetchGiteaData() {
try {
const [issuesRes, stateRes] = await Promise.all([
- fetch('/api/gitea/repos/admin/timmy-tower/issues?state=all'),
- fetch('/api/gitea/repos/admin/timmy-tower/contents/world_state.json')
+ fetch('https://forge.alexanderwhitestone.com/api/v1/repos/Timmy_Foundation/the-nexus/issues?state=all&limit=20'),
+ fetch('https://forge.alexanderwhitestone.com/api/v1/repos/Timmy_Foundation/the-nexus/contents/vision.json')
]);
if (issuesRes.ok) {
@@ -1135,6 +1135,7 @@ async function fetchGiteaData() {
const content = await stateRes.json();
const worldState = JSON.parse(atob(content.content));
updateNexusCommand(worldState);
+ updateSovereignHealth();
}
} catch (e) {
console.error('Failed to fetch Gitea data:', e);
@@ -1167,6 +1168,27 @@ function updateDevQueue(issues) {
terminal.updatePanelText(lines);
}
+
+function updateSovereignHealth() {
+ const container = document.getElementById('sovereign-health-content');
+ if (!container) return;
+
+ const services = [
+ { 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' },
+ { name: 'SIDE CAR', url: 'http://127.0.0.1:18789', status: 'LOCAL-ONLY' }
+ ];
+
+ container.innerHTML = '';
+ services.forEach(s => {
+ const div = document.createElement('div');
+ div.className = 'meta-stat';
+ div.innerHTML = `${s.name} ${s.status}`;
+ container.appendChild(div);
+ });
+}
+
function updateNexusCommand(state) {
const terminal = batcaveTerminals.find(t => t.title === 'NEXUS COMMAND');
if (!terminal) return;
diff --git a/index.html b/index.html
index 5ea207e..ccb2697 100644
--- a/index.html
+++ b/index.html
@@ -23,6 +23,7 @@
+