From a177e805f452da26e982364a99a5c6b5f4605bb3 Mon Sep 17 00:00:00 2001 From: rob thijssen Date: Wed, 9 Sep 2026 14:50:32 +0300 Subject: [PATCH] fix(ui): say what a held name with no current votes actually means MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A mapping outlives the votes that earned it — deliberately, so a name does not blink out whenever the feed goes quiet. But the tooltip then rendered "0% of 0 attributed blocks point here", which is arithmetic nonsense dressed as a statistic. The top miner takes 87% of blocks at a two-second interval, so its twenty observations span about forty-seven seconds; votes age out of the window constantly and this is the ordinary state, not an edge case. It now says the name rests on evidence older than the current window, which is what is true. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Jp6a8EDar9ueEhAxzep4V5 --- web/src/components/Leaderboard.tsx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/web/src/components/Leaderboard.tsx b/web/src/components/Leaderboard.tsx index 0f96544..bfdd62f 100644 --- a/web/src/components/Leaderboard.tsx +++ b/web/src/components/Leaderboard.tsx @@ -66,10 +66,17 @@ function Row({ // claim, and a percentage alone cannot tell them apart. className={tentative ? 'chip chip-named chip-guess' : 'chip chip-named'} title={ - `Name inferred from telemetry: ${Math.round(row.confidence * 100)}% of ` + - `${row.attribution_votes} attributed ` + - (row.attribution_votes === 1 ? 'block points' : 'blocks point') + - ` here. Best effort — a later block can correct it.` + row.attribution_votes === 0 + ? // Held from evidence that has since aged out of the vote + // window. "0% of 0" would be arithmetic nonsense; the + // mapping is not less true than it was, only less recently + // corroborated, and the row should say so. + 'Name inferred from telemetry, on evidence older than the current window — ' + + 'no recent block resolved a first reporter. Best effort; a later block can correct it.' + : `Name inferred from telemetry: ${Math.round(row.confidence * 100)}% of ` + + `${row.attribution_votes} attributed ` + + (row.attribution_votes === 1 ? 'block points' : 'blocks point') + + ` here. Best effort — a later block can correct it.` } > {tentative ? 'node?' : 'node'}