mesh-catalog's 140 module directories are 420 forge reads per merge, past the 30 s bound of a handled event while the forge is busy: the merged message of #535 timed out on every try, and #3fb7951 needed seven (issue 1458 met the same kind at 131). A tree hash names its bytes, so what was read at a tree is kept in the new state inputs and in memory, and a merge reads only the directories it changed.