4b7b67cefa
Deleted platform-specific buildUniqueKey($project, $platform). It diverged for SMS (B2='sender+keyword', B3='sender' alone) → orphan supplier_projects on sharing rebalance — B2 and B3 rows for the same project couldn't be reconciled as one group. Now ALL platforms use buildUniqueKeyAgnostic: site/call → signal_identifier sms+keyword → sender+keyword sms (no kw) → sender 3 callers updated: SyncSupplierProjectJob (online + batch paths) and SupplierProjectImporter. Pest +1 test on Importer SMS commit asserts uniform unique_key=sender+keyword across B2+B3 (RED before fix, GREEN after). Full Importer suite 15/15 GREEN, SyncSupplierProjectsJob 12/12 GREEN. Stage 4 §4.4.1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>