[0.9.0] - 2026-09-21
Added
- Central run archive for comparing runs after their project directories are
gone. When a pipeline opts in withdiff.archive.enabled = true, an
end-of-run trace observer snapshots each finished run into a shared archive
directory, anddifftransparently falls back to that archive whenever a
requested run is no longer in the local.nextflow/history. The observer is
off by default and inert unless enabled, so existing users see no behaviour
change.mode = 'lightweight'(default) stores run and per-task metadata;
mode = 'complete'also copies each task's output and.command.*log files
(staged input symlinks are skipped). The archive location resolves from
diff.archive.dir/--archive-dir, thenNXF_DIFF_ARCHIVE_DIR, then the
default$NXF_HOME/nf-diff/archive. Archiving is best-effort and never fails
the pipeline run.
Fixed
- File-content comparison now decides identity on the full SHA-256 digest,
not a truncated 12-character prefix. Two same-size files that differed only
beyond the first 48 bits of their digest could previously collide and be
misreported asUNCHANGED— and such a change would not count toward
--fail-on-change. The equality decision now compares full digests; the
12-character prefix is retained only for compact display in the report, so
HTML/JSON output is unchanged. Affects--diff-outputsand the
--published-a/--published-bcomparison.
Documentation
- Documented the central run archive (
diff.archive.*config, the
--archive-diroption,NXF_DIFF_ARCHIVE_DIR, and the lightweight/complete
modes) in the usage guide and website docs. - Documented that archiving requires the plugin to be active for the run.
The archive section now shows theplugins { id 'nf-diff@<version>' }
declaration (or-plugins nf-diff@<version>) needed so the end-of-run
observer is loaded —diff.archive.enabled = truealone has no effect unless
the pipeline loads the plugin.
Full Changelog: v0.8.0...v0.9.0