The previous implementation required hash IDs to contain letters a-f, but SHA256 hashes can be all digits (probability ~2.4%). This caused TestMigrateHashIDs to fail when the generated hash ID was all numeric. Updated isHashID to: - Strip hierarchical suffixes (.1, .1.2) before checking - Accept any valid hex string (0-9, a-f) - Distinguish hash IDs by presence of letters a-f Fixes bd-6ku3