Fixed
- Environmental discovery proposals no longer advertise occupancy or time-of-day conditioning the rule doesn't have. Field validation caught the discovery model decorating every environmental statistical candidate with context the prompt explicitly bans ("Garage Temperature Statistical Deviation While Away During Day"): the rule that Approve activates was always the context-free baseline detector, but the approval card showed the decorated title, summary, and evidence — and approving would mint a rule permanently named
..._away_day. Candidates are now sanitized deterministically at ingestion and again at the promote, approve, and preview boundaries (so candidates stored before this fix can't mint decorated drafts or rules): occupancy/night evidence paths come off in every spelling the canonical parser recognizes, pure-decoration clauses and parentheticals are removed from prose while substantive wording ("home temperature", "Home Assistant", "the 7-day average") always survives, trailing context tokens are dropped from the ID that seeds the rule name, and a sanitized candidate must derive exactly the same dedup key as the original or the change is reverted wholesale. Candidates with numeric-threshold prose — whose night/occupancy conditions are real rule parameters — pass through untouched, hostile oversized prose can no longer stall Home Assistant in the stripping pass, and the honesty guards that drop hallucinated-entity candidates still judge the model's original output.
Full details: PR #553