Skip to content

Add a browser version of the probe - #20

Merged
emilbob merged 1 commit into
masterfrom
feat/browser-dashboard
Jul 25, 2026
Merged

Add a browser version of the probe#20
emilbob merged 1 commit into
masterfrom
feat/browser-dashboard

Conversation

@emilbob

@emilbob emilbob commented Jul 25, 2026

Copy link
Copy Markdown
Owner

A single self-contained page — web/index.html — that runs the same checks against a live node from a browser, filling in results as they resolve. No build step, no dependencies; deployable by pointing GitHub Pages at web/.

What it is, and isn't

It's a JavaScript reimplementation, not this binary — a browser cannot execute a Rust program. The page says so in its first paragraph rather than implying otherwise.

What it does share is the substance:

  • the same request ids (chain_getBlockHash 0, identity 1–4, subscribe 5/6, header 7)
  • the same five calls pipelined before any reply is read
  • per-step deadlines rather than per-frame, so a chattering node can't hold it open
  • the same eight failure kinds, shown as a chip on the verdict
  • the same rule that an unprovable requirement fails rather than passes
  • a report rendered on failure too, with absent fields omitted rather than nulled

Verified in Chrome, against the live network

Clean Polkadot run — 84 peers, block 32,265,733, 67 ms round trip, three heads followed at +1 block each; all five checks pass and the JSON matches the CLI's shape field for field.

Genesis mismatch — pointed at Kusama while requiring Polkadot's hash: connect passes, chain identity fails with a GENESIS_MISMATCH chip, and the remaining three steps are marked Not reached — mirroring the CLI, which aborts before querying a node on the wrong chain.

No console errors. Both colour schemes checked.

Notes

Connections go straight from the browser to the node named — nothing is proxied, no data leaves the machine. A page served over https can't open ws:// to 127.0.0.1 (mixed content), so probing a local dev node means opening the file from disk or using the CLI; that's called out both in the page and the README.

No Rust changed. 28 tests + 1 ignored still pass.

🤖 Generated with Claude Code

A single self-contained page that runs the same checks against a live
node and fills in the results as they resolve. No build step, no
dependencies, deployable to GitHub Pages by pointing it at web/.

It is a JavaScript reimplementation, not this binary — a browser cannot
execute a Rust program — and the page says so in its first paragraph
rather than implying otherwise. What it does share is the substance:
the same request ids, the same five pipelined calls, per-step deadlines
rather than per-frame, the same eight failure kinds, the same rule that
an unprovable requirement fails rather than passes, and a report printed
on failure too with absent fields omitted rather than nulled.

Verified in Chrome against the live network: a clean Polkadot run
(84 peers, block 32,265,733, 67 ms, three heads followed at +1 each),
and a genesis mismatch against Kusama, which aborts before querying and
marks the remaining steps unreached — matching the CLI. No console
errors; both colour schemes checked.

Connections go straight from the browser to the node named; nothing is
proxied. A local dev node needs the file opened from disk, since a page
on https cannot open ws:// to 127.0.0.1 — noted in the page and README.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@emilbob
emilbob merged commit 8ff8ba3 into master Jul 25, 2026
1 check passed
@emilbob
emilbob deleted the feat/browser-dashboard branch July 25, 2026 17:41
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