Skip to content

Commit 28c6e55

Browse files
blu3chipsxclaude
andcommitted
feat(ui): show dashboard version in the header
Operators had no way to see which Node Manager version their node is running. /api/nodes now returns `ui_version` (the UI bundle version constant the updater gates on), and the header sub-title renders it as "Network Operations · v<x.y.z>" — visible on every tab, on both the SSH-tunnel and public dashboards. UI_VERSION 1.8.1 -> 1.8.2. Ran tools/gen-checksums.sh per AGENTS.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 2e49a0b commit 28c6e55

4 files changed

Lines changed: 10 additions & 4 deletions

File tree

ui/server.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def _dbg(msg):
6060

6161
# Web UI version -- its own independent line (starts at 1.0.0). This is the
6262
# single constant update-scripts.sh greps to decide whether the UI is stale.
63-
UI_VERSION = "1.8.1"
63+
UI_VERSION = "1.8.2"
6464

6565
NODE_TYPES = ("observer", "validator")
6666

@@ -1992,6 +1992,9 @@ def api_nodes():
19921992
# Read-only when reached over the public Caddy path (vs the SSH tunnel). The
19931993
# UI uses this to hide every management control and show a read-only banner.
19941994
out["public_readonly"] = is_public_request()
1995+
# Dashboard (UI bundle) version, so the header can show operators which
1996+
# Node Manager version their node is running.
1997+
out["ui_version"] = UI_VERSION
19951998
# Never cache node detection -- after a remove/install the UI must see the
19961999
# change immediately (the empty-state switch keys off this).
19972000
resp = jsonify(out)

ui/server.py.sha256

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
cc1b2ef11ec65d56f59af8cb6a12e130cbed0ee4703c0ea7d177dccca60befb8 ui/server.py
1+
b5da7094aaccc93c810a12947d6ac638b0e2c47f901e6d1121c80a7268fd9ea1 ui/server.py

ui/static/index.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@
369369
onerror="this.parentElement.classList.add('placeholder');this.parentElement.textContent='TN'"></div>
370370
<div>
371371
<h1>Telcoin Node Manager</h1>
372-
<div class="sub">Network Operations</div>
372+
<div class="sub" id="brandSub">Network Operations</div>
373373
</div>
374374
</div>
375375
<nav id="nav">
@@ -562,6 +562,9 @@ <h1>Telcoin Node Manager</h1>
562562
// finalize so the new node is detected immediately).
563563
const d = await api('/api/nodes' + (fresh ? '?fresh=1' : ''));
564564
if(d && !d.error){ state.nodes = d; state.publicReadonly = !!d.public_readonly; }
565+
// Surface the dashboard (UI bundle) version in the header sub-title so operators
566+
// can see which Node Manager version their node is running.
567+
if(d && d.ui_version){ const bs=$('#brandSub'); if(bs) bs.textContent = 'Network Operations · v'+d.ui_version; }
565568
// The node's ROLE is decided on-chain (tn_isValidator) and surfaced by the server
566569
// as d.role -- the single populated slot after its bidirectional remap (validator
567570
// when on-chain true, else the plain observer/full-node view). Drive the one

ui/static/index.html.sha256

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
b314d60d4c0e69dddb923a2c99e8ce3d29e4343f1b79704382217d28513cc7e3 ui/static/index.html
1+
fa3c7c3bf95159cecb10e17d476feca8de7180ea7059974531b3a6d5f35c0361 ui/static/index.html

0 commit comments

Comments
 (0)