Conversation
… its own line The scheduled download check installed on three fresh GitHub runners every half hour, and the dashboard counted it: six installs, five installer fetches, three "ok" outcomes and three or four new machines per run, which is a day of ninety installs and fifty-six machines that never came back. Both install scripts now take SHELL_ONLINE_INSTALL_CHECK=1, which puts a check user agent on every request and reports nothing; the workflow sets it, and the Worker counts that agent, and monitors in general, as crawlers. HTTP libraries and PowerShell are tools rather than desktop browsers, so a Node script is not a person and a Windows install is a run. The installs tile drew the sessions line, since the trend had no installs series; it now has installs and started sessions, crawlers left out of every line. "New" is measured per surface from the day its people were first counted, and until a whole range has passed since then the split is replaced by the day it becomes meaningful. Machine rows keyed the old way are dropped once. Prefetched pages are not views, and the 24h range says people are counted by UTC day. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
4 tasks
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.
What changed
Follow-up to #160, from a review of the numbers the dashboard showed on its first day: 91 installs against 3 copied commands, 56 "new" machines with nobody returning, and the installs and sessions tiles spiking together.
What was going on
Downloadsworkflow runs every 30 minutes and does a real install on three fresh GitHub runners, plus downloads three sample binaries. Per run the dashboard recorded 6 installs, 5 installer fetches (3 of them "read in a browser"), 3 "ok" outcomes and 3 to 4 new installer machines. Runner addresses are never reused, so every one of them was "new" and none came back: the 100% churn was the schedule. Six per run times fifteen runs is 91.sessionsto their sparkline and spiked together by construction.Fixes
SHELL_ONLINE_INSTALL_CHECK=1: every request then carries the user agentshell.online-install-checkand nothing is reported. The workflow sets it, and puts the same agent on its own curl and PowerShell fetches of the scripts. The Worker counts that agent,shell.online-downloads-check, and monitors in general (uptime, pingdom, statuscake, checkly, site24x7, synthetic, "monitor") as crawlers: in the ledger, out of every figure about people.installsandstartedas their own series, with crawlers left out of every line; the installs and sessions tiles draw them.Sec-Purpose: prefetch,Purpose: prefetch) are not views.The sessions spike itself is not the workflow: nothing in CI creates sessions. After this deploy, the "CLI clients" panel and the machines cohort will say whether it is one version from many never-returning addresses (an automation) or people.
Verification
tests/analytics.test.ts); the trend's new series and crawler exclusion, per-surface since, and the one-time machine cleanup done exactly once, against SQLite (tests/stats-database.test.ts,worker/stats-store.test.ts); a check run sends the agent on the download and reports nothing (scripts/test-install.sh)npm run checkandnpm run build:web: typecheck clean, 164 tests and the installer, Docker entrypoint, deploy guard, landing SEO and mobile checks pass; the web build succeedsinstall.ps1(no PowerShell here). Its change is a splatted-UserAgenton the two downloads and an early return inReportDeploy notes
Changelog
Fixed entries under Unreleased.
🤖 Generated with Claude Code