Faits :
A.
A.a. Le 10 mai 1996, A._ a pris à bail un appartement de trois pièces et demie au sixième étage de l'immeuble sis route... à Genève. Ledit appartement se situe dans les combles aménagés lors de la surélévation de l'immeuble intervenue en 1986. Le bail a été conclu pour une durée initiale d'un an, renouvelable ensuite tacitement d'année en année. Le loyer annuel net a été fixé en dernier lieu à 18'120 fr.
A.b. Dès le mois d'août 1996, la locataire s'est plainte de problèmes d'isolation thermique et phonique. Avec l'accord de la régie en charge de la gestion de l'immeuble, elle a entrepris des travaux d'isolation phonique de sa chambre à coucher, auxquels la propriétaire de l'époque a participé à concurrence de 6'000 fr.
A.c. Le 17 novembre 2017, le bureau d'architecture C._ Sàrl (ci-après: C._), mandaté par G.B._ et C.B._, devenus propriétaires de l'immeuble susvisé, a fait parvenir à la Commission d'architecture du Département du territoire du canton de Genève (ci-après: CADT) un dossier de présentation d'un projet de surélévation de l'immeuble, en vue d'une préconsultation sur la faisabilité dudit projet ainsi que sur le gabarit proposé. A teneur dudit dossier, les études statiques avaient confirmé qu'une surélévation supplémentaire du bâtiment était possible, moyennant un accès à la toiture et le réaménagement des combles. Les deux logements situés dans les combles devaient être transformés aux fins de réaliser deux étages supplémentaires comprenant chacun deux appartements de quatre pièces. Il était aussi prévu de refaire la toiture et de rénover l'ensemble de l'enveloppe thermique du bâtiment et des espaces communs. Le gabarit envisagé était plus bas que celui de la majorité des immeubles sis dans la même rue.
Le 28 novembre 2017, la CADT a indiqué qu'une surélévation supplémentaire de l'immeuble aurait un impact non négligeable sur le périmètre urbain environnant même si le projet respectait les gabarits légaux. Nonobstant la documentation qualifiée de " très exhaustive ", elle réclamait un skyline des rues et des vues photos réalistes afin de pouvoir analyser le potentiel de surélévation des bâtiments voisins.
En janvier 2018, C._ a fait savoir à l'Office genevois des autorisations de construire qu'elle déposerait une demande d'autorisation en vue de la réalisation des travaux projetés.
A.d. Dès le 15 février 2018, la locataire s'est une nouvelle fois plainte auprès des bailleurs des problèmes d'isolation affectant son logement, notamment du bruit provenant de l'étage inférieur. Elle leur demandait d'agir en supprimant le défaut d'isolation, en discutant avec les voisins du dessous ou en lui attribuant un autre appartement plus petit et moins cher, situé dans le quartier et correctement insonorisé.
A.e. Le 22 février 2018, les bailleurs ont fait savoir à la locataire qu'ils envisageaient de surélever l'immeuble dans un futur proche, raison pour laquelle celle-ci devrait libérer l'appartement dans deux ans. Ils lui proposaient de tout mettre en oeuvre pour la reloger dans le quartier.
A.f. Entre le 19 juin et le 30 juillet 2018, la locataire a relancé à plusieurs reprises les propriétaires ainsi que la régie afin qu'une solution aux problèmes d'isolation phonique et thermique soit trouvée et qu'ils lui soumettent, à leurs frais, une proposition de relogement dans un appartement situé au plus près de son domicile actuel, neuf, très calme, lumineux, comprenant certains équipements et caractéristiques spécifiques et répondant aux normes d'isolation pour un loyer mensuel maximal de 1'100 fr.
A.g. Par avis officiel du 23 août 2018, la locataire s'est vu signifier la résiliation de son bail pour le 31 mai 2019, motif pris du projet de surélévation de l'immeuble.
Le même jour, les bailleurs ont résilié, pour un motif identique, le bail de l'appartement voisin situé au sixième étage. Ledit bail a été prolongé jusqu'au 30 juin 2020 par accord homologué par la Commission de conciliation genevoise en matière de baux et loyers.
A.h. Entre les mois de novembre 2018 et février 2019, la régie a proposé plusieurs appartements à la locataire en vue de la reloger. L'intéressée n'a visité qu'un seul des quatre logements proposés, jugeant celui-ci trop bruyant. Elle n'a pas souhaité examiner les autres biens, car l'un d'entre eux subissait d'importantes nuisances sonores et les autres ne correspondaient pas à ses critères en termes de loyer ou d'emplacement.
Interpellée sur le point de savoir si elle désirait toujours recevoir des propositions de relogement, la locataire a répondu par l'affirmative le 1er mars 2019, en précisant que les offres devaient être personnalisées et correspondre à ses critères.
A.i. Le 23 janvier 2019, la régie a avisé la locataire qu'une demande d'autorisation de construire allait être déposée auprès du département compétent courant 2019.
Par lettre du 8 mars 2019, la régie a confirmé la résiliation du bail, en précisant qu'elle avait reçu plusieurs plaintes au sujet du comportement agressif de la locataire. Quelques jours plus tard, celle-ci a contesté les faits qui lui étaient reprochés.
A.j. Le 27 février 2019, les propriétaires ont déposé leur demande d'autorisation de construire, laquelle a été refusée en date du 14 mars 2019.
B.
Après une procédure de conciliation infructueuse, la locataire a déposé, en date du 1er avril 2019, une demande auprès du Tribunal des baux et loyers genevois. Elle a notamment conclu, à titre principal, à l'annulation du congé. Subsidiairement, elle a sollicité l'octroi d'une prolongation de bail de quatre ans.
En cours de procédure, G.B._ a déclaré que le projet de construction était bloqué pour des questions de servitudes de jour, problème qui était en cours de résolution auprès des voisins qui devaient se prononcer sur ce point d'ici la fin octobre 2019. Faute d'accord des voisins, il suffisait, selon lui, de modifier trois fenêtres côté cour afin que le projet soit accepté.
Entendu en qualité de témoin, D._, architecte auprès de C._, a indiqué que le projet était réalisable, la CADT ayant vérifié sa faisabilité moyennant quelques modifications mineures, étant précisé que la CADT ne se préoccupait pas des problèmes de servitudes. Selon son expérience, lorsque la CADT confirmait que les gabarits étaient respectés, ce qui était le cas en l'espèce, cela signifiait que le projet était faisable. Le projet avait été légèrement modifié en supprimant des fenêtres. La demande d'autorisation de construire avait été rejetée en raison d'une servitude au bénéfice de la parcelle voisine. Ladite servitude allait toutefois être modifiée sous peu, une proposition en ce sens ayant été soumise aux voisins. Une
fois l'accord de ceux-ci obtenu, l'architecte entendait déposer une nouvelle demande d'autorisation de construire et espérait l'obtenir début 2021.
Par jugement du 24 septembre 2020, le Tribunal des baux et loyers a admis la validité du congé litigieux (chiffre 1) et a accordé à la demanderesse une unique prolongation de bail d'une année et sept mois, échéant le 31 décembre 2020 (chiffre 2).
La locataire a appelé de ce jugement auprès de la Chambre des baux et loyers de la Cour de justice du canton de Genève. Elle a notamment produit deux nouvelles pièces visant à démontrer que les bailleurs n'avaient pas déposé une nouvelle demande d'autorisation de construire.
Statuant par arrêt du 5 août 2021, la cour cantonale, admettant partiellement l'appel, a retenu que la résiliation du bail était valable, a annulé le chiffre 2 du dispositif du jugement entrepris et accordé à l'appelante une première prolongation de bail d'une durée de deux ans et six mois échéant le 30 novembre 2021. Les motifs qui étayent cette décision seront indiqués ci-après dans la mesure utile à la compréhension des critiques dont celle-ci est la cible.
C.
Le 8 septembre 2021, la locataire (ci-après: la recourante) a formé un recours en matière civile, assorti d'une requête d'assistance judiciaire, dans lequel elle conclut, en substance, à la réforme de l'arrêt attaqué aux fins d'obtenir l'annulation du congé litigieux.
Par ordonnance du 14 octobre 2021, la requête d'assistance judiciaire a été admise et Me Alain Maunoir a été désigné en qualité d'avocat d'office de la recourante.
Les bailleurs (ci-après: les intimés) ont conclu au rejet du recours tandis que la cour cantonale s'est référée aux considérants de son arrêt.
La recourante a répliqué, suscitant le dépôt d'une duplique de la part des intimés.

Considérant en droit :
1.
Le présent recours satisfait sur le principe aux conditions de recevabilité du recours en matière civile, notamment quant à l'exigence d'une valeur litigieuse minimale de 15'000 fr. (<ref-law>; cf. <ref-ruling> consid. 1.1) et quant au respect du délai (art. 46 al. 1 let. b et 100 al. 1 LTF).
2.
2.1. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>). Relèvent de ces faits tant les constatations relatives aux circonstances touchant l'objet du litige que celles concernant le déroulement de la procédure conduite devant l'instance précédente et en première instance, c'est-à-dire les constatations ayant trait aux faits procéduraux (<ref-ruling> consid. 1.3.1 et les références). Le Tribunal fédéral ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'<ref-law> (<ref-law>). "Manifestement inexactes" signifie ici "arbitraires" (<ref-ruling> consid. 2; <ref-ruling> consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>).
La critique de l'état de fait retenu est soumise au principe strict de l'allégation énoncé par l'<ref-law> (<ref-ruling> consid. 2.3 et les références). La partie qui entend attaquer les faits constatés par l'autorité précédente doit expliquer clairement et de manière circonstanciée en quoi ces conditions seraient réalisées (<ref-ruling> consid. 1.3.1 et les références). Si elle souhaite obtenir un complètement de l'état de fait, elle doit aussi démontrer, par des renvois précis aux pièces du dossier, qu'elle a présenté aux autorités précédentes, en conformité avec les règles de la procédure, les faits juridiquement pertinents à cet égard et les moyens de preuve adéquats (<ref-ruling> consid. 2). Si la critique ne satisfait pas à ces exigences, les allégations relatives à un état de fait qui s'écarterait de celui de la décision attaquée ne pourront pas être prises en considération (<ref-ruling> consid. 1.3.1). Les critiques de nature appellatoire sont irrecevables (<ref-ruling> consid. 1.3).
Concernant l'appréciation des preuves, le Tribunal fédéral n'intervient, du chef de l'art. 9 Cst., que si le juge du fait n'a manifestement pas compris le sens et la portée d'un moyen de preuve, a omis sans raisons objectives de tenir compte des preuves pertinentes ou a effectué, sur la base des éléments recueillis, des déductions insoutenables (<ref-ruling> consid. 4.2; <ref-ruling> consid. 4.2; <ref-ruling> consid. 4.3; <ref-ruling> consid. 1.4.3; <ref-ruling> consid. 2.1). Il ne suffit pas qu'une appréciation différente puisse être tenue pour également concevable, ou apparaisse même préférable (<ref-ruling> consid. 7.3; <ref-ruling> consid. 4.3; <ref-ruling> consid. 2.1).
2.2. Sous réserve de la violation des droits constitutionnels (<ref-law>), le Tribunal fédéral applique le droit d'office (<ref-law>) à l'état de fait constaté dans l'arrêt cantonal ou, cas échéant, à l'état de fait qu'il aura rectifié. Cela ne signifie pas que le Tribunal fédéral examine, comme le ferait un juge de première instance, toutes les questions juridiques qui pourraient se poser; compte tenu de l'obligation de motiver imposée par l'<ref-law>, il ne traite que les questions qui sont soulevées devant lui par les parties, à moins que la violation du droit ne soit manifeste (<ref-ruling> consid. 2, 86 consid. 2). Il n'est toutefois lié ni par les motifs invoqués par les parties, ni par l'argumentation juridique retenue par l'autorité cantonale; il peut donc admettre le recours pour d'autres motifs que ceux invoqués par le recourant, comme il peut le rejeter en procédant à une substitution de motifs (ATF <ref-ruling> consid. 1.4).
3.
Se plaignant d'une violation de l'<ref-law> et d'une constatation manifestement inexacte des faits, la recourante soutient que le projet des intimés est objectivement incompatible avec les règles du droit public des constructions, raison pour laquelle le congé qui lui a été signifié le 23 août 2018 devrait être annulé.
Avant d'examiner les mérites des critiques de l'intéressée, il sied de rappeler quelques principes théoriques et d'exposer le raisonnement tenu par la cour cantonale.
3.1.
3.1.1. Chaque partie est en principe libre de résilier un bail de durée indéterminée pour la prochaine échéance légale ou contractuelle; aucun motif particulier n'est exigé (<ref-law>; <ref-ruling> consid. 4.1). Le bailleur peut ainsi congédier le locataire pour exploiter son bien de la façon la plus conforme à ses intérêts (<ref-ruling> consid. 3), pour effectuer des travaux de transformation ou de rénovation importants (<ref-ruling> consid. 3.2.1; <ref-ruling> consid. 4.1), pour optimiser son rendement (<ref-ruling> consid. 2), ou encore pour occuper lui-même ses locaux ou les mettre à disposition de ses proches (arrêts 4A_198/2016 du 7 octobre 2016 consid. 4.3; 4A_18/2016 du 26 août 2016 consid. 3.3 et 4). Cette liberté trouve cependant ses limites dans les règles de la bonne foi: la résiliation des baux d'habitations ou de locaux commerciaux est annulable lorsqu'elle contrevient auxdites règles (<ref-law>; cf. aussi <ref-law>). De façon générale, un tel cas de figure est réalisé lorsque la résiliation ne répond à aucun intérêt objectif, sérieux et digne de protection, est purement chicanière ou consacre une disproportion manifeste des intérêts en présence (<ref-ruling> consid. 4.1). A cet égard, il ne suffit pas que la résiliation entraîne des conséquences pénibles pour le locataire, cet élément pouvant en revanche justifier une prolongation de bail (cf. <ref-law>; <ref-ruling> consid. 3.2.1; <ref-ruling> consid. 2.1).
Pour résoudre la question juridique de savoir si le congé contrevient à la bonne foi, il faut connaître le motif réel de son auteur, ce qui revient à constater un fait (<ref-ruling> consid. 2; arrêts 4A_491/2018 du 8 mai 2019 consid. 2.1.1; 4A_476/2016 du 20 février 2017 consid. 2.2.1). Le juge doit se placer au moment où la résiliation a été notifiée (<ref-ruling> consid. 4.1; <ref-ruling> consid. 2.1). Des faits survenus ultérieurement ne sont pas susceptibles d'influer a posteriori sur cette qualification: si le motif pour lequel le congé a été donné tombe par la suite, le congé ne devient pas abusif a posteriori. En revanche, des faits ultérieurs peuvent fournir un éclairage sur les intentions de l'intéressé au moment de la résiliation (ATF <ref-ruling> consid. 2.1; arrêts 4A_388/2016 du 15 mars 2017 consid. 3.4; 4A_67/2016 du 7 juin 2016 consid. 6.1).
3.1.2. La partie qui veut faire annuler le congé doit prouver les circonstances permettant de déduire qu'il contrevient aux règles de la bonne foi. L'auteur du congé doit toutefois collaborer à la manifestation de la vérité, devoir qui comprend en particulier l'obligation d'indiquer, sur requête, le motif du congé (<ref-law>); en cas de contestation, il doit fournir tous les documents nécessaires pour établir ledit motif (ATF <ref-ruling> consid. 2.1). La motivation n'est pas une condition de validité du congé, mais une simple incombance pour l'auteur du congé. Cela étant, une motivation lacunaire ou fausse peut être l'indice que le congé n'obéit à aucun intérêt digne de protection. Aussi le caractère abusif est-il généralement retenu lorsque le motif invoqué n'est qu'un prétexte, tandis que le véritable motif n'est pas constatable. De la même manière, le fait de tarder à justifier le congé ou de varier dans les motifs indiqués peut être le signe d'un abus; il peut aussi avoir une incidence pour la répartition des frais de procès (<ref-ruling> consid. 5.3.1 et 5.3.4; <ref-ruling> consid. 2.1 et 2.3).
3.1.3. D'après la jurisprudence fédérale, le congé donné pour effectuer des travaux de rénovation a été jugé contraire à la bonne foi notamment dans les cas suivants:
1) lorsque le projet de travaux est dépourvu de réalité tangible, respectivement lorsqu'il n'est pas possible d'apprécier l'importance des travaux envisagés et de déterminer si ceux-ci nécessitent le départ des locataires (<ref-ruling> consid. 3.2.1 et 3.2.3; <ref-ruling> consid. 4.2.2; <ref-ruling> consid. 4.2; arrêts 4A_491/2018, précité, consid. 2.1.2; 4A_127/2017 du 25 octobre 2017 consid. 2.4; 4A_703/2016 du 24 mai 2017 consid. 4.2 non publié à l'<ref-ruling>). Il en est de même s'il apparaît que la présence du locataire n'occasionnerait pas de complications ou de retards, ou seulement de manière négligeable, par exemple en cas de réfection des peintures ou de travaux extérieurs (<ref-ruling> consid. 3.2.1; <ref-ruling> consid. 4.1; <ref-ruling> consid. 4.2). Savoir si le maintien du locataire dans les locaux entraînerait des complications d'ordres technique et organisationnel, augmenterait les coûts ou prolongerait la durée du chantier dépend des travaux envisagés. Aussi faut-il qu'au moment de la résiliation, le bailleur dispose d'un projet suffisamment mûr et élaboré pour permettre de constater concrètement que la présence du locataire entraverait les travaux. Sur la base des faits allégués et prouvés, le juge doit pouvoir se convaincre avec certitude de l'existence du projet de travaux, de la volonté et de la possibilité pour le bailleur de le réaliser et de la nécessité que les locataires quittent définitivement les locaux (arrêt 4A_200/2017 du 29 août 2017 consid. 4.2.2). A elle seule, la ferme intention générale de rénover et transformer un immeuble n'est pas suffisante (<ref-ruling> consid. 4.2.2).
2) lorsque le congé est donné sur la base d'un projet qui paraît objectivement impossible, notamment parce qu'il est de toute évidence incompatible avec les règles du droit public, de sorte que le bailleur n'obtiendra certainement pas les autorisations nécessaires. La preuve de l'impossibilité objective incombe au locataire. Il n'est cependant pas nécessaire que le bailleur ait déjà obtenu les autorisations administratives nécessaires, ni même qu'il ait déposé les documents dont elles dépendent (<ref-ruling> consid. 3.2.1; <ref-ruling> consid. 4.1; arrêts 4A_491/2018, précité, consid. 2.1.2; 4A_127/2017, précité, consid. 2.4; 4A_703/2016, précité, consid. 4.2). Il s'agit de pronostiquer si, au moment où le congé a été donné, l'autorisation des travaux envisagés paraissait de toute évidence exclue; une probabilité non négligeable de refus n'est pas suffisante (<ref-ruling> consid. 4.2.1; arrêts 4A_491/2018, précité, consid. 2.1.2; 4A_142/2017 du 3 août 2017 consid. 4.1).
3.1.4. Les principes généraux sur la motivation du congé valent aussi en cas de résiliation fondée sur des travaux de rénovation ou de transformation. Dans ce cas également, la motivation n'est pas une condition de validité du congé - contrairement à ce qu'ont pu faire accroire certaines formulations (<ref-ruling> consid. 5.3.3, précisant les <ref-ruling> consid. 4.2.2 et 142 III 91 consid. 3.2.1; arrêts 4A_491/2018, précité, consid. 2.1.2; 4A_127/2017, précité, consid. 2.3). Conformément à la règle générale (cf. consid. 3.1.1 ci-dessus), pour déterminer si le projet de rénovation est manifestement incompatible avec les règles du droit public et, partant, si le congé est contraire à la bonne foi au sens de l'<ref-law>, il faut se placer au moment où le congé a été notifié. Il faut que le projet soit déjà à ce moment-là manifestement incompatible avec ces règles. Des événements survenus postérieurement ne sont pas susceptibles d'influer sur cette qualification, car un congé valable ne peut pas devenir invalide par la suite. Ces événements peuvent tout au plus permettre d'apprécier le degré d'impossibilité du projet tel qu'il existait à la date de la notification du congé (arrêts 4A_142/2017, précité, consid. 4.1; 4A_503/2013 du 5 mars 2014 consid. 4.2). Un congé n'est pas déjà contraire à la bonne foi si le projet initial doit être modifié pour pouvoir être approuvé par les autorités administratives.
3.2. Dans l'arrêt attaqué, la juridiction précédente constate, en fait, que la demande d'autorisation de construire a été refusée le 14 mars 2019, " au motif que la surélévation ne respectait pas certaines servitudes de jour, aucun document relatif à ce problème n'ayant été produit ". En droit, elle estime que le congé litigieux est valable, puisque les intimés, au moment de la notification de celui-ci le 23 août 2018, invoquaient leur projet de surévaluation de l'immeuble. A cet égard, la cour cantonale rappelle que ledit projet date de 2017, année au cours de laquelle les intimés ont mandaté le bureau d'architectes C._. Celui-ci a procédé à une étude confirmant la faisabilité du projet en novembre 2017 et soumis celui-ci à la CADT pour préconsultation. La CADT a confirmé que le projet respectait les gabarits légaux en novembre 2017, tout en demandant une analyse complémentaire du projet afin d'être en mesure d'examiner le potentiel de surélévation des bâtiments voisins et en particulier de visualiser l'impact d'un mur pignon aveugle. Se référant à l'audition du témoin D._, la juridiction cantonale relève que la procédure de préconsultation n'a pas de valeur officielle mais qu'elle donne une orientation sur la faisabilité ou non du projet et qu'il ressort de l'examen de cette commission que le projet était faisable et devait uniquement comporter certaines précisions complémentaires pour qu'une autorisation de construire soit octroyée aux intimés. Elle observe également que le témoin D._ a déclaré, sans être contredit par la recourante, que des discussions étaient en cours avec les propriétaires voisins pour faire modifier la servitude empêchant la construction. Pour apprécier la validité du congé litigieux, la cour cantonale souligne enfin qu'il importe peu qu'à la date de la résiliation du bail et, a fortiori, qu'à celle de l'arrêt attaqué, l'autorisation de construire en lien avec le projet litigieux n'ait pas encore été obtenue.
3.3. Dans son mémoire de recours, l'intéressée reproche à la cour cantonale d'avoir établi les faits de manière manifestement inexacte. S'appuyant notamment sur le refus de l'autorité compétente, en date du 14 mars 2019, de délivrer l'autorisation de construire requise, elle lui fait grief d'avoir retenu, manifestement à tort, que seul un problème de servitudes de jour faisait obstacle au projet de transformation. A cet égard, elle relève que l'Office genevois des autorisations de construire a indiqué ce qui suit dans sa lettre du 14 mars 2019:
" Nous avons bien reçu votre requête en autorisation de construire citée sous rubrique.
"D'emblée il apparaît que ce projet ne pourra être autorisé pour les motifs suivants:
Motifs et bases légales invoquées:
Articles 24, 25 et 48 de la Loi sur les constructions et les installations diverses (LCI) - Distances insuffisantes
La surélévation projetée ne respecte pas la règle des constructions édifiées en ordre contigu, au vu des jours en limite de la parcelle No xxx. De plus, la distance sur cour à la limite de la propriété précitée et de la parcelle No yyy ne justifie pas ni la modification de l'alignement de la façade, ni le supplément de la hauteur projetée.
(...)
Dans ces conditions, nous estimons qu'il est inutile de poursuivre l'instruction de votre dossier et de solliciter les préavis des autorités et organes compé tents. Par gain de temps, nous vous le renvoyons donc avec la présente.
Toutefois, si malgré l'empêchement absolu précité, vous désirez que votre requête suive tous les cheminements prévus par la procédure, vous voudrez bien nous le faire savoir et nous renvoyer le dossier. "
La recourante estime en outre que la juridiction précédente a enfreint l'<ref-law>, puisque le projet de transformation est objectivement impossible.
3.4. En l'occurrence, la recourante ne prétend pas, à juste titre, que les intimés ne disposaient pas d'un projet de travaux suffisamment mûr et élaboré nécessitant le départ de l'intéressée au moment de la résiliation de son bail.
Elle soutient uniquement que le congé qui lui a été notifié est abusif car il apparaît manifestement incompatible avec le droit public cantonal. A cet égard, elle fonde toute son argumentation sur la décision du 14 mars 2019 par laquelle l'Office genevois des constructions a refusé d'autoriser le projet de surélévation de l'immeuble. En raisonnant de la sorte, l'intéressée perd de vue qu'il convient d'apprécier le caractère objectivement impossible du projet de travaux au moment de la résiliation du bail. En d'autres termes, il s'agit de pronostiquer si, au moment où le congé a été signifié, l'autorisation des travaux envisagés paraissait de toute évidence exclue, une probabilité non négligeable de refus n'étant pas suffisante (cf. consid. 3.1.3 supra). La circonstance selon laquelle la partie bailleresse s'est vu refuser, après la résiliation du bail, l'autorisation d'effectuer les travaux litigieux n'est dès lors, à elle seule, pas décisive au moment d'effectuer un tel pronostic. S'il est vrai que ce refus peut permettre d'apprécier le degré d'impossibilité du projet à la date du 23 août 2018, on ne saurait en revanche en faire exclusivement dépendre le résultat dudit pronostic. Aussi les motifs pour lesquels l'Office genevois a refusé de délivrer aux intimés un permis de construire ne sont-ils, à eux seuls, pas décisifs pour apprécier la validité du congé. En l'espèce, la cour cantonale a constaté que le bureau d'architectes mandaté par les intimés aux fins d'établir un projet de surélévation de l'immeuble avait procédé, en novembre 2017, à une étude confirmant la faisabilité dudit projet. Celui-ci avait été ensuite soumis à la CDAT laquelle avait confirmé que le projet respectait les gabarits légaux, tout en demandant une analyse complémentaire afin d'être en mesure d'examiner le potentiel de surélévation des bâtiments voisins et en particulier de visualiser l'impact d'un mur pignon aveugle. Entendu en cours de procédure, l'architecte D._ a précisé que si la procédure de préconsultation auprès de la CDAT n'avait certes pas de valeur officielle elle donnait cependant une orientation sur la faisabilité du projet. Sur la base des faits constatés par la cour cantonale, force est de relever que la CDAT n'a jamais laissé entendre que le projet de surélévation de l'immeuble semblait de toute évidence incompatible avec les règles de droit public cantonal. Sur la base des informations à disposition lors de la résiliation du bail, et singulièrement du résultat de la procédure de préconsultation auprès de la CDAT, il y a lieu d'admettre que la constatation factuelle selon laquelle le projet de surélévation ne paraissait pas objectivement impossible au moment de la résiliation du bail ne saurait être taxée d'arbitraire. Dans ces circonstances, et sur la base de cette constatation de fait qui lie le Tribunal fédéral, le congé litigieux ne peut être qualifié de contraire à la bonne foi.
4.
Sur le vu de ce qui précède, le recours doit être rejeté. Ce nonobstant, la recourante n'aura pas à payer les frais de la procédure fédérale puisqu'elle a été mise au bénéfice de l'assistance judiciaire (<ref-law>). Quant aux honoraires de l'avocat d'office de la recourante, ils seront supportés par la Caisse du Tribunal fédéral (<ref-law>). L'octroi de l'assistance judiciaire ne dispense pas la recourante de verser des dépens aux intimés (<ref-ruling> consid. 2c; arrêt 4A_229/2018 du 12 octobre 2018 consid. 12), créanciers solidaires, qui ont été invités à se déterminer sur le recours.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Il n'est pas perçu de frais.
3.
La Caisse du Tribunal fédéral versera une indemnité de 1'500 fr. à l'avocat d'office de la recourante.
4.
La recourante versera aux intimés, créanciers solidaires, une indemnité de 1'500 fr. à titre de dépens.
5.
Le présent arrêt est communiqué aux mandataires des parties et à la Chambre des baux et loyers de la Cour de justice du canton de Genève.
Lausanne, le 14 février 2022
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Hohl
Le Greffier : O. Carruzzo