Files
the-nexus/index.html
Alexander Whitestone e18eb52c49
Some checks failed
CI / validate (pull_request) Failing after 22s
feat: add about panel with uptime, PRs merged, and agents active (#125)
Adds an about panel (toggle with [I] key or ℹ button) displaying:
- SESSION UPTIME — live ticker since page load
- PRs MERGED — fetched from Gitea API, filtered to merged state
- AGENTS ACTIVE — Timmy (1), expandable as more agents come online

Panel follows existing HUD design conventions: dark background,
holographic blue border, monospace font, pulse animation.
Hidden in photo mode.

Fixes #125
2026-03-24 00:10:01 -04:00

78 lines
3.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Timmy's Nexus</title>
<meta name="description" content="A sovereign 3D world">
<meta property="og:title" content="Timmy's Nexus">
<meta property="og:description" content="A sovereign 3D world">
<meta property="og:image" content="https://example.com/og-image.png">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Timmy's Nexus">
<meta name="twitter:description" content="A sovereign 3D world">
<meta name="twitter:image" content="https://example.com/og-image.png">
<link rel="manifest" href="/manifest.json">
<link rel="stylesheet" href="style.css">
<script type="importmap">
{
"imports": {
"three": "https://unpkg.com/three@0.183.0/build/three.module.js",
"three/addons/": "https://unpkg.com/three@0.183.0/examples/jsm/"
}
}
</script>
</head>
<body>
<!-- Top Right: Audio Toggle -->
<div id="audio-control" class="hud-controls" style="position: absolute; top: 8px; right: 8px;">
<button id="audio-toggle" class="chat-toggle-btn" aria-label="Toggle ambient sound" style="background-color: var(--color-primary); color: var(--color-bg); padding: 4px 8px; border-radius: 4px; font-size: 12px; cursor: pointer;">
🔊
</button>
<button id="debug-toggle" class="chat-toggle-btn" aria-label="Toggle debug mode" style="background-color: var(--color-secondary); color: var(--color-bg); padding: 4px 8px; border-radius: 4px; font-size: 12px; cursor: pointer;">
🔍
</button>
<button id="about-toggle" class="chat-toggle-btn" aria-label="Toggle about panel" style="background-color: var(--color-secondary); color: var(--color-text); padding: 4px 8px; border-radius: 4px; font-size: 12px; cursor: pointer;">
</button>
<audio id="ambient-sound" src="ambient.mp3" loop></audio>
</div>
<!-- About Panel -->
<div id="about-panel" class="about-panel" aria-hidden="true">
<div class="about-panel-header">
<span class="about-panel-title">TIMMY'S NEXUS</span>
<button id="about-close" class="about-close" aria-label="Close about panel"></button>
</div>
<div class="about-stats">
<div class="stat-row">
<span class="stat-label">SESSION UPTIME</span>
<span id="stat-uptime" class="stat-value">00:00:00</span>
</div>
<div class="stat-row">
<span class="stat-label">PRs MERGED</span>
<span id="stat-prs" class="stat-value"></span>
</div>
<div class="stat-row">
<span class="stat-label">AGENTS ACTIVE</span>
<span id="stat-agents" class="stat-value"></span>
</div>
</div>
<div class="about-hint">[I] to close</div>
</div>
<div id="overview-indicator">
<span>MAP VIEW</span>
<span class="overview-hint">[Tab] to exit</span>
</div>
<div id="photo-indicator">
<span>PHOTO MODE</span>
<span class="photo-hint">[P] exit &nbsp;|&nbsp; [[] focus- &nbsp; []] focus+ &nbsp; focus: <span id="photo-focus">5.0</span></span>
</div>
<script type="module" src="app.js"></script>
</body>
</html>