Faits :
A.
A.a. Un litige relatif à la vente d'un fonds de commerce opposait B._ à la société A._ Sàrl.
Le 28 novembre 2018, la première (ci-après: la demanderesse) a déposé une requête de conciliation contre la seconde (la défenderesse) devant le Tribunal de première instance du canton de Genève.
A.b. Le 28 mars 2019, la demanderesse a sollicité l'assistance judiciaire auprès du Président du Tribunal civil du canton de Genève.
A.c. La tentative de conciliation a échoué. Le 19 juin 2019, la demanderesse a déposé une demande devant le Tribunal de première instance, concluant au paiement de 100'000 fr.
A.d. Le 3 septembre 2019, le Vice-Président du Tribunal civil a mis la demanderesse au bénéfice d'une assistance judiciaire partielle. Sa décision succinctement motivée avait la teneur suivante:
(...)
Vu la requête de B._ tendant à l'obtention de l'assistance juridique aux fins de:
Demande en paiement à l'encontre de A._ Sàrl (...);
Vu les pièces produites;
Vu les art. 117 à 123 du Code de procédure civile suisse, notamment l'art. 118 al. 2;
(...)
PAR CES MOTIFS
L'admet au bénéfice de l'assistance juridique avec effet au 28 mars 2019;
Limite cet octroi à la première instance et à 15 h 00 d'activité d'avocat, audiences et forfait courriers/téléphones en sus, limitation justifiée vu la connaissance du dossier par Me François MEMBREZ et la demande en paiement quasiment identique à la requête en conciliation;
Commet à ces fins Maître MEMBREZ François, avocat, (...)."
B.
B.a. Le 8 octobre 2019, la défenderesse a déposé une requête de sûretés en garantie des dépens fondée sur la prétendue insolvabilité de la partie adverse (<ref-law>).
La demanderesse a conclu au rejet en arguant du fait qu'elle bénéficiait de l'assistance judiciaire.
Par ordonnance du 19 novembre 2019, le Tribunal de première instance a fait droit à la requête et condamné la demanderesse à fournir 12'066 fr. de sûretés. Il a constaté que celle-ci était en état d'insolvabilité. L'assistance judiciaire lui avait certes été octroyée à titre limité, mais cette décision concernait l'avance des frais de procédure; elle n'emportait pas dispense d'éventuelles sûretés en garantie des dépens, ce qui était corroboré par le fait que la défenderesse n'avait pas été entendue dans la procédure d'assistance judiciaire.
B.b. Statuant le 6 mars 2020, la Cour de justice a réformé cette décision et rejeté la demande de sûretés. Ce refus était motivé par le fait qu'en matière d'assistance judiciaire, la jurisprudence fédérale (<ref-ruling>; arrêt 5A_888 [ recte 886]/2017) consacrait le principe d'équivalence entre les frais judiciaires et les sûretés. Aussi le justiciable ne pouvait-il être exonéré de l'avance de frais sans être dispensé simultanément des sûretés en garantie des dépens. La défenderesse se plaignait vainement de ne pas avoir été entendue dans la procédure d'assistance judiciaire. Elle aurait pu recourir contre cette décision à compter du moment où elle en avait eu connaissance, soit au plus tard dans le cadre de la présente procédure [en fourniture de sûretés, réd.]; or, elle s'était abstenue de le faire.
C.
La défenderesse a saisi le Tribunal fédéral d'un recours en matière civile concluant à ce que la demanderesse soit astreinte à verser des sûretés en garantie de ses dépens à hauteur de 12'066 fr., subsidiairement à ce que l'arrêt attaqué soit annulé et la cause renvoyée à l'autorité précédente.
A sa requête a été ordonnée la suspension de la procédure consécutive à la demande en justice introduite le 12 [ recte 19] juin 2019 devant le Tribunal de première instance (ordonnance présidentielle du 19 juin 2020).
L'autorité précédente s'est référée à son arrêt.
La demanderesse a conclu à l'irrecevabilité du recours, subsidiairement à son rejet.
La défenderesse a répliqué, suscitant une duplique de son adverse partie.

Considérant en droit :
1.
L'autorité précédente a rejeté une demande de sûretés en garantie des dépens (cautio judicatum solvi). Ce faisant, elle a rendu une décision incidente dont les conditions de recours sont déterminées par la nature du litige principal. En l'occurrence, le différend ressortit à la matière civile; d'ordre pécuniaire, il excède le seuil de 30'000 fr. prescrit par la loi (art. 51 al. 1 let. c LTF en lien avec l'<ref-law>). Le délai de recours a été respecté (<ref-law> et <ref-law>).
La décision incidente attaquée doit être de nature à causer un préjudice irréparable au sens de l'<ref-law>. Selon la jurisprudence, tel est le cas lorsque la partie recourante s'expose à un dommage de nature juridique qu'une décision ultérieure par hypothèse favorable à cette partie ne fera pas disparaître complètement; un inconvénient seulement matériel, résultant par exemple d'un accroissement de la durée et des frais de la procédure, est insuffisant. La partie recourante doit expliciter en quoi elle se trouve menacée d'un préjudice juridique irréparable (sauf s'il est manifeste); à ce défaut, son recours est irrecevable (<ref-ruling> consid. 1.2; arrêts 4A_46/2017 du 2 février 2017 consid. 3; 4A_147/2017 du 28 septembre 2017 consid. 3).
En l'occurrence, la défenderesse a satisfait aux exigences de motivation qui ne sont au demeurant pas particulièrement élevées en la matière. Elle s'est prévalue de l'indigence de la partie adverse en s'efforçant d'établir que ses chances d'être indemnisée pour ses dépens sont effectivement aléatoires. Force est d'admettre que le risque de préjudice irréparable est avéré au vu notamment du tableau de la situation financière de la demanderesse dépeint dans l'ordonnance du 19 novembre 2019.
2.
Le recours en matière civile peut être formé pour violation du droit fédéral (<ref-law>). Lorsqu'il vise des décisions portant sur des mesures provisionnelles, seule peut être invoquée la violation des droits constitutionnels (<ref-law>).
Alors que le Tribunal fédéral n'avait jamais envisagé l'application de l'<ref-law> aux décisions concernant les sûretés en garantie des frais judiciaires ou des dépens, des justiciables l'ont amené à discuter cette question. Il a laissé celle-ci en suspens, non sans avoir relevé que ce type de décision ne semblait pas réellement s'inscrire dans la notion de mesures provisionnelles, lesquelles portent essentiellement sur des intérêts liés à l'enjeu principal du litige plutôt que sur des intérêts liés aux prétentions accessoires résultant du rapport procédural des parties, tel le droit à l'allocation de dépens (arrêt précité 4A_147/2017 consid. 4). On ajoutera que le régime restrictif de l'<ref-law> tient notamment au fait que les mesures provisionnelles sont allouées sur la base de faits simplement plausibles et d'une analyse sommaire du droit; il serait incohérent d'octroyer dans ce contexte un plein pouvoir d'examen à l'autorité de céans (Message du 28 février 2001 concernant la révision totale de l'organisation judiciaire fédérale, FF 2001 p. 4134; <ref-ruling> consid. 2.3). Or, la décision relative aux sûretés est certes rendue en procédure sommaire (<ref-law>), mais sur la base d'un examen complet.
Depuis cet arrêt, il est arrivé à la cour de céans de se référer sans autre à l'<ref-law> (arrêt 4A_121/2018 du 10 septembre 2018 consid. 6). Il découle de ce qui précède que la thèse des mesures provisionnelles n'a pas cours.
3.
Le litige porte sur le refus d'ordonner des sûretés en garantie des dépens de la défenderesse.
3.1.
3.1.1. Il s'impose à ce stade de rappeler quelques principes. Au préalable, on précisera que dans le canton de Genève, l'assistance judiciaire relève du Président (ou Vice-Président) du Tribunal civil, entité comprenant le Tribunal de première instance et le Tribunal des baux et loyers (cf. art. 21 al. 1 LaCC [RS/GE E 1 05]; art. 1 let. b et art. 29 al. 5 LOJ [RS/GE E 2 05]). C'est ainsi un autre juge que le juge saisi du fond de la cause qui est amené à statuer sur l'assistance judiciaire (cf. arrêts 5A_710/2016 du 2 mars 2017 consid. 4; 5A_1007/2018 du 26 juin 2019 consid. 3.3). Quant à la demande en fourniture de sûretés, elle a été tranchée par le juge du fond, soit le Tribunal de première instance.
3.1.2. Le demandeur doit fournir des sûretés en garantie du paiement des dépens du défendeur lorsque celui-ci le requiert et qu'un des quatre cas énoncés à l'<ref-law> est réalisé. Le demandeur est dispensé d'une telle obligation dans certaines procédures (cf. <ref-law>), ou lorsqu'il en est décidé ainsi au titre de l'assistance judiciaire (art. 118 al. 1 let. a in fine CPC; DENIS TAPPY, in Commentaire romand, 2e éd. 2019, n° 5 ad <ref-law>; VIKTOR RÜEGG/MICHAEL RÜEGG, in Basler Kommentar, 3e éd. 2017, n° 19 ad <ref-law>).
3.1.3. Selon l'<ref-law>, l'assistance judiciaire comprend trois volets, soit :
- l'exonération d'avances et de sûretés (let. a);
- l'exonération des frais judiciaires (let. b);
- la commission d'office d'un conseil juridique (let. c).
L'assistance peut être accordée totalement ou partiellement (al. 2).
Dans un arrêt publié au Recueil officiel en 2015 (<ref-ruling>), l'autorité de céans a apporté les précisions suivantes sur le régime de l'assistance judiciaire partielle :
- Lorsque le requérant possède des moyens financiers restreints, il est possible de n'accorder qu'un ou deux des trois volets de l'assistance prévue à l'<ref-law> (consid. 4.3.2 p. 473).
- Il serait toutefois inadéquat qu'une partie partiellement indigente soit tenue de fournir une avance complète pour les frais judiciaires, tout en étant exemptée de fournir des sûretés à son adversaire. D'aucuns ont souligné que l'assistance ne saurait se déployer au seul détriment de la partie adverse, dans l'optique de ménager les caisses de l'État. Une telle solution s'éloignerait du reste de la lettre de la loi, qui place l'avance de frais et les sûretés au même rang. En revanche, rien n'empêche d'exonérer le justiciable partiellement indigent des avances de frais judiciaires et des sûretés (<ref-law>), tout en refusant de lui octroyer un avocat d'office (art. 118 al. 1 let. c CPC; consid. 4.3.3 p. 374 s.; cf. aussi arrêt 5A_886/2017 du 20 mars 2018 consid. 5).
Dans une affaire ultérieure, le Tribunal fédéral a renoncé à examiner, faute de grief dûment motivé (et d'erreurs juridiques manifestes, cf. <ref-ruling> consid. 2.6 p. 413), s'il était admissible de refuser l'assistance judiciaire pour l'avance des frais de justice puis, un an après, de l'accorder pour les sûretés en garantie des dépens, au motif que le justiciable était devenu indigent dans l'intervalle. Il a au surplus fait observer que le principe énoncé dans l'<ref-ruling> consid. 4.3.3 p. 374 s'inscrivait dans un obiter dictumet a mis en doute le fait qu'il puisse avoir force de précédent dans l'affaire en cause (arrêt 5A_863/2017 du 3 août 2018 consid. 2.5).
3.1.4. La procédure d'assistance judiciaire tend à fixer un éventuel droit du requérant envers l'Etat. La partie adverse n'a généralement pas qualité de partie. Le juge a toutefois la faculté de l'entendre (cf. <ref-law>), car celle-ci peut fournir des renseignements utiles quant aux chances de succès de la cause et quant aux moyens financiers du requérant (<ref-ruling> consid. 4.2 p. 342 s.).
Cette faculté se transforme en obligation lorsque "l'assistance judiciaire porte sur la fourniture des sûretés en garantie du paiement des dépens" (<ref-law>). Il s'agit d'une concrétisation du droit d'être entendu garanti par l'art. 29 al. 2 Cst., inhérente au fait que la partie adverse risque d'être atteinte dans un droit (cf. arrêts 4A_681/2010 du 7 avril 2011 consid. 1.6; 4A_366/2013 du 20 décembre 2013 consid. 3; ALFRED BÜHLER, in Berner Kommentar, 2012, n° 120 ad <ref-law>; Message du 28 juin 2006 relatif au code de procédure civile suisse, FF 2006 6914).
Qu'en est-il lorsque le tribunal (<ref-law>) doit statuer sur une demande d'assistance judiciaire alors que la partie défenderesse n'a pas encore émis une demande de sûretés? Certains auteurs préconisent de l'auditionner lorsqu'il faut escompter qu'une telle demande sera émise (STAEHELIN ET ALII, Zivilprozessrecht, 3e éd. 2019, § 16 n. 62; BÜHLER, op. cit., n° 122 ad <ref-law>; LUKAS HUBER, in ZPO Schweizerische Zivilprozessordnung, 2e éd. 2016, n° 23 ad <ref-law>), ce qui devrait arriver très fréquemment sauf dans les cas d'exemption prévus par l'<ref-law>, ou sauf si le défendeur exprime clairement qu'il renoncera à demander des sûretés (WUFFLI/FUHRER, Handbuch unentgeltliche Rechtspflege im Zivilprozess, 2019, p. 299 ss n. 859 ss et DANIEL WUFFLI, Die unentgeltliche Rechtspflege in der Schweizerischen Zivilprozessordnung, 2015, p. 309 ss n. 725-732). D'aucuns sont d'avis que si la partie défenderesse n'a pas été entendue, le juge de l'assistance judiciaire devrait provisoirement renoncer à se prononcer sur l'éventuelle exonération des sûretés (TAPPY, op. cit., n° 6 ad <ref-law>; RÜEGG/RÜEGG, op. cit., n° 9 in fine ad <ref-law>; BÜHLER, op. cit., n° 12a ad <ref-law> et n° 122 in fine ad <ref-law>).
3.1.5. La décision relative à l'assistance judiciaire n'est revêtue que de la force de chose jugée formelle - par opposition à la force de chose jugée matérielle. Une nouvelle requête fondée sur un changement de circonstances (vrais nova) peut ainsi être déposée en tout temps. Il peut en outre être donné suite à une demande de reconsidération, pour autant que le requérant argue de moyens de preuve non connus de lui lors de la précédente décision et qu'il lui était impossible de faire valoir, ou qu'il n'avait aucune raison d'invoquer (faux nova; arrêt précité 5A_886/2017 consid. 3.3.2; arrêt 4A_410/2013 du 5 décembre 2013 consid. 3.2).
3.2. La recourante se réfère à un précédent de la Cour de justice antérieur à la jurisprudence fédérale précitée (<ref-ruling>).
La Haute Cour cantonale avait été saisie d'une affaire très semblable à la présente (ACJC/264/2014 du 28 février 2014, accessible sur le site Internet www.ge.ch/justice). Statuant après la requête de conciliation et peu avant le dépôt de la demande au fond, le Président du Tribunal civil avait mis la partie demanderesse au bénéfice de l'assistance judiciaire partielle "aux fins d'une action en reddition de comptes et en paiement", en précisant que l'assistance était plafonnée à 30 heures d'activité d'avocat. Elle ne précisait pas si l'assistance s'étendait ou non à la fourniture de sûretés; la partie défenderesse n'avait pas été entendue au préalable.
La Cour de justice avait relevé que l'audition prescrite par l'<ref-law> découlait du droit constitutionnel d'être entendu, et que la décision relative à l'assistance judiciaire était susceptible d'être complétée ou modifiée. En l'espèce, la décision était incomplète dans la mesure où elle ne précisait pas si l'assistance avait ou non été requise pour la fourniture de sûretés et si elle était octroyée à cet effet; la partie défenderesse n'avait pas été entendue. Dans un tel contexte, on ne pouvait inférer que l'assistance octroyée s'étendait indubitablement à l'exonération des sûretés. L'autorité compétente en matière d'assistance judiciaire devait préciser la portée de sa décision, et au besoin la compléter après avoir auditionné la défenderesse sur la question de l'exonération des sûretés. Dans l'intervalle, la cause [relative à la demande de sûretés, réd.] devait "demeurer en l'état", la défenderesse ne pouvant être enjointe de déposer une réponse avant que la question des sûretés ne fût tranchée.
3.3. Force est d'admettre que la solution prescrite dans ce précédent reste d'actualité. Si l'<ref-ruling> a mis en exergue le fait que les ressources partielles du justiciable ne devraient pas servir à favoriser l'État au détriment de la partie adverse, son sens n'est clairement pas de priver la partie défenderesse de son droit constitutionnel d'être entendue sur la question de l'exonération des sûretés. Aussi l'autorité précédente ne pouvait-elle rejeter la demande en fourniture de sûretés au motif que la partie demanderesse aurait été exemptée d'un tel devoir par la décision relative à l'assistance judiciaire, alors que celle-ci ne fait aucunement état d'une audition de la partie défenderesse et n'indique en rien que cette question aurait été abordée.
En définitive, le recours doit être admis, la décision attaquée annulée, et la cause retournée à l'autorité précédente. L'autorité compétente en matière d'assistance judiciaire devra préciser la portée de sa décision, respectivement la compléter après audition de la partie défenderesse sur la question de l'exonération des sûretés. Dans l'intervalle, la procédure relative à la demande de sûretés restera suspendue.
L'intimée, qui succombe, supportera les frais de la présente procédure et versera à la recourante une indemnité pour ses frais d'avocat (art. 66 al. 1 et art. 68 al. 1 et 2 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis. L'arrêt attaqué est annulé et la cause renvoyée à l'autorité précédente.
2.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de l'intimée.
3.
L'intimée versera à la recourante une indemnité de 2'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice du canton de Genève.
Lausanne, le 18 août 2020
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente : Kiss
La greffière : Monti