v4.66.0
_cluster_reassign falls back to hash grouping only where sorting raises, keeping sortable ids byte-identical to 4.65.0 (measured 0/1200 differing; an unconditional switch changed 724/1200). The shot arm clusters on (provider, game_id), so pooling providers cannot fuse two matches that share a game_id value and corrupt the cluster-exchangeable null. No retrain. C4 count unchanged (32).