Skip to content

Walk & Test: destination cards, warm-up discard, 1s tick; drop the traffic monitor - #7

Merged
TechLuddite merged 1 commit into
mainfrom
claude/walk-test-section-22hq2i
Aug 23, 2026
Merged

Walk & Test: destination cards, warm-up discard, 1s tick; drop the traffic monitor#7
TechLuddite merged 1 commit into
mainfrom
claude/walk-test-section-22hq2i

Conversation

@TechLuddite

Copy link
Copy Markdown
Owner

Three changes from testing the deployed build on a real network, plus one bug the browser run caught.

1. Facebook out, Atlassian in

Facebook did not respond on a healthy network. Meta domains sit on most ad and tracker blocklists, so that card failed for reasons that had nothing to do with the network path, and a false alarm in a diagnostic is worse than one fewer destination.

Atlassian replaces it: a business staple that is not commonly filtered, answering 200 terminally, and riding a different edge network from anything else in the list, which adds path diversity. The list is now four consumer and six business, and a test pins the blocklist-prone hosts out of it.

The card copy and both disclosure lists now name the blocklist case explicitly, since "unanswered" has one more cause a reader should know about.

2. A card per destination

Replaces the live table. Each card carries the last round trip, answered count, median, jitter and max, plus a sparkline in the style of the dashboard's traffic monitor. One to five columns depending on width.

Every sparkline shares one y-scale, printed above the grid. Per-card scaling would make a 400 ms destination and a 40 ms destination draw the same shape, which defeats the point of showing ten at once. A destination with nothing measured draws no line at all, because a flat trace along the bottom reads as "instant".

Warm-up rounds are discarded

The first two rounds, plus each destination's first answered probe, carry DNS, TCP and TLS. Left in, they pinned the top of every scale near a second for the rest of the session and flattened the real measurements into a line along the bottom, which is the "graph never recovers" problem.

They are counted and shown as discarded, never deleted: a destination that failed during warm-up still failed. Keying the setup flag on the first answer rather than the first attempt also fixes a destination that is silent for twenty rounds and then replies, which pays its handshake on round twenty-one. Charts additionally window to the last 60 rounds, so one spike cannot hold the axis for a whole walk.

One-second interval

Safe because the loop awaits a whole round before starting the timer, so the interval is a gap between rounds rather than a fixed cadence, and a struggling link stretches it rather than piling requests up. Measured at 1.10 s per round with all ten cards charting, and 104 ms click latency during it.

3. Live Traffic Monitor removed

Gone from the dashboard, with docs/REMOVED-TRAFFIC-MONITOR.md as the reference record: what it showed, how the PerformanceObserver aggregation worked, the || 1 latency bug it once had, why it went, and what would need fixing first if it came back.

It was passive, so its numbers described NetReady's own activity rather than the network, and it needed a traffic-generating button to look useful on an idle tab. Walk & Test is the active version done properly.

Its httpbin.org disclosure was rewritten rather than deleted: httpbin is still reachable as one of the HTTP Probe's one-click sample targets, so removing the row would have understated the app's reach. The disclosure list has to stay exactly as wide as what the app actually touches.

A bug the browser run caught

Offline, the shared-scale caption read "0 to 10 ms" — a chart-axis default that no probe produced, sitting on a page where every other figure was correctly an em-dash. The scale is now null when nothing has been measured and the caption says so instead.

Verification

  • npm run check green. 308 tests, 10 new.
  • Offline: zero occurrences of "N ms" anywhere on the page, verified by scanning the whole body rather than the table that no longer exists. 62 em-dashes, every card reading "no answer from this destination".
  • Simulated two-spot walk with the first two rounds at ~930 ms to exercise the discard: the shared scale settled at 450 ms rather than 1000 ms, and the aggregate line correctly starts at round 3.
  • Dashboard confirmed clear of the traffic monitor, with the Walk & Test card still present.

Generated by Claude Code

…affic monitor

Three changes from testing the deployed build on a real network.

Facebook out, Atlassian in. Meta domains sit on most ad and tracker
blocklists, so that card failed for people whose network was entirely
healthy, and a false alarm in a diagnostic is worse than one fewer
destination. Atlassian is a business staple that is not commonly
filtered and rides a different edge network from anything else in the
list, which adds path diversity. The list is now four consumer and six
business, and a test pins the blocklist-prone hosts out of it. The card
copy and the disclosures name the blocklist case explicitly, because
"unanswered" now has one more cause a reader should know about.

A card per destination, replacing the table. Each carries the last round
trip, answered count, median, jitter and max, and a sparkline in the
style of the dashboard's traffic monitor. One to five columns depending
on width. Every sparkline shares one y-scale, printed above the grid:
per-card scaling would make a 400 ms destination and a 40 ms destination
draw the same shape, which defeats the point of showing ten at once. A
destination with nothing measured draws no line at all, because a flat
trace along the bottom reads as "instant".

Warm-up rounds are discarded. The first two rounds, plus each
destination's first *answered* probe, carry DNS, TCP and TLS. Left in
they pinned the top of every scale near a second for the rest of the
session and flattened the real measurements into a line along the
bottom. They are counted and shown as discarded, never deleted: a
destination that failed during warm-up still failed. Keying the setup
flag on the first answer rather than the first attempt also fixes a
destination that is silent for twenty rounds and then replies, which
pays its handshake on round twenty-one. Charts additionally window to
the last 60 rounds so one spike cannot hold the axis for the whole walk.

A one-second interval is now offered. Safe because the loop awaits a
whole round before starting the timer, so the interval is a gap between
rounds and a struggling link stretches it rather than piling requests
up. Measured at 1.10s per round with all ten cards charting, and 104 ms
click latency during it.

The Live Traffic Monitor is removed from the dashboard, with
docs/REMOVED-TRAFFIC-MONITOR.md as the reference record: what it showed,
how it worked, the `|| 1` latency bug it once had, and why it went. It
was passive, so its numbers described NetReady's own activity rather
than the network, and it needed a traffic-generating button to look
useful. Walk & Test is the active version done properly. Its httpbin.org
disclosure was rewritten rather than deleted, because httpbin is still
reachable as one of the HTTP Probe's one-click samples — the disclosure
list has to stay exactly as wide as the app's real reach.

One fix the browser run caught: offline, the shared-scale caption read
"0 to 10 ms" from a chart-axis default, which is a number no probe
produced. The scale is now null when nothing has been measured and the
caption says so. Offline now yields zero occurrences of "N ms" anywhere
on the page, verified by scanning the whole body rather than the table
that no longer exists.
@TechLuddite
TechLuddite merged commit 3d352d5 into main Aug 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant