script/lib/icons.js draws the mark from geometry read back out of the committed PNGs, since the coordinates were never recorded, and writes each PNG with node's own zlib; `make icons` runs it. tests/icons.test.js compares what it draws with icons/ byte for byte. That test is red on purpose. Every pixel matches at all four sizes, but node 22's bundled zlib compresses at level 9 differently from the stock zlib 1.3.1 that made the committed files, so the IDAT bytes differ. How to settle that is the owner's call, asked on the issue. TODO.md is updated with the landing commit. build.js copies the manifests from MANIFEST_SOURCES instead of naming the two paths a second time. Model: opus-5-5