Changelog
All notable changes to the NFSFU234 ShotSweep Library will be documented in this file. The format is based on Keep a Changelog and adheres to Semantic Versioning.
[1.3.0] — Scroll-reveal capture and hardening
Added
- Scroll warm-up before
fullandsectionscaptures, so scroll-reveal content and lazy-loaded images appear. Disable with--no-scroll. --image-wait <ms>: wait for images still loading after the scroll, re-request images cancelled by a load timeout, and warn about any that never finish.- A page that times out on
--wait-untilbut is already usable is captured with a warning;--strict-loadrestores failing. --freeze-animations,--user-agent,--ignore-https-errors, and--headers-all-origins.- URLs without a scheme get
https://(http://for localhost), and pasted Markdown links are unwrapped. All invalid URLs are reported together before capture starts. - Sitemap fetches have a timeout, a cycle guard, a depth limit, and
.xml.gzsupport. - Comments (
#) and UTF-8 BOMs are handled in URL, paths and CSV files. - Failure reasons and warnings are printed under the run summary.
diffreports screenshots it can’t read aserrorresults.
Changed
--bearerand--headerare sent only to the captured site and its subdomains.manifest.jsonentries are replaced per job, use forward-slash paths, and are written atomically. A corrupt manifest is moved aside instead of overwritten.- Folder names include the port, and add a hash suffix for query-string, non-ASCII, or very long paths.
- Screenshots,
--waitselectors and retries respect--timeout. --resumere-captures a job whose screenshot file was deleted.diffcountserrorresults as regressions and matches pages across path styles, trailing slashes, and moved manifests.
Fixed
--zipwith--out .no longer writes..zipor includes itself.- A single failing page no longer aborts the whole batch, and Chromium is always closed.
- A broken
shotsweep.config.jsonis reported instead of silently ignored. - Malformed
--headerand--cookievalues are rejected instead of skipped. - Credentials embedded in URLs are masked in
run-record.json. - Stale
section-NNfiles from an earlier run are removed.
See Upgrading to 1.3 for behaviour changes that can affect existing baselines.
[1.2.0] — Element capture and run provenance
Added
--mode elementwith--selectorto capture a single element, cropped to its own size.run-record.json, written with every capture (skip with--no-record): tool, browser and OS versions, redacted resolved config, and SHA-256 hashes of the screenshots.diffflags environment drift between two runs and records provenance, the pass/fail decision, and image hashes indiff-report.json.
[0.1.0] — NFSFU234 Open Source Day (2026-08-25)
Initial public release.
NFSFU234 ShotSweep is a command-line screenshot and visual regression tool built for developers who need repeatable website captures, automated visual comparisons, CI-friendly workflows, and reliable screenshot automation at scale.
This is the first public release of ShotSweep and is being launched as part of NFSFU234 Open Source Day, alongside the established NFSFU234 Tour Guide and NFSFU234 Form Validation .
Added
-
Capture single URLs, arrays, CSVs, or complete sitemaps, including sitemap-index files.
-
Full-page and section-sliced screenshot modes.
-
Multiple viewport captures per run.
-
Named viewport presets:
desktoptabletmobile
-
Raw
WxHviewport definitions. -
--replace-originfor reusing production sitemaps against localhost or staging environments. -
Generic authentication support:
- saved sessions via
shotsweep login - bearer tokens
- custom headers
- cookie injection
- saved sessions via
-
Authentication workflows verified against real authenticated captures.
-
shotsweep difffor pixel-comparing two capture runs by manifest. -
Diff output includes:
old.pngnew.pngdiff.pngdiff-report.json
-
--zipsupport for bundling diff output. -
Non-zero exit codes when real visual changes are detected, allowing ShotSweep to gate CI pipelines.
-
--concurrencywith CPU-aware warnings. -
--timeoutand--retriesfor real-world capture reliability. -
Retry behavior verified against an actual transient failure.
-
--zipsupport oncapturefor bundling capture output. -
--dry-runfor previewing resolved targets without taking screenshots. -
--jsonand--quietfor scriptable and CI-friendly output. -
--debugfor detailed diagnostic information. -
--describefor generating an AI-ready summary of a completed capture run. -
--resumefor skipping URL/viewport pairs already captured in an existing output manifest. -
--verbosefor persistent per-job completion output, particularly useful with concurrent captures. -
--limitand--offsetfor capturing a specific slice of resolved URLs. -
--wait-until <domcontentloaded|load|networkidle>for controlling when a page is considered ready for capture. -
--thresholdsupports:- raw ratios
- percentages such as
"0.1%" - named presets:
strict,default, andloose
-
Configuration file support through:
shotsweep.config.json.shotsweeprc.json
-
shotsweep diffreads the same configuration file ascapture, with an optionaldiffsection for diff-specific overrides. -
Explicit CLI flags take precedence over configuration-file values.
-
CLI
name,description, andversionare now read frompackage.jsonat runtime rather than duplicated as hardcoded values. -
Per-file
manifest.jsonlogging including:- URL
- mode
- viewport
- file path
- file size
- timestamp
Release
NFSFU234 ShotSweep is launching as a new project for NFSFU234 Open Source Day on August 25, 2026.
It joins the NFORSHIFU234 Dev open-source ecosystem alongside NFSFU234 Tour Guide and NFSFU234 Form Validation .
Learn more at the NFSFU234 ShotSweep website .
Part of the NFORSHIFU234 Dev open-source ecosystem, published for NFSFU234 Open Source Day.