invalidate_config_sources() -> NoneDrop the cached managed snapshot and the shared process resolver.
Test-only. Production reloads pass refresh=True instead, which keeps the
last snapshot that parsed cleanly if the new one fails; clearing the cache
first would leave readers with an empty managed table on a failed reload.
Both caches are cleared together because they are keyed differently: dropping only the managed snapshot leaves the resolver holding the previous generation, which is the half most tests actually read.