action_complete_visit referenced self._assessment_sale_type() to group ADP devices by funding, but the method was never defined - any visit containing an ADP device would have raised AttributeError. Mirrors fusion.assessment._create_draft_sale_order: adp_odsp for ODSP client streams, adp otherwise. Caught by the clone ADP-grouping smoke test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>