Every SHA-1 wrapper in dog/git/SHA1.h calls SHA1DCSetSafeHash(ctx, 0) (disabling the safe-hash countermeasure) AND discards SHA1DCFinal's return value (1 = collision block detected). So the vendored sha1dc costs the detection cycles on every hash and protects nothing — a SHAttered-style colliding object ingests silently. Found in the 2026-07-24 dog/git review. Method: work.
dog/git/SHA1.h:38-57 — SHA1Sum, SHA1Open (SetSafeHash 0), SHA1Close, plus SHA1Sum's own Final: all four drop the result.PIDXObjSha, keeper's KEEPObjSha twin), so a check covers ingest and index alike.SHA1Sum/SHA1Close are fun void — surfacing a code changes the signatures; callers ripple (dog, keeper, js binding).SHA1COLL), never a silently-accepted object.ok64 codes via abc/ok64; PRO.h stays out of headers.SHA1Sum/SHA1Close to ok64, thread the code through callers; ctest green across dog + keeper + js.fun void callers is the bulk of the diff.