Site audit fixes: download counter, winget alignment, chromedriver bump - #396
Merged
Conversation
renderDownloads summed GitHub release assets and crates.io but wrote the label as soon as either resolved, so "total" was asserted before it was true. Measured on the running site: the same page showed "Downloads: 178 total" with only crates.io in, and "Downloads: 2,635 total" once the GitHub count landed -- a fifteenfold difference under one label. Track whether each source has settled separately from its count: a rate-limited source never sets a value, so gating on the counts alone would leave the label waiting forever. Settle in .finally so a failed or rate-limited fetch settles too. Until both are in, the figure is a lower bound and says so. Verified in both directions by forcing the crates.io fetch to fail: partial renders "2,458 so far; one source has not reported", complete renders "2,636 total".
The landing page and FAQ said `winget install netscli`; the install docs said `winget install fstubner.netscli`. Both resolve, so this was inconsistency rather than error, and the short form is what the landing page leads with. The full identifiers stay documented in one line, because a bare name match can become ambiguous if another netscli ever enters the catalog and `fstubner.netscli` cannot.
visual:check drives Chrome through chromedriver, and the pinned 151 crashes against Chrome 152 with a GetHandleVerifier stack trace rather than failing cleanly -- so the gate reported nothing at all. NOT verified locally: the sandbox here records the lockfile change but discards the postinstall binary download, leaving chromedriver.exe at 151 on disk. The bump is correct for a clean `npm ci`; it has not been proven to fix the crash on this machine.
|
Site preview: https://pr-396.netscli-site-preview.pages.dev Built from 7f39959 with Production is unaffected: netscli.com is served from GitHub Pages via |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three independent commits from the site audit, separated so any one can be dropped.
1. Download counter only claims a total once both sources report
renderDownloadssums GitHub release assets and crates.io, but wrote the label as soon as either resolved — so "total" was asserted before it was true. Measured on the running site: the same page showedDownloads: 178 totalwith only crates.io in, andDownloads: 2,635 totalonce the GitHub count landed. A fifteenfold difference under one label.The fix tracks whether each source has settled separately from its count, because a rate-limited source never sets a value and gating on the counts alone would leave the label waiting forever. Settling happens in
.finally, so a failed or rate-limited fetch settles too.Verified in both directions by forcing the crates.io fetch to fail:
2.4K+ downloadsDownloads: 2,458 so far; one source has not reported2.6K+ downloadsDownloads: 2,636 totalThe partial case is the one that matters — before this change it read
2,458 total. The sabotage was reverted and the complete state re-confirmed.While measuring this, the split between the two sources turned out to be roughly 2,458 binary downloads against ~178
cargo installs. Every package manager — winget, Scoop, Homebrew, AUR — pulls the GitHub release asset, so all of them land in the first number.2. Short winget identifiers in the install docs
The landing page and FAQ said
winget install netscli; the install docs saidwinget install fstubner.netscli. Both resolve, so this was inconsistency rather than error, and the short form is what the landing page leads with. All 13 winget commands across the site now match.The full identifiers stay documented in one line, because a bare name match can become ambiguous if another
netscliever enters the catalog andfstubner.netsclicannot.3. chromedriver 152 — correct, but unverified here
visual:checkdrives Chrome through chromedriver. The pinned 151 crashes against the installed Chrome 152 with aGetHandleVerifierstack trace rather than failing cleanly, so the gate reported nothing at all — neither pass nor fail.This bump is not proven to fix it. The sandbox on this machine records the lockfile change but discards the postinstall binary download, leaving
chromedriver.exeat 151 on disk. The change is correct for a cleannpm ci; it has not been observed working. Drop this commit if you would rather bump it somewhere it can be tested.What this PR does not cover
visual:checkstill has not run, so there is no visual-regression evidence for the counter or winget changes. The baseline (240 images, 5 Sept) is intact, and a legitimate diff on/docs/install/should be expected from commit 2 when it does run.Related
The first commit here is already applied to the site template as its own commit in fstubner/product-site-template#26, since that PR touches the same file. Once this lands, a later template sync should carry it across as a no-op.
Audit coverage behind these fixes
All 14 routes walked at 1440, plus mobile (375) and tablet (768) passes, light and dark themes, and a keyboard pass. Automated gates all clean: axe 0 violations across 14 pages in both themes, contrast sweep passing on every rendered text node, 0 shadowed CSS declarations of 1,116,
check:regionsclean, changelog dates matching. Docs search verified against a production build —packet capturereturns 10 results with/docs/packet-capture/top.