Skip to content

Download page: filter modules by version, explain failures, add timeouts, drop v8 handling - #6842

Open
patmmccann wants to merge 6 commits into
prebid:masterfrom
patmmccann:agent-download-page-hardening
Open

patmmccann wants to merge 6 commits into
prebid:masterfrom
patmmccann:agent-download-page-hardening

Conversation

@patmmccann

@patmmccann patmmccann commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Download page follow-ups to #6839 and #6844. This now also includes #6843 (filtering the checklist by version), since both PRs were cleanup of the same page. #6843 is closed in favor of this one.

Fixes prebid/Prebid.js#9410

1. Show only the modules in the selected version (from #6843)

The checklist showed every documented module, whatever version was selected. About 90 of the ~800 entries aren't in 11.43.0: mostly long-removed adapters (aol, districtm, spotx, ...), plus modules removed in 11.0.

  • Filtering: when the version list loads, and whenever the selected version changes (including from an uploaded config), the page fetches that version's file list from jsDelivr (data.jsdelivr.com/v1/packages/npm/prebid.js@<version>?structure=flat). Checklist entries whose moduleCode has no modules/<name>.(js|ts) or modules/<name>/index.(js|ts) are hidden.
  • Status line: a line above the bidder list says how many modules are shown, e.g. "Showing the 718 modules available in Prebid.js 11.43.0".
  • Checked boxes are kept. A hidden module stays checked, so switching back to a version that has it restores it. Hidden modules are left out of the download and listed in the existing "removed from your download" alert.
  • Pending state: while the selected version's list is loading, the download button is disabled.
  • Fallback: if the listing can't be loaded, all modules are shown and the status line says so. Failed lookups aren't cached.
  • Cost: the listing is about 420 KB compressed per selected version, fetched at most once per page view and cached for a year (versions are immutable).

I looked at using the bundler's dist/chunks/dependencies.json instead, which is about 7.5 KB. It only lists chunks that have dependencies, so about 160 real modules would be missing. checksums.json is complete but only exists from 11.40 onward.

Docs naming fixes: 15 pages had a download moduleCode that didn't match any module file. Those modules were silently missing from builds, and with this change they'd be hidden. Their front matter is corrected:

  • Analytics modulecode: browsi, byData, datawrkz, im, liveIntent, nexx360, AsteriobidPbm.
  • Module module_code: dynamicAdBoostRtdProvider, humansecurityRtdProvider, humansecurityMalvDefenseRtdProvider, agenticAudienceRtdProvider.
  • User ID useridmodule: adriverIdSystem, jixieIdSystem.
  • Bidder pages: SMB and synapsehx get a filename: override.

The touched analytics pages also get their existing markdownlint errors fixed.

2. Version list failures are visible

If prebidBundler.getVersions() fails (registry down, timeout, bad response):

  • an error box appears under the version dropdown, with a link to building from source
  • the download button is disabled
  • the existing dropdown error entry stays

The DOM updates wait for the page to be parsed, since the request can fail first.

3. Request timeouts in prebidBundler.js

Registry and jsDelivr requests abort after 30s (AbortSignal.timeout, skipped in browsers without it) and reject with Timed out retrieving <url>. Previously a stalled request left the button on "Sending Request..." forever.

4. Remove the v8 handling

  • renameModules mapped tcfControl/consentManagementTcf/paapiForGpt to their 8.x names. The page only offers 10.0+ builds, so it's dead code and has been removed.
  • The support note's major-version example now says 11.x / 10.x instead of 3.x / 2.x.

Testing

I ran the live download page in headless Chrome, serving this branch's download.js and prebidBundler.js, with npm and jsDelivr requests going out live:

  • Normal, 11.43.0:
    • No error box and the button enabled.
    • 91 checklist entries hidden: aolBidAdapter hidden, rubiconBidAdapter shown.
    • Downloading Rubicon + SharedID + TCF + tcfControl built prebid11.43.0.js (251 KB, with userId added as the parent) and prebid-config.json, with no requests to js-download.prebid.org.
  • Registry returns 503: the error box was shown, the button disabled, and all modules shown.
  • Timeout: with the timeout set to 5ms, getVersions() rejected with "Timed out retrieving https://registry.npmjs.org/prebid.js".
  • From Download page: show only the modules in the selected Prebid.js version #6843 (earlier runs): with 10.29.2 selected, 666 modules were shown and paapi was visible. With the jsDelivr response delayed, the button stayed disabled until the listing loaded. With jsDelivr unreachable, all modules were shown.

markdownlint-cli2 0.22.1 passes on all changed Markdown files. This merges cleanly with #6845.

🤖 Generated with Claude Code

@netlify

netlify Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for prebid-docs-preview ready!

Name Link
🔨 Latest commit 0039a31
🔍 Latest deploy log https://app.netlify.com/projects/prebid-docs-preview/deploys/6ae5d72c4d747edcd702d993
😎 Deploy Preview https://deploy-preview-6842--prebid-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-22T16:11:35.946848Z 2357ccd PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

…rop v8 handling

- If the version list can't be loaded, show an error box (with a link to
  building from source) and disable the download button, instead of only a
  dropdown entry. The DOM updates wait for the page to be parsed, since the
  request can fail first.
- prebidBundler: time out registry and jsDelivr requests after 30s so a
  stalled request fails instead of leaving the page waiting forever.
- Remove the Prebid.js 8.x module renames (gdprEnforcement,
  consentManagement, fledgeForGpt); the page only offers 10.0+ builds.
- Update the stale "e.g. 3.x / 2.x" major version example.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@patmmccann patmmccann changed the title Download page: parse the version list as JSON and explain failures Download page: explain version list failures, add request timeouts, drop v8 handling Oct 22, 2026
@patmmccann
patmmccann force-pushed the agent-download-page-hardening branch from 2357ccd to d90e0a8 Compare October 22, 2026 18:48
patmmccann and others added 3 commits October 22, 2026 14:55
Fetch the selected version's file list from jsDelivr and hide checklist
entries for modules that aren't in it (falling back to showing everything if
the list can't be loaded). Hidden but checked modules are left out of the
download and reported. Also fix module names on 15 docs pages whose download
checkbox didn't match any module file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…st loads

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@patmmccann patmmccann changed the title Download page: explain version list failures, add request timeouts, drop v8 handling Download page: filter modules by version, explain failures, add timeouts, drop v8 handling Oct 22, 2026
@patmmccann
patmmccann requested a review from dgirardi October 22, 2026 18:57
@patmmccann
patmmccann requested a review from muuki88 October 28, 2026 20:30

This branch has not been deployed

No deployments
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.

Download page automated version sync with applicable adapters/modules

1 participant