Faits: Faits: A. X._ a travaillé comme réceptionniste à l'Hôtel Z._ (ci-après le Z._) à Montreux de 1992 à 1998. Le 8 mai 1998, la direction de cet établissement a déposé plainte pénale contre son employée qu'elle soupçonnait d'avoir détourné un montant de plus de 55'0000 fr. dans la gestion de la caisse de la réception de l'hôtel. Le 25 juin 1998, A._, comptable, a établi un rapport selon lequel X._ aurait, entre décembre 1996 et mars 1998, prélevé un montant total de 69'702,30 fr. Les employés et les clients du Z._ avaient la possibilité de retirer des montants en espèce à la réception de l'établissement, sur présentation d'une carte postale ou bancaire. L'employé de la réception portait chaque opération au débit d'un compte particulier géré par un logiciel spécial (dénommé «Fidelio»). Un récépissé justificatif était déposé dans un casier, d'où il était extrait pour classement dès que la pièce postale ou bancaire attestant le débit du compte de l'employé ou du client parvenait au Z._. X._ aurait relevé un montant déterminé (de l'ordre de 100 fr. à 300 fr.) de la caisse de la réception, puis aurait effectué une opération de débit fictive pour un montant identique. Pour cacher la malversation, une opération de crédit (également fictive) était faite à double. Ce système n'avait pu fonctionner qu'en raison des failles du système Fidelio et d'un retard (de l'ordre de six mois) dans la saisie et le contrôle des pièces comptables. Entendue le 25 mai 1998 par la police cantonale, puis par le Juge d'instruction de l'arrondissement de l'Est vaudois, X._ a reconnu les faits et décrit le mode opératoire utilisé. Par la suite, elle a contesté le montant des malversations reprochées. Le 6 juin 2002, après que B._, désigné comme expert, a confirmé les conclusions du rapport établi par A._, le Tribunal correctionnel du district de Vevey a reconnu X._ coupable d'abus de confiance et de faux dans les titres; il l'a condamnée à la peine de neuf mois d'emprisonnement avec un délai d'épreuve de deux ans. X._ a recouru auprès de la Cour de cassation pénale du Tribunal cantonal du canton de Vaud, qui l'a déboutée le 10 septembre 2002. Par arrêt du 3 juillet 2003, le Tribunal fédéral a rejeté le recours de droit public formé par X._ contre cet arrêt (cause 1P.205/2003). Par arrêt du 3 juillet 2003, le Tribunal fédéral a rejeté le recours de droit public formé par X._ contre cet arrêt (cause 1P.205/2003). B. Le 17 février 2004, X._ a présenté une demande de révision de l'arrêt du 20 septembre 2002, que la Commission de révision pénale du Tribunal cantonal a écartée, par arrêt du 2 mars 2004. B. Le 17 février 2004, X._ a présenté une demande de révision de l'arrêt du 20 septembre 2002, que la Commission de révision pénale du Tribunal cantonal a écartée, par arrêt du 2 mars 2004. C. Agissant par la voie du recours de droit public, X._ demande au Tribunal fédéral d'annuler l'arrêt du 2 mars 2004 et de renvoyer la cause à l'autorité cantonale pour décision au sens des considérants. Elle invoque l'art. 9 Cst. prohibant l'arbitraire. La Commission de révision pénale se réfère à son arrêt. Le Ministère public propose le rejet du recours.