Faits : A. Le 21 avril 2017, le corps sans vie de C._ a été découvert dans un ravin; sa disparition avait été signalée le 17 décembre 2016 par sa fille B._. L'enquête a conduit à l'interpellation du mari de la victime, A._, qui a admis avoir tué son épouse lors d'une altercation, puis de B._, qui a admis avoir aidé son père à faire disparaître le corps, mais contesté avoir participé à l'homicide. Le 4 juin 2017, le Tribunal des mesures de contrainte (Tmc) a ordonné la mise en détention provisoire pour trois mois de B._. Cette décision, confirmée par la Chambre des recours pénale du Tribunal cantonal vaudois puis par le Tribunal fédéral (arrêt 1B_296/2017 du 8 août 2017, confirmant l'existence d'un risque de collusion), a été reconduite à plusieurs reprises. Par arrêt du 12 février 2018 (1B_28/2018), le Tribunal fédéral a ordonné sa mise en liberté immédiate, un risque de collusion ne pouvant plus être retenu à ce stade. A._ a quant à lui été détenu jusqu'au jugement. Les prévenus ont été renvoyés en jugement devant le Tribunal criminel de l'arrondissement de l'Est vaudois pour assassinat et atteinte à la paix des morts. B. Les débats ont eu lieu devant le Tribunal criminel du 27 au 29 mai 2019. A l'issue de ceux-ci, le tribunal a ordonné la mise en détention immédiate de B._ pour des motifs de sûreté, compte tenu de la lourde peine requise par le Ministère public (20 ans de privation de liberté pour assassinat). Par jugement du 6 juin 2019, le Tribunal criminel a condamné B._ à une peine privative de liberté de 20 ans, sous déduction de 266 jours de détention provisoire, pour assassinat et atteinte à la paix des morts, considérant qu'elle avait agi de concert avec son père dans la préparation et l'exécution de l'homicide, ainsi que pour faire disparaître le corps. A._ a été condamné pour les mêmes infractions à une peine privative de liberté de 18 ans, sous déduction de 769 jours de détention provisoire et pour des motifs de sûreté. Le Tribunal criminel a ordonné le maintien des condamnés en détention pour des motifs de sûreté; s'agissant de B._, il a pris en compte l'importance de la peine prononcée, le fait qu'elle ne disposait pas d'attaches professionnelles avec la Suisse et que vu son âge (41 ans), il existait un risque de fuite concret. A l'égard de A._, le tribunal a également retenu un risque de fuite. Le risque de collusion a également été retenu à l'égard des deux prévenus afin d'éviter que ceux-ci n'ajustent leurs déclarations en vue de la procédure d'appel. Les condamnés ont chacun fait une annonce d'appel contre ce jugement. C. B._ a recouru contre son maintien en détention auprès de la Chambre des recours pénale du Tribunal cantonal vaudois, concluant à sa libération, éventuellement moyennant des mesures de substitution. A._ a également recouru contre son maintien en détention. Par un seul arrêt du 28 juin 2019, la Chambre des recours pénale a rejeté les deux recours. Le risque de collusion ne pouvait plus être retenu à ce stade de la procédure. S'agissant du risque de fuite de B._, la Chambre des recours pénale a considéré que si celle-ci était de nationalité suisse, elle était sans attaches professionnelles et désargentée. Depuis sa condamnation à 20 ans de privation de liberté, la tentation de fuir, même sans passeport, était devenue plus concrète. Les mesures de substitution proposées (dépôt de l'intégralité des documents d'identité, présentation au poste de police, subsidiairement port d'un bracelet électronique) n'apparaissaient pas suffisantes pour prévenir le risque de fuite. D. Agissant par la voie du recours en matière pénale, B._ demande au Tribunal fédéral de réformer les ch. II, III, VI et VIII du dispositif de la décision cantonale ainsi que le ch. II du dispositif du jugement du 6 juin 2019, en ce sens que sa libération immédiate est ordonnée, sous suite de frais; subsidiairement, elle conclut à sa mise en liberté moyennant les mesures de substitution proposées. La recourante demande l'assistance judiciaire. La Chambre de recours pénale se réfère à sa décision, sans autres observations. Le Ministère public conclut au rejet du recours. La recourante a renoncé à déposer des observations complémentaires. Le Tribunal fédéral a délibéré en séance publique le 17 septembre 2019.