Faits:
A. X._, ressortissant algérien né en 1983, 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 Y._ 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.
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, sans se souvenir s'il avait un couteau. 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 genevoise 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 en 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, où X._ était aperçu poursuivant la victime; l'un des prévenus avait admis sa participation à l'agression et avait également impliqué les autres prévenus. Les charges étaient également suffisantes s'agissant de la seconde agression.
C. Par arrêt du 15 mai 2012 (1B_255/2012), le Tribunal fédéral a admis un recours en matière pénale formé par X._. 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. 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 X._, sa présence sur les lieux de la première infraction était démontrée. Les images de vidéo-surveillance le montraient alors qu'il poursuivait la victime avec un objet à la main, identifié par la police comme un couteau. 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. La présence de X._ à Genève le jour de cette agression était confirmée par les rétroactifs téléphoniques; l'intéressé avait tenté en vain de cacher le téléphone portable, puis prétendu faussement que celui-ci ne lui appartenait pas.
L'acte d'accusation a été établi le 6 juin 2012 et, le 11 juin 2012, le Tmc a ordonné la détention de X._ pour des motifs de sûreté pour trois mois, soit jusqu'au 11 septembre 2012. Par arrêt du 26 juin 2012, la Chambre pénale de recours a rejeté le recours formé par X._ contre cette décision. Elle s'est référée à ses précédentes décisions concernant l'existence de charges suffisantes et a admis l'existence de risques de collusion, de fuite et de récidive. La procédure relative à la détention avait respecté le principe de célérité.
E. Par un même recours en matière pénale formé le 2 juillet 2012, X._ recourt à la fois contre l'arrêt du 26 juin 2012 et contre celui du 29 mai 2012. Il demande l'annulation de ces deux arrêts, la confirmation de la décision du Tmc du 13 mars 2012, le rejet des demandes de prolongation de la détention provisoire et de mise en détention pour des motifs de sûreté, ainsi que sa mise en liberté immédiate. Il requiert également une constatation de violation du principe de célérité. Subsidiairement, il conclut à l'annulation des arrêts attaqués et au renvoi de la cause à la cour cantonale pour nouvelle décision dans le sens des considérants. Il sollicite l'assistance judiciaire.
La Chambre pénale se réfère à ses arrêts, sans observations. Le Ministère public conclut au rejet du recours.
Le recourant a persisté dans ses conclusions, sans formuler d'observations complémentaires.

Considérant en droit:
1. Selon l'<ref-law>, 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 <ref-law> (<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 (<ref-law>) contre deux arrêts rendus en dernière instance cantonale (<ref-law>).
1.2 Le recours est dirigé à la fois contre une décision relative à la prolongation de la détention provisoire (arrêt du 29 mai 2012) et contre une décision ordonnant, après le dépôt de l'acte d'accusation, la mise en détention pour des motifs de sûreté (arrêt du 26 juin 2012). Le recourant ne semble plus avoir d'intérêt à mettre en cause sur le fond la première décision: son annulation ne pourrait conduire à sa mise en liberté puisqu'il existe désormais un nouveau titre de détention. Ayant recouru simultanément contre la seconde décision, le recourant peut par ce biais obtenir un contrôle de sa détention et faire valoir l'ensemble de ses arguments, y compris la violation du principe de la célérité. Le recourant s'en prend toutefois spécifiquement à l'arrêt du 29 mai 2012 en ce qui concerne le montant des frais mis à sa charge. Dans cette mesure, le recours est également recevable à l'encontre du premier arrêt.
2. Le recourant consacre l'essentiel de son recours à l'établissement des faits. Il conteste notamment apparaître avec un couteau sur les images de vidéo-surveillance. La Chambre pénale aurait par ailleurs omis de mentionner les nombreuses déclarations qui le mettent hors de cause. Le recourant estime également que les déclarations de Y._ du 24 septembre 2012, recueillies en son absence, ne lui seraient pas opposables. La note du Ministère public du 15 octobre 2011, faisant état des risques encourus par le plaignant et des raisons de ses rétractations, devrait elle aussi être écartée du dossier, car elle relate des propos tenus hors la présence des prévenus et de leurs avocats. La Chambre pénale aurait omis d'indiquer que, selon l'expertise du 4 octobre 2011, la vie des victimes n'a pas été mise en danger lors des agressions. En définitive, une appréciation d'ensemble des preuves conduirait à admettre que les charges ne sont pas suffisantes, alors que l'instruction est désormais terminée.
2.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 (<ref-law>; 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).
2.2 Le Tribunal fédéral statue en principe sur la base des faits établis par l'autorité précédente, sauf si ceux-ci ont été retenus de façon manifestement inexacte - ce qui correspond à la notion d'arbitraire: <ref-ruling> consid. 4.3 p. 63 - ou en violation du droit au sens de l'<ref-law> (cf. art. 105 al. 1 et 2 LTF) et si la correction du vice est susceptible d'influer sur le sort de la cause (<ref-law>). Lorsque le recourant entend s'en prendre aux faits ressortant de l'arrêt attaqué, il doit établir de manière précise la réalisation de ces conditions. A défaut, il n'est pas possible de tenir compte d'un état de fait divergent de celui qui est contenu dans l'acte attaqué. En particulier, le Tribunal fédéral n'entre pas en matière sur des critiques de type appellatoire portant sur l'état de fait ou sur l'appréciation des preuves (<ref-ruling> consid. 5.1 p. 356 et les arrêts cités).
2.3 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'elles redoutaient des représailles. Le recourant conteste tant les premières déclarations de la victime que la note apportée au dossier par le Procureur faisant état des craintes de représailles. La validité de ces pièces n'a toutefois pas à être discutée dans le cadre de la procédure de prolongation de la détention préventive, dès lors qu'il ne s'agit pas à ce stade d'établir définitivement la culpabilité de l'intéressé. Le recourant a par ailleurs été reconnu sur les images de vidéo-surveillance, courant derrière la victime. La question de savoir s'il était muni d'un couteau peut demeurer indécise à ce stade, puisqu'il existe à tout le moins des soupçons suffisants de la participation du recourant à un guet-apens qualifié de tentative d'assassinat dans l'acte d'accusation. Le fait que, selon l'expertise, la vie des victimes n'aurait pas été concrètement mise en danger, n'est pas incompatible avec une intention meurtrière. Dans la mesure où la présence du recourant sur les lieux est démontrée, la Chambre pénale de recours pouvait faire abstraction des témoignages qui le disculpent, ou dont les auteurs affirment n'avoir rien vu. Le recourant a aussi été décrit avec précision par la seconde victime (qui a notamment mentionné son prénom) et son téléphone portable - que l'intéressé a tenté de dissimuler - a été repéré dans les environs du lieu de l'agression alors que le recourant prétendait s'être trouvé en France.
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 à procéder à une appréciation complète des preuves à charge et à décharge (<ref-ruling> consid. 3.2 p. 126). En se livrant à une telle appréciation, le recourant confond manifestement les conditions de maintien en détention provisoire - respectivement pour des motifs de sûreté -, soit l'existence d'indices suffisants, et les conditions auxquelles une condamnation peut être prononcée, soit l'absence de doutes sérieux quant à la culpabilité de l'accusé. Le grief doit par conséquent être écarté.
3. Invoquant l'<ref-law>, le recourant relève que la procédure relative à sa détention a commencé avec la décision du Tmc du 13 mars 2012 et que, depuis lors, le Tribunal fédéral ne se serait pas encore prononcé sur le fond.
3.1 Concrétisant le principe de célérité, l'<ref-law> 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).
3.2 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, lequel a déposé son 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, 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é.
4. Le recourant relève enfin que l'émolument perçu par la Chambre pénale dans son arrêt du 29 mai 2012 s'élève à 1'000 fr., alors qu'il était de 800 fr. dans l'arrêt du 30 mars 2012. Cette augmentation ne serait pas justifiée. L'arrêt du 26 juin 2012 ne serait qu'un copié-collé de celui du 29 mai 2012, de sorte que l'émolument de 800 fr. ne se justifierait pas non plus.
4.1 Selon l'<ref-law>, la Confédération et les cantons règlent le calcul des frais de procédure et fixent les émoluments. S'agissant en l'occurrence d'une question réglée par le droit cantonal, le recours est soumis aux exigences accrues de motivation posées à l'<ref-law>. Le grief doit être soulevé de manière claire et détaillée (<ref-ruling> consid. 3 et les arrêts cités).
4.2 Le recourant n'indique pas quelle disposition cantonale ou quel principe constitutionnel aurait été violé lors de la fixation du montant des différents émoluments judiciaires. Il prétend que l'augmentation de l'émolument constituerait une manière détournée de le sanctionner après qu'il ait eu gain de cause devant le Tribunal fédéral, mais omet de préciser quel droit aurait été violé de la sorte, et en quoi il l'aurait été. Au demeurant, après l'annulation de l'arrêt du 30 mars 2012, la Chambre pénale de recours a dû effectuer des actes supplémentaires (interpellation par télécopie et réception de nouvelles déterminations du recourant), ce qui suffit à expliquer l'augmentation du montant de l'émolument. Quant aux frais afférents à l'arrêt du 26 juin 2012 (comprenant 800 fr. d'émolument), le recourant ne démontre pas non plus en quoi ils violeraient le droit, notamment le barème applicable.
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 Magali Buser est désignée comme avocate d'office, rétribuée 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 Magali Buser est désignée comme avocate 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é à la mandataire du recourant, au Ministère public de la République et canton de Genève et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 17 juillet 2012
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président: Fonjallaz
Le Greffier: Kurz