Skip to content

Deep-link the report gallery at the hosted report viewer - #242

Merged
handstandsam merged 2 commits into
mainfrom
gallery-deep-link-report-viewer
Aug 19, 2026
Merged

Deep-link the report gallery at the hosted report viewer#242
handstandsam merged 2 commits into
mainfrom
gallery-deep-link-report-viewer

Conversation

@handstandsam

Copy link
Copy Markdown
Collaborator

The docs landing page and Report Gallery link report-assets/<slug>/report.html — which is the legacy WASM report, the format being deleted within the week. Meanwhile report-interactive.html has been produced and uploaded in every artifact and thrown away, because the Pages workflow's copy list is hardcoded to three filenames.

Measured on the latest docs-report-clock artifact:

file size published today
report.html (legacy WASM) 8.0 MB
report-interactive.html 998 KB ❌ generated, uploaded, discarded
storyboard.webp 155 KB
summary.json 2.9 KB

So the gallery is ~24 MB of a format that's about to stop existing.

This publishes each showcase session's archive and points the cards at the hosted viewer instead:

report-viewer/index.html?zip=../report-assets/<slug>/session.zip

Both live on block.github.io, so the fetch is same-origin — the CORS caveat documented for ?zip= doesn't apply, and the gallery becomes the one place that path is guaranteed to work. Each slug also keeps a secondary link to report-interactive.html for the self-contained-file story.

Producing the archive needs no new tooling: a plain zip -r from the logs root yields exactly the <session-id>/<file> layout the viewer's ZIP reader expects — the same shape the daemon's /api/session/{id}/export.zip emits.

Both trailblaze report invocations now pass --no-wasm-report, so this job neither builds nor publishes the WASM report and survives its removal untouched. Follow-up for whoever lands that removal: build-uber-jar still passes -Ptrailblaze.wasm=true to bundle the WASM template, which this workflow no longer needs.

No stand-in is generated for a missing session.zip. The deep-link resolves against report-viewer/index.html, which always exists, so --strict is satisfied; a fabricated archive would render as a broken report instead of an honest "couldn't download that" with the drop zone still offered.

Expected transient: no session.zip exists yet, so the first deploy after merge has cards whose archive 404s — the viewer shows its download error with the drop zone live, and the secondary link works. It self-heals on the next completed clock / ios-contacts / wikipedia run (all trigger on push to main), the same one-cycle lag the gallery assets already document.

Test plan

  • mkdocs build --strict passes with no report assets present (the worst case) — query-string deep-links don't trip link validation
  • Built the site, placed a real session zip, served it, clicked through from the landing page — the viewer rendered the full report
  • ?zip=…&tab=lightbox opens straight on the Lightbox, so the deep-link carrier survives
  • zip -r output layout matches what zip-report-core.js parses
  • CI green
  • After merge + one trail-run cycle: gallery cards open through the viewer

The gallery published report.html — the legacy WASM report, ~8MB per slug — while
report-interactive.html sat unused in every artifact. Publish each session's archive
instead and point the cards at report-viewer/?zip=, so the showcase runs through the
same viewer we ship for everyone else's archives.
README's three showcase tiles linked report-assets/<slug>/report.html, which this
branch stops publishing — and unlike session.zip, nothing would ever republish it, so
the repo front page would 404 permanently. Point them at the viewer.

Also drops the reports.md admonition and CORS section that still described the gallery
as linking exported HTML files.
@handstandsam
handstandsam merged commit f31803f into main Aug 19, 2026
2 checks passed
@handstandsam
handstandsam deleted the gallery-deep-link-report-viewer branch August 19, 2026 19:19
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