d057d56156
The fix reported every distinct unprotected name, but nothing held it there. Mutation: replacing .filter(unprotectedGapNamesWarned::add) with a filter that adds and always returns true - so every name is logged on every spawn - left all 1358 tests green. The Set behaved; nothing proved this class used it as a guard rather than as a record. Two tests added: - theSameUnprotectedNameIsWarnedAboutOnlyOnceAcrossSpawns pins invariant 1, the noise control. It now fails on that mutation, showing both duplicate WARNs. - anAllowListWarnDoesNotSuppressALaterDenyByDefaultWarnForADifferentName covers the reverse policy order. The defect was found going deny-by-default then allow-list; a guard fixed in one direction is not fixed in the other.