From ba68069c23fc9835fdcc2123f2d42506e5e514f5 Mon Sep 17 00:00:00 2001 From: Kpa-clawbot Date: Mon, 6 Jul 2026 20:13:04 -0700 Subject: [PATCH] fix(#1825): add cross-nav links between observer and node detail pages (#1826) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds cross-navigation between the observer detail page and the node detail page for the same pubkey (community feature request from cwichura). **Changes** - `public/observer-detail.js`: new `View node detail →` inside `.page-header`, next to the `

`. - `public/nodes.js`: new sibling `Observer →` in the same button row as the `Analytics` / `Reach` anchors on the full node detail page. Uses the existing `ph-eye` phosphor icon. **Test — TDD red→green** - Red commit: `8c2315e1` (`test(#1825): red — observer<->node cross-link anchors missing`) — 4/4 assertions fail on master; CI RED. - Green commit: `ff8f6ed7` — minimum production change; 4/4 assertions pass locally. Test file: `test-issue-1825-observer-node-cross-links.js` — static-source DOM-grep style consistent with the neighbouring `test-issue-1789-observer-firmware-cols.js` / `test-observers-headings.js` pattern. It asserts: 1. observer-detail.js contains `href="#/nodes/${encodeURIComponent(currentId)}"`. 2. That anchor sits inside the `.page-header` block. 3. nodes.js contains `href="#/observers/${encodeURIComponent(n.public_key)}"`. 4. That anchor is a sibling of the analytics/reach anchors in the same flex row. **Notes** - Pubkeys are `encodeURIComponent`-escaped on both sides (defense-in-depth; MeshCore pubkeys are hex only). - No API changes. No CSS changes. No new dependencies. Fixes #1825 --------- Co-authored-by: meshcore-bot --- public/nodes.js | 1 + public/observer-detail.js | 1 + test-issue-1825-observer-node-cross-links.js | 74 ++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 test-issue-1825-observer-node-cross-links.js diff --git a/public/nodes.js b/public/nodes.js index 7d1253d1..fd6aab87 100644 --- a/public/nodes.js +++ b/public/nodes.js @@ -617,6 +617,7 @@ Analytics Reach + Observer → diff --git a/public/observer-detail.js b/public/observer-detail.js index e00c740f..addcc3d1 100644 --- a/public/observer-detail.js +++ b/public/observer-detail.js @@ -81,6 +81,7 @@ window.ObserverDetailNaiveBanner = {