I build a product that writes for small businesses, and the failure I keep hitting isn't hallucination. It's staleness.
A business changes a price. Drops a service. Moves its hours. The model doesn't know that anything happened, so it keeps confidently asserting the old thing in text published this week. Every fact it was ever given has equal standing, forever. There's no notion of "this was true in March and isn't now."
RAG doesn't fix it, because retrieval returns whatever matches, not whatever is currently true. Bigger context doesn't fix it either, it just means more contradictory facts in the window at once.
What I ended up building is a change journal where every fact carries a source, a strength and an expiry, and every published text remembers which facts it stands on. When something changes, deterministic code computes what became false, what needs rewriting, and what to ask the owner about. The model never adjudicates. It only extracts candidates and explains.