Faits :
A.
Le 8 janvier 2015 (alors qu'il se trouvait sous ordre d'écrou en exécution d'une précédente condamnation), A._ a été prévenu par le Ministère public du canton de Genève de lésions corporelles graves et d'agression pour avoir, le 22 août 2013 avec trois autres personnes, porté divers coups de couteau au visage et aux cuisses de B._.
La libération conditionnelle pour la peine précédente, qui courrait jusqu'au 8 mars 2015, a été refusée par jugement du 3 février 2015 du Tribunal d'application des peines et des mesures du canton de Genève. Par ordonnance du 6 février 2015, le Tribunal des mesures de contrainte du canton de Genève (Tmc) a ordonné la détention provisoire de A._ jusqu'au 13 mars 2015. Par arrêt du 24 février 2015, la Chambre pénale de recours de la Cour de justice du canton de Genève a rejeté le recours formé contre cette ordonnance, considérant qu'il existait des charges suffisantes ainsi qu'un risque concret de fuite et de réitération. L'exécution de l'ordre d'écrou ne pouvait se substituer à la détention provisoire. Par arrêt du 29 avril 2015 (1B_102/2015), le Tribunal fédéral a rejeté le recours formé par A._. Celui-ci estimait que son placement en détention provisoire, alors qu'il exécutait une peine, était disproportionné. La conclusion en constatation présentée sur ce point était toutefois irrecevable, la violation alléguée étant de peu de gravité. Sur le fond, les charges apparaissaient suffisantes, les risques de fuite et de réitération n'étant pas contestés.
B.
Par ordonnance du 9 mars 2015, le Tmc a entretemps ordonné la mise en détention pour des motifs de sûreté jusqu'au 9 juin 2015, le Ministère public ayant présenté l'acte d'accusation le 6 mars 2015. Par arrêt du 31 mars 2015, la Chambre pénale de recours a confirmé cette décision, reprenant les termes de son arrêt précédent. L'exécution de peine ne pouvait se substituer à la détention pour des motifs de sûreté: on ignorait le nombre exact de jours restant à purger ainsi que le régime de détention; la semi détention, applicable aux soldes de peines de moins de six mois, n'était pas compatible avec les risques de fuite et de récidive. La durée de la détention a toutefois été ramenée au 30 avril 2015, dès lors que l'audience de jugement avait été fixée au 15 avril 2015.
C.
Par acte du 1er mai 2015, A._ forme un recours en matière pénale. Il demande principalement au Tribunal fédéral d'annuler l'ordonnance attaquée, de rejeter la demande de mise en détention provisoire déposée le 5 février 2015 par le Ministère public, de "constater que le placement en détention pour des motifs de sûreté à compter du 6 mars 2015 viole l'art. 5 CEDH et de dire que la détention subie à compter du 6 mars 2015 est imputée sur le solde de la peine à purger dans le cadre de la procédure P/10773/2013". Il requiert en outre l'assistance judiciaire. Il précise que le Tribunal correctionnel l'a condamné, le 15 avril 2015, à 36 mois de privation de liberté sous déduction de 73 jours de détention avant jugement et a, par décision séparée, ordonné son maintien en détention. Le recourant a fait appel de ce jugement.
Le Ministère public conclut au rejet du recours dans la mesure de sa recevabilité. La cour cantonale a renoncé à se déterminer. Le recourant a répliqué le 19 mai 2015; il a retiré sa conclusion en constatation, mais maintenu ses autres conclusions.
Considérant en droit :
1.
Le recours en matière pénale (art. 78 al. 1 LTF) est ouvert contre une décision relative au maintien en détention provisoire ou pour des motifs de sûreté au sens des art. 212 ss CPP. Comme il l'a fait dans son précédent arrêt, le Tribunal fédéral examine d'office et librement si le recourant dispose d'un intérêt juridique actuel à l'admission de ses diverses conclusions (art. 81 al. 1 let. b LTF).
1.1. Bien qu'ayant retiré sa conclusion en constatation, le recourant persiste à considérer qu'il aurait dû, en lieu et place de la détention provisoire - puis pour des motifs de sûreté -, exécuter le solde de la peine prononcée antérieurement, soit selon lui 28 jours. Il estime qu'en cas d'acquittement à l'issue de la procédure d'appel, il pourrait être remis immédiatement en liberté s'il n'avait un solde de peine à purger, et pourrait demander une indemnisation au sens de l'art. 429 CPP. Il relève aussi qu'il a été condamné au paiement des frais de l'arrêt attaqué. Il formule une conclusion tendant à la réforme de l'arrêt cantonal, à l'annulation de l'ordonnance du Tmc du 9 mars 2015 et au rejet de la demande de mise en détention du 6 mars 2015.
1.2. Actuellement, la détention du recourant ne se fonde plus sur l'ordonnance du Tmc du 9 mars 2015, mais sur la décision rendue par le Tribunal correctionnel avec le jugement de condamnation. Cette dernière décision repose elle aussi sur l'existence d'un risque de fuite, de sorte que le recourant pourrait avoir un intérêt actuel et pratique à la vérification des conditions de son maintien en détention. Toutefois, le recourant ne remet nullement en cause le principe même de la détention: il ne conteste ni l'existence de charges suffisantes - qui ressortent désormais du jugement de condamnation -, ni celle d'un risque de fuite. Le recours porte donc exclusivement sur la question du solde de peine dont l'exécution pourrait se substituer à la détention pour des motifs de sûreté.
Cela étant, on peut se demander si le recourant conserve un intérêt à ce que soit examinée à ce stade la possibilité d'exécuter le solde de peine à titre de mesure de substitution. En effet, dans l'hypothèse où il serait acquitté en appel, il pourrait réclamer l'imputation des jours de détention subis à tort sur le solde de peine à exécuter dans le cadre de la procédure P/10773/2013 (arrêt 1B_102/2015, consid. 1.1.2; arrêt 1B_98/ 2014 du 31 mars 2014 consid. 1.2.2). Quant à une éventuelle indemnisation pour détention injustifiée, elle pourrait elle aussi faire l'objet d'une décision ultérieure (art. 429 CPP). Le recourant n'a dès lors pas d'intérêt actuel à l'examen de ses griefs.
1.3. Dans son recours ainsi qu'en réplique, le recourant demande aussi au Tribunal fédéral d'imputer la détention subie depuis le 6 mars 2015 sur le solde de peine. Il s'agit là d'une conclusion nouvelle qui n'a été soumise ni à la Chambre pénale de recours, ni au Tribunal correctionnel, et qui pourra le cas échéant être traitée par l'instance d'appel; elle est dès lors irrecevable en vertu de l'art. 99 al. 2 LTF.
1.4. Enfin, le recourant ne démontre pas déduire sa qualité pour recourir de sa condamnation aux frais cantonaux: il admet lui-même bénéficier de l'assistance judiciaire gratuite au plan cantonal, de sorte que - là encore - un intérêt pratique fait défaut (arrêt 1B_102/2015 consid. 1.1.1).
2.
Il s'ensuit que le recours est irrecevable. Cette issue apparaissait prévisible, notamment sur le vu du précédent arrêt du Tribunal fédéral. Le recourant n'a toutefois pris connaissance de ce dernier qu'après le dépôt du recours, de sorte que l'assistance judiciaire peut encore lui être accordée. Me Boris Lachat est désigné en qualité d'avocat d'office et ses honoraires sont supportés par la caisse du Tribunal fédéral (art. 64 al. 2 LTF). Le recourant est en outre dispensé des frais judiciaires (art. 64 al. 1 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est irrecevable.
2.
La demande d'assistance judiciaire est admise; Me Boris Lachat est désigné comme avocat d'office du recourant et une indemnité de 1'500 fr. lui est allouée à titre d'honoraires, à payer par la caisse du Tribunal fédéral.
3.
Il n'est pas perçu de frais judiciaires.
4.
Le présent arrêt est communiqué au mandataire du recourant, au Ministère public du canton de Genève et à la Chambre pénale de recours de la Cour de justice du canton de Genève.
Lausanne, le 27 mai 2015
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Juge présidant : Merkli
Le Greffier : Kurz