diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-03-22 09:13:51 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-03-22 09:13:51 +0000 |
| commit | d8939199f129ccb1abcf0150012bc23209facf12 (patch) | |
| tree | cbf4194482e7996b4699f1c7435c8dbfd12f59b2 /web | |
| parent | 15a46b0e8d6fc9b986bce6b17b471c4a29cc950c (diff) | |
feat: color logo based on build version hash
Adds GET /api/version endpoint and uses the first 6 hex chars of the
commit hash to derive an HSL hue for the header h1 logo color.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'web')
| -rw-r--r-- | web/app.js | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -3097,6 +3097,23 @@ function switchTab(name) { poll(); } +// ── Version color ───────────────────────────────────────────────────────────── + +async function applyVersionColor() { + try { + const res = await fetch(`${BASE_PATH}/api/version`); + if (!res.ok) return; + const { version } = await res.json(); + // Use first 6 hex chars of version as hue seed (works for commit hashes and "dev") + const hex = version.replace(/[^0-9a-f]/gi, '').slice(0, 6).padEnd(6, '0'); + const hue = Math.round((parseInt(hex, 16) / 0xffffff) * 360); + const h1 = document.querySelector('header h1'); + if (h1) h1.style.color = `hsl(${hue}, 70%, 55%)`; + } catch { + // non-fatal — logo stays default color + } +} + // ── Boot ────────────────────────────────────────────────────────────────────── if (typeof document !== 'undefined') { @@ -3105,6 +3122,7 @@ if (typeof document !== 'undefined') { handleStartNextTask(this); }); + applyVersionColor(); switchTab(getActiveMainTab()); startPolling(); connectWebSocket(); |
