Featuresenior-devexpand
Phase 3 e2e completion: verified meal-photo approval loop; fixed iOS phone-auth custom URL scheme crash and coach invite-sheet RenderFlex overflow · Phase 4 dynamic trainer identity (de-Bret): ~40 hardcoded 'Bret' strings across Flutter + Cloud Functions rewritten, CurrentCoach now hydrates live from trainerDirectory, new coachIdentity.ts helper fixes cross-tenant push-copy leak, Theo Live voice prompt de-Bret + pronoun scrub, grep gate clean