Releases: pulldit/pulldit.github.io
Pulldit v1.4.0
Pulldit v1.4.0 — release-engineering tidy-up. The web app and the Pulldit Bridge extension now share a single version, defined once in package.json. Still 100% in your browser: no account, no tracking, no backend, strict CSP.
🔧 Changes
- Unified versioning —
package.jsonis the single source of truth.scripts/sync-version.mjspropagates it to the app config, the extension manifest, and the landing page;npm run check(and CI) now fail on version drift. App and extension are both 1.4.0. - Tidier example input — the search placeholder, ZIP-name example, and parser test use a neutral example subreddit.
🛠 Internals
- New
scripts/sync-version.mjs(set + propagate +--check), wired into the build gate; the previous per-extension bump script is retired. 163 tests pass.
Full changelog: v1.3.0...v1.4.0
Pulldit v1.3.0
Pulldit v1.3.0 — bulk-download quality-of-life: automatic ZIP batching, stop/pause controls, progress bars, and a tidier results view. Still 100% in your browser: no account, no tracking, no backend, strict CSP, no third-party requests.
✨ New
- Automatic ZIP batching — select 1000 images with "Max files per ZIP" at 250 and one click now downloads all 4 ZIPs automatically (
pulldit-<sub>-<sort>-1.zip,-2.zip, …), with a short gap between saves. No more re-clicking per batch. - Meaningful ZIP names —
pulldit-<subreddit | u-user | post-id>-<sort>[-<time>]from the last fetch, instead ofpulldit-<count>.zip. - Stop & Pause/Resume — fetch and downloads can be stopped; downloads can also be paused and resumed (resume continues where it left off; finished ZIP batches are already saved). A stopped fetch keeps the pages it already got.
- Fetch progress bar — indeterminate for a single request, determinate (items / target) while auto-paginating.
- Results that scroll internally — the grid no longer turns 1000+ items into a kilometre-long page; it scrolls within a bounded area (per-card virtualization preserved).
- Hide saved — a toolbar toggle clears already-downloaded ("✓ saved") items from view.
- Extension version + update notice — the proxy panel shows the installed extension version and, when a newer build is released, an "update available" notice; the install modal shows the latest version.
🛠 Internals
downloadZipprocesses every selected item in batches (global progress, returns{ zips });downloadSingleforwards the abort signal; new pause-gate + AbortController plumbing. 163 tests pass.
Full changelog: v1.2.0...v1.3.0
Pulldit v1.2.0
Pulldit v1.2.0 — auto-pagination past Reddit's 100-items-per-request cap. Still 100% in your browser: no account, no tracking, no backend, strict CSP, no third-party requests.
✨ New
- Auto-pagination — Reddit caps a listing request at 100 items, so previously the Limit was stuck at 100. Now a Limit above 100 transparently fetches multiple pages (following Reddit's
aftercursor), de-dupes and merges them, and stops when your target is reached, the listing ends, a page adds nothing new, or a safety bound is hit.- The Limit field is raised and shows a hint when pagination kicks in (how many items / ~how many requests). With auto-pagination off it warns that only the first 100 will be fetched.
- Robust failures: a failing first page surfaces the real error; a failing later page returns a partial result instead of losing everything.
- The fetch statistics show a Pages count and the history entry notes
N pages.
- New Advanced settings: Auto-paginate past 100 (toggle, default on), Max items (pagination) total cap (100–2000, default 500), and Page request delay (ms) between page calls (default 400, to dodge Reddit rate limits).
🛠 Internals
- New pure
aggregatePages()inreddit.js(merge + de-dupe by id + summed counters + recomputed media breakdown), fully unit-tested. 163 tests pass. - Single-request behavior (post pages / auto-pagination off / Limit ≤ 100) is unchanged.
Full changelog: v1.1.0...v1.2.0
Pulldit v1.1.0
Pulldit v1.1.0 — a feature & hardening release. Everything still runs 100% in your browser: no account, no tracking, no backend, strict CSP, no third-party requests.
✨ New
- Media validation — before any file is saved or zipped:
- Check 1 (magic bytes): confirms each download is a genuine image/video and rejects mislabeled payloads — HTML error/“removed”/rate-limit pages, executables, archives, scripts. Pure & near-instant.
- Check 2 (decode probe): optional, only runs on the few files with no known signature; decodes them to decide and frees the bitmap immediately. Catches corrupt/disguised media.
- Both toggleable in Advanced settings (Check 2 only when Check 1 is on). This is content sniffing, not an antivirus — media is decoded data, not executed code.
- Sticky header & footer — header (brand + GitHub · About · Extension · Disclaimer) and an always-visible footer with brand/version, local status pills (CI/CodeQL/Deploy/MIT, no external images) and a privacy note.
- Activity history, detailed — second detail line (fetch: sort · time · proxy mode; download: filename · size; ZIP: skipped · elapsed), a configurable display limit, auto-overwrite vs. keep-everything, a “Show more” expander, and per-entry delete.
- Link history — per-link delete plus an auto-save toggle (off = curate manually via “+ Add current link”).
- Advanced settings — now also hosts the Clear stored data tool, the history limit/overwrite controls, link auto-save, and the two validation checks. Everything is saved locally and re-loaded automatically.
🛠 Changed / fixed
- Consolidated all navigation in the header (removed the duplicate footer nav); added a real
#disclaimeranchor. - New “invalid” download-failure category in the statistics.
🔒 Security
- New
src/media-validate.js(pure + browser-guarded), wired into single + ZIP downloads. 159 tests pass. - No CSP changes; the new status pills are local CSS (no github.com / shields.io requests).
Full changelog: v1.0.0...v1.1.0
Pulldit v1.0.0
First public release — static, browser-only Reddit media downloader.
- Switchable proxy modes: direct / your own Cloudflare Worker / public proxy
- Strict CSP, locally vendored libs, host allowlisting, server-free
- 65 unit tests, CI + CodeQL + dependency scanning, auto-deploy to Pages
See README for details. Not affiliated with Reddit, Inc.