Considérant:
que par acte du 9 avril 2009, A._ a formé un recours en matière pénale avec demande d'assistance judiciaire contre une ordonnance de prolongation de la détention préventive rendue le 7 avril 2009 par la Chambre d'accusation genevoise;
que par ordonnance du 27 avril 2009, la Chambre d'accusation a ordonné la mise en liberté du recourant, considérant que les actes d'enquête (identification par les victimes et écoutes téléphoniques) n'avaient pas permis de confirmer les soupçons d'escroqueries;
que le recourant conclut à l'allocation de dépens;
que les autorités intimées ne se sont pas déterminées;
que la mise en liberté du recourant rend son recours sans objet;
que le juge instructeur statue comme juge unique sur la radiation du rôle des procédures devenues sans objet (art. 32 al. 2 LTF);
qu'il décide sur les frais et dépens en tenant compte de l'état de choses existant avant le fait qui met fin au litige (art. 72 PCF par renvoi de l'art. 71 LTF);
qu'en l'occurrence, la libération ordonnée après coup pour défaut de charges suffisantes vient confirmer les griefs du recourant concernant l'absence de soupçons suffisants pour justifier son maintien en détention préventive;
qu'il y a donc lieu d'allouer des dépens au recourant, à la charge du canton de Genève, ce qui rend sans objet la demande d'assistance judiciaire;
qu'il n'est pas perçu de frais judiciaires, conformément à l'art. 68 LTF.
par ces motifs, le Juge unique ordonne:
1. Le recours 1B_91/2009 est devenu sans objet et la cause est rayée du rôle.
2. Le canton de Genève versera une indemnité de 1000 fr. au recourant, à titre de dépens.
3. Il n'est pas perçu de frais judiciaires.
4. La présente ordonnance est communiquée au mandataire du recourant, au Procureur général et à la Chambre d'accusation de la Cour de justice du canton de Genève.
Lausanne, le 8 mai 2009
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Juge unique: Le Greffier:
Reeb Kurz