downloadFile lost its 30 second timeout, DownloadOptions and the mid-pipeline error plumbing in a rewrite meant only to fix redirects, so five callers had no stall guard: a hung socket waited forever. Restored, redirects kept.
test:scripts ended with vitest run scripts/catalog, which is a prefix match: it also picked up catalog-preview-temp.test.ts, a node:test file with no vitest suite, and the whole script failed on it. Scoped to the directory.