fix: force re-enrichment when enriched_at is missing from cluster dict
Content-changed articles (detected via content_hash comparison) were not
getting re-enriched because _enrich_one's cache check only looked for
entities+keywords presence. The pre-seeded cluster dict loaded after
step 3c cleared enriched_at from DB still carried entities/keywords,
so the cache check passed and LLM was skipped.
Fix: require enriched_at to be present in the cache check. If missing,
always re-enrich regardless of entities/keywords. This is a reliable
signal that the cluster's content has changed and needs fresh enrichment.