New builtins
Tree.combine— applies a function to pairwise values in two trees to create a combined treeOrigami.hash— returns a hex hash string for a given inputOrigami.randomFrom— create a single random value from dataOrigami.randomsFrom— create a sequence of random values from data
In related work, Tree.shuffle now accepts an optional randoms argument that can be a function returned by Origami.randomsFrom. This allows you to base a shuffle on site data (posts, etc.) so that a shuffle is stable across builds but changes as the site data changes.
Dropping support for Node 20
Origami supports maintained Node releases, which according to Node's release schedule now means Node 22 or later.
Origami does not depend on any API in Node 22 that wasn't already in Node 20, so this shouldn't affect your sites. The main change is in testing and bug fixing. If an Origami bug is traced to a specific quirk in Node 20 (or earlier) that was addressed in Node 22+, that bug probably won't get fixed.