Deploy the browser analyzer to GitHub Pages - #18
Merged
Conversation
Builds web/dist in CI and publishes it with actions/deploy-pages on pushes to main that touch web/ or the analyzer. A gh-pages branch was the alternative and was rejected: it would commit ~13 MB of Pyodide binaries on every rebuild and let the deployed site drift from source, which is the reason build.sh fetches the runtime at build time in the first place. The workflow serves the built site and runs bench/check_page.py against it, so the deploy fails if the page reaches an external host, raises a JS error, or renders nothing. That check was previously decorative: it watched responses, and an external reference that fails to resolve never produces one, so a blocked request would have passed silently. Verified both directions by injecting an external image into a built copy -- caught now, missed before. Both READMEs lead with the hosted link. It needs no install and no upload, which is the shortest honest path from reading about the tool to seeing it work.
8 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.
Summary
Publishes the browser analyzer merged in #17 to
https://alexandrefimov.github.io/Query-Doctor/ and links it from both READMEs.
actions/deploy-pagesbuildsweb/distin CI on pushes tomainthat touchweb/or the analyzer. Agh-pagesbranch was the alternative and wasrejected: it would commit ~13 MB of Pyodide binaries per rebuild and let the
deployed site drift from source, which is exactly why
build.shfetches theruntime at build time instead of vendoring it.
The workflow serves the built site and runs
bench/check_page.pyagainst it, soa deploy fails if the page reaches an external host, raises a JS error, or
renders nothing.
That check was decorative until this change. It watched responses, and an
external reference that fails to resolve never produces one — so on a runner
with blocked egress, a page phoning home would have passed silently. It now
watches requests. Verified both directions by injecting
<img src="https://example.com/pixel.png">into a built copy: caught now(
FAIL: page reached external hosts: ['example.com']), missed before.Pages is enabled with
build_type=workflow, so nothing is served from a branchand
docs/is not published.Type
Safety Checklist
redact_profile_textbefore analyzing, as merged in Turn the README into a landing page, add a browser analyzer prototype #17.unknown,not_observed, or explicitly unsupported.web/bench/make_profile.py.The site is public and serves synthetic demo data plus whatever profile the
visitor drops locally. Visitor profiles are never transmitted.
Validation
ruff check web/bench scriptsgit diff --checkDocumentation
web/README.mdrecords the hosting decision and the rejected alternative.docs/changelog.md— the browser analyzer entry landed in Turn the README into a landing page, add a browser analyzer prototype #17; say if you want a separate deployment line.Branch Hygiene
main.main.Assisted-by: Claude Opus 5 via Claude Code