The widget that froze because it refreshed too often
A Date field in a Codable struct joined the
synthesized Equatable, so every poll looked like a change and the
app asked WidgetKit to reload thousands of times a day — against a documented
allowance of 40 to 70. WidgetKit throttles silently, and the tile stops moving.
How the comparison went wrong, why the test that covered it was green anyway,
and why the fix is a projection rather than a custom ==.