Faits:
A. A._, ressortissant égyptien né en 1987, a été arrêté le 20 septembre 2011 et mis en prévention de tentatives de meurtre, voire d'assassinat, pour avoir participé avec au moins cinq autres personnes, le 7 août 2011, à une agression au cours de laquelle B._ a été frappé et poignardé. Il a été reconnu par la victime, mais nie toute participation à cette agression. Il est également mis en cause pour une tentative de meurtre commise le 16 septembre 2011. La détention provisoire a été prolongée jusqu'au 22 décembre 2011, puis jusqu'au 16 mars 2012. Deux demandes de mise en liberté ont été rejetées aux mois de janvier et février 2012.
B. Par ordonnance du 13 mars 2012, le Tribunal des mesures de contrainte du canton de Genève (Tmc) a refusé de prolonger une nouvelle fois la détention. Le prévenu avait reconnu s'être trouvé sur les lieux au moment de la première agression, mais contestait toute participation. La victime l'avait identifié, mais était revenue sur ses déclarations lors d'une audience de confrontation. Aucun autre élément ne venait confirmer les charges à l'encontre du prévenu, de sorte que celles-ci apparaissaient insuffisantes.
Par acte du 13 mars 2012, le Ministère public du canton de Genève a recouru auprès de la Chambre pénale de recours de la Cour de justice contre cette ordonnance. Il demandait le maintien en détention du prévenu, pour trois mois.
Par arrêt du 30 mars 2012, la Chambre pénale a admis le recours du Ministère public et ordonné le maintien de la détention provisoire jusqu'au 13 juin 2012. En dépit de l'absence d'éléments nouveaux, les charges suffisantes avaient déjà été reconnues dans des arrêts précédents de la Chambre pénale de recours, dont le Tmc ne pouvait faire abstraction. La présence des prévenus lors de l'agression du 7 août 2011 était attestée par les enregistrements vidéo, A._ y apparaissant en train d'effectuer une reconnaissance des lieux avant l'agression. A._ avait été formellement mis en cause par les deux victimes, avant que celles-ci ne se rétractent par peur des représailles. Des traces ADN appartenant au prévenu avaient été retrouvées sur un couteau cassé dans un appartement qu'il fréquentait avec deux autres personnes, également mises en cause pour la seconde agression.
C. Par arrêt du 15 mai 2012 (1B_257/2012), le Tribunal fédéral a admis un recours en matière pénale formé par A._. En réplique devant la cour cantonale, le Ministère public avait repris dans le détail le rôle joué selon lui par chacun des cinq prévenus. S'agissant de A._, il relevait notamment que celui-ci avait admis sa présence sur les lieux de la première agression, et qu'il apparaissait sur les images de vidéo-surveillance. Cette prise de position avait été transmise au prévenu pour information, sans délai pour se déterminer. Le droit d'être entendu avait dès lors été violé.
D. Statuant à nouveau par arrêt du 29 mai 2012, après avoir donné au prévenu l'occasion de se déterminer dans les trois jours sur la réplique du Ministère public, la Chambre pénale de recours a derechef admis le recours et ordonné le maintien en détention provisoire jusqu'au 13 juin 2012. La décision du Tmc reposait sur de simples convictions, sans tenir compte des précédentes décisions de la Chambre pénale. Le guet-apens du 7 août 2011 avait été commis par environ sept personnes formant deux groupes: le premier avait poursuivi la victime, le second, armé, l'attendait. Les six prévenus se trouvaient sur place et ne pouvaient prétendre avoir simplement tenté de calmer les esprits. Les surveillances téléphoniques démontraient des contacts entre les prévenus. Quatre jours après la seconde agression, trois des cinq personnes clairement désignées par la victime avaient été arrêtées dans un appartement où se trouvaient six armes blanches. L'une d'entre elles portait l'ADN de la victime et de l'un, voire de deux des auteurs présumés. S'agissant de A._, sa présence sur les lieux avant, pendant et après la première infraction était démontrée. Les images de vidéo-surveillance le montraient alors qu'il repérait les lieux avant l'agression. Il avait été formellement mis en cause par la victime. Les réticences de cette dernière à porter plainte, puis ses rétractations étaient manifestement dictées par la peur des représailles. L'intéressé était également mis en cause par la victime de la seconde agression, laquelle s'était également rétractée pour les mêmes motifs. Un couteau cassé avait été retrouvé avec l'ADN du prévenu. Les charges étaient dès lors suffisantes, et les risques de fuite et de réitération n'étaient pas contestés.
E. Par acte du 21 juin 2012, A._ forme un recours en matière pénale par lequel il demande l'annulation de l'arrêt cantonal et sa mise en liberté immédiate, ainsi qu'une constatation de violation des art. 5 et 6 CEDH, sous suite de frais et dépens pour la procédure cantonale. Le recourant requiert l'assistance judiciaire.
La Chambre pénale persiste dans son arrêt et conteste la violation alléguée du principe de célérité. Le Ministère public conclut au rejet du recours.
Le recourant a déposé des observations complémentaires le 2 juillet 2012, persistant dans ses conclusions.

Considérant en droit:
1. Selon l'art. 78 LTF, le recours en matière pénale est ouvert contre les décisions rendues en matière pénale, dont font partie les décisions rendues en matière de détention provisoire ou pour des motifs de sûreté au sens des art. 212 ss CPP (<ref-ruling> consid. 1 p. 23).
1.1 Selon l'art. 81 al. 1 let. a et let. b ch. 1 LTF, le prévenu a qualité pour agir. Le recours est formé en temps utile (art. 100 al. 1 LTF) contre une décision rendue en dernière instance cantonale (art. 80 LTF) et les conclusions présentées sont recevables au regard de l'art. 107 al. 2 LTF.
1.2 Le Ministère public relève qu'une nouvelle prolongation de la détention a été ordonnée le 12 juin 2012, et n'a pas été contestée. Le recourant n'en conserve pas moins un intérêt à ce qu'il soit statué sur ses griefs, tant en ce qui concerne les arguments relatifs au principe de célérité (en vue d'une constatation et d'une éventuelle indemni-sation) qu'en ce qui concerne le fond (dans la perspective de la suite de la procédure; <ref-ruling> consid. 1.3 p. 276).
2. Invoquant les art. 5 par. 4 CEDH, 31 al. 4 Cst. et 5 CPP, le recourant estime que la procédure devant la cour cantonale aurait duré plus de deux mois et qu'il aurait, durant cette période, été maintenu en détention sur la base d'une simple ordonnance du Président de la Chambre pénale de recours. Invoquant par ailleurs les art. 29 Cst. et 5 CEDH, le recourant reproche à la cour cantonale de ne pas avoir statué sur ses conclusions tendant à la mise à la charge de l'Etat des frais et dépens de l'instance cantonale, en raison de cette violation du principe de la célérité.
2. Invoquant les art. 5 par. 4 CEDH, 31 al. 4 Cst. et 5 CPP, le recourant estime que la procédure devant la cour cantonale aurait duré plus de deux mois et qu'il aurait, durant cette période, été maintenu en détention sur la base d'une simple ordonnance du Président de la Chambre pénale de recours. Invoquant par ailleurs les art. 29 Cst. et 5 CEDH, le recourant reproche à la cour cantonale de ne pas avoir statué sur ses conclusions tendant à la mise à la charge de l'Etat des frais et dépens de l'instance cantonale, en raison de cette violation du principe de la célérité.
2.1 Faisant immédiatement suite à l'arrêt du Tribunal fédéral du 15 mai 2012, la cour cantonale a invité le recourant à se déterminer sur les observations du Ministère public, ce qu'il a fait le 18 mai 2012. Ce n'est que le 24 mai suivant, dans une écriture non sollicitée, que le recourant a demandé une constatation d'une violation du principe de célérité, avec suite de frais et dépens. L'arrêt attaqué ne se prononce certes ni sur la recevabilité, ni sur le bien-fondé de ces dernières conclusions. S'il en résulte une violation du droit d'être entendu, celle-ci peut toutefois être réparée dans le cadre de la procédure devant le Tribunal fédéral. En effet, dans la mesure où l'irrégularité n'est pas particulièrement grave - elle ne porte pas en l'occurrence sur le fond de la cause - une telle réparation peut avoir lieu lorsque la partie concernée a la possibilité de s'exprimer et de recevoir une décision motivée de la part d'une autorité de recours disposant d'un pouvoir d'examen complet en fait et en droit. Une réparation du vice procédural est également possible si le renvoi à l'autorité inférieure constituerait une vaine formalité; l'allongement inutile de la procédure qui en découlerait serait en effet incompatible avec l'intérêt de la partie concernée à ce que sa cause soit tranchée dans un délai raisonnable (<ref-ruling> consid. 2.3.2 p. 197; <ref-ruling> consid. 2.2 p. 204). L'une et l'autre de ces conditions sont réunies en l'espèce puisque le Tribunal fédéral examine librement les questions de droit (art. 105 al. 1 LTF) et que le grief a trait, précisément, à la célérité de la procédure de prolongation de la détention, ce qui justifie qu'il soit traité immédiatement.
2.2 Concrétisant le principe de célérité, l'art. 5 CPP impose aux autorités pénales d'engager les procédures pénales sans délai et de les mener à terme sans retard injustifié (al. 1), la procédure devant être conduite en priorité lorsqu'un prévenu est placé en détention (al. 2). Selon l'art. 5 par. 4 CEDH, "toute personne privée de sa liberté par arrestation ou détention a le droit d'introduire un recours devant un tribunal, afin qu'il statue à bref délai sur la légalité de sa détention et ordonne sa libération si la détention est illégale" (cf. également art. 31 al. 4 Cst.). La question de la durée admissible au regard du principe de célérité pour statuer sur une demande de mise en liberté s'apprécie à la lumière des circonstances particulières de chaque cas d'espèce. Le droit d'obtenir une décision dans les plus brefs délais n'est pas violé si, compte tenu des circonstances, une décision ne pouvait raisonnablement intervenir plus rapidement (<ref-ruling> consid. 3a p. 375).
2.3 En l'occurrence, la décision de refus de prolongation a été rendue par le Tmc le 13 mars 2012. Le Ministère public a recouru le même jour en demandant le maintien en détention à titre provisionnel. La Chambre pénale a statué une première fois le 30 mars 2012 après avoir recueilli les déterminations du recourant et la réplique du Ministère public. Cet arrêt a été notifié le 2 avril 2012 au recourant, qui a déposé un recours en matière pénale un mois plus tard, le 2 mai 2012. L'arrêt du Tribunal fédéral a été rendu le 15 mai suivant. En exécution de cet arrêt, le recourant a été immédiatement invité à se déterminer. Il l'a fait dans le délai de trois jours fixé à cet effet, et la cour cantonale a statué à nouveau, le 29 mai 2012.
Il ressort de ce qui précède que les décisions relatives à la détention du recourant se sont succédées régulièrement et sans aucun retard. Chacune des juridictions saisies a statué à bref délai. La durée totale de la procédure relative à la détention n'est due qu'à la succession des instances saisies et l'on ne pouvait raisonnablement exiger que celles-ci statuent plus rapidement qu'elles ne l'ont fait. Il n'y a par conséquent aucune violation du principe de célérité.
3. Invoquant ensuite la présomption d'innocence, le recourant reproche à la cour cantonale d'avoir dressé un véritable acte d'accusation à son encontre, laissant entendre à plusieurs reprises et sans réserve, par des remarques ironiques et déplacées, qu'il serait coupable des faits qui lui sont reprochés.
3.1 La présomption d'innocence - art. 6 par. 2 CEDH et 32 al. 1 Cst. - empêche toute autre autorité ayant à connaître de l'affaire à un titre quelconque, de désigner une personne comme coupable d'un délit, sans réserve et sans nuance, et de préjuger de l'appréciation des faits par l'autorité appelée à statuer au fond (<ref-ruling> consid. 3b p. 331).
3.2 Saisie d'un recours du Ministère public contre un refus du Tmc de maintenir le prévenu en détention provisoire, la cour cantonale devait s'interroger sur l'existence de charges suffisantes; celles-ci ayant été niées par l'instance précédente, elle devait, à l'appui de sa décision, énumérer les éléments permettant de revenir sur cette appréciation. Les expressions figurant au consid. 2.2.2 sont de nature générale et se rapportent à l'ensemble des auteurs présumés des deux agressions. L'emploi du terme "bons samaritains" répond aux explications de certains prévenus qui prétendaient être venus en aide à la victime. Le consid. 2.3, consacré plus spécifiquement au recourant, relève que les deux victimes l'ont formellement mis en cause, et que leur rétractation ultérieure est due à la crainte de représailles, ce qui ressort d'une note du procureur faisant état des déclarations d'une victime avant une audience de confrontation. Les autres éléments à charges (repérage des lieux par le recourant avant l'agression, existence de traces ADN, contradictions au sujet de la détention d'un spray lacrymogène) sont directement repris du rapport de synthèse de la police du 12 janvier 2012, et mentionnés comme tels.
En définitive, l'arrêt attaqué se contente de reprendre les éléments à charge tels qu'ils ressortent du dossier et des précédentes décisions. Si, sur certains points, il paraît trop péremptoire au recourant, il n'en résulte pas pour autant une violation de la présomption d'innocence. Le grief doit être écarté.
4. Le recourant soutient enfin que les charges retenues à son encontre seraient insuffisantes, alors que l'instruction est arrivée à son terme. L'arrêt attaqué se fonderait sur de pures suppositions; les victimes se seraient rétractées à plusieurs reprises, notamment hors la présence des prévenus; les images vidéo ne permettraient pas de retenir qu'il aurait participé à la première agression; plusieurs témoins l'auraient mis hors de cause.
4.1 Pour qu'une personne soit placée et maintenue en détention provisoire il doit exister à l'égard de l'intéressé des charges suffisantes, soit de sérieux soupçons de culpabilité c'est-à-dire des raisons plausibles de la soupçonner d'avoir commis une infraction (art. 221 al. 1 CPP; art. 5 par. 1 let. c CEDH; arrêt 1B_63/2007 du 11 mai 2007 consid. 3 non publié in <ref-ruling>). Il n'appartient cependant pas au juge de la détention de procéder à une pesée complète des éléments à charge et à décharge et d'apprécier la crédibilité des personnes qui mettent en cause le prévenu. Il doit uniquement examiner s'il existe des indices sérieux de culpabilité justifiant une telle mesure.
L'intensité des charges propres à motiver un maintien en détention préventive n'est pas la même aux divers stades de l'instruction pénale; si des soupçons, même encore peu précis, peuvent être suffisants dans les premiers temps de l'enquête, la perspective d'une condamnation doit apparaître vraisemblable après l'accomplissement des actes d'instruction envisageables (<ref-ruling> consid. 3.1 p. 126). Le Tribunal fédéral examine librement ces questions, sous réserve toutefois de l'appréciation des faits, revue sous l'angle restreint des art. 97 al. 1 et 105 al. 2 LTF (<ref-ruling> consid. 3.2 p. 126; <ref-ruling> consid. 2.5 p. 73 s. et les références).
4.2 Les charges retenues contre le recourant se fondent en premier lieu sur les déclarations des deux victimes, qui l'ont clairement mis en cause dans un premier temps. Celles-ci se sont certes rétractées par la suite, mais elles en ont aussi donné la raison, en expliquant au Procureur qu'ils redoutaient des représailles. Le recourant est également mis en cause par trois autres participants à la première agression; il a admis s'être trouvé sur les lieux et est visible sur les images de vidéo-surveillance, en train de reconnaître les lieux peu avant l'agression en compagnie de l'un des poursuivants de la victime, également reconnaissable sur les images. L'ADN du recourant a été retrouvé sur un couteau cassé trouvé dans l'appartement où ont été arrêtés les participants présumés à la seconde agression. C'est dès lors à juste titre que la cour cantonale a retenu l'existence de charges suffisantes, sans qu'il y ait à ce stade à se livrer à une appréciation complète des preuves à charge et à décharge (<ref-ruling> consid. 3.2 p. 126).
4.3 Pour le surplus, le recourant ne conteste pas l'existence de risques de fuite et de réitération, lesquels ont d'ailleurs été confirmés par le Tmc et apparaissent au demeurant indéniables.
5. Sur le vu de ce qui précède, le recours doit être rejeté. Le recourant a demandé l'assistance judiciaire et les conditions en paraissent réunies. Me Romain Jordan est désigné comme avocat d'office du recourant, rétribué par la caisse du Tribunal fédéral. Il n'est pas perçu de frais judiciaires.

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. La demande d'assistance judiciaire est admise; Me Romain Jordan est désigné comme avocat d'office du recourant et ses honoraires, supportés par la caisse du Tribunal fédéral, sont fixés à 1'500 francs.
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 et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 4 juillet 2012
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président: Fonjallaz
Le Greffier: Kurz