cached_pixel_mask is keyed only on arm_date and was cleared only in
Close(); ReadURL() reused it, so switching to a source whose start message
has an empty or duplicate arm_date silently kept the previous source's
mask (wrong pixels masked in the live preview and fed to spot-finding /
azimuthal integration). Clear it in ReadURL() too, as Close() does.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>