UnGathered Tests Gaps Without Hiding Scan Errors
A collection checker can fail in an especially unhelpful way: it can overlook the items it was supposed to check and then announce that everything is complete. UnGathered’s tests therefore pay attention to the route into a result, including anchor selection and errors, rather than only checking a report’s final totals.
The automated tests cover required files and directories, minimum sizes, content patterns, path variables, missing parents and wrong types. They also check deterministic ordering, input preservation, HTML escaping and report output reservation. Empty collections fail by default. A content file above the configured read limit produces an operational error, without matching against a silently shortened prefix.
Independent review found an important edge case before release. A noncanonical anchor glob could select nothing, and an explicitly optional empty collection could then pass. The manifest now rejects those spellings. The same review exposed field overrides through duplicate JSON keys and case or Unicode lookalikes. Schema keys now use exact lowercase ASCII spelling, with regression checks for the overrides. Ancestor symlinks that could hide matching items are reported as errors, and concurrent scans do not mutate their shared manifest.
The generated demonstrations exercise the command line too. The manufacturing example has six checks and two gaps: an empty drawing and a missing inspection record. The publishing example has four checks and two gaps: a missing image and absent credit text. Source file inventories and digests stay unchanged during scanning. The demonstration script then supplies the missing manufacturing content itself and verifies a complete result. That repair belongs to the fixture preparation, never to the scanner.
Linux and macOS CI run vet and race-enabled tests. The release workflow builds five archives and runs native smoke checks on Linux amd64, macOS arm64 and Windows amd64. The other two architectures are cross-built. All five published archives were independently checked against SHA256SUMS at both the tag and latest links, and a separately downloaded Linux binary reproduced the expected demonstration gaps. Archive contents were checked for the example manifests, reference and license files as well. The recorded evidence keeps those checks available to inspect.