Faits :
A.
En vue de la conclusion d'un contrat d'assurance vie avec Z._ SA (ci-après: Z._ ou l'assureur), X._, apprentie opticienne alors âgée de 21 ans, a signé une proposition d'assurance et une déclaration de santé en date du 5 juillet 2002.
Elle a répondu «non» aux questions suivantes:
" B. DÉCLARATION DE SANTÉ SIMPLIFIÉE
(...)
2. Souffrez-vous actuellement ou avez-vous souffert au cours des 5 dernières années de troubles de la santé ou des suites d'une maladie, d'une infirmité, d'une affection congénitale ou d'un accident?
3. Êtes-vous actuellement ou avez-vous été au cours des 5 dernières années en traitement ou sous contrôle médical? "
Elle a répondu «oui» à la question suivante:
"C. DÉCLARATION DE SANTÉ SUPPLÉMENTAIRE
(...)
6. Au cours des 10 dernières années, avez-vous été examiné ou traité par un médecin, psychiatre, chiropraticien ou psychothérapeute?
a) pour des maladies?"
La proposante a indiqué qu'il s'agissait d'une opération de la scoliose effectuée en 1994 par le Dr A._ à l'Hôpital orthopédique de..., où elle avait séjourné trois semaines, et précisait: «guérie sans suite».
Par ailleurs, elle a répondu «non» à la question 6i de la proposition d'assurance, à la teneur suivante:
"Avez-vous déjà reçu des prestations en cas d'incapacité de gain, de travail ou d'invalidité?"
Les deux documents ont été remplis par et avec l'aide d'un agent de Z._.
Le 18 juillet 2002, X._ a souscrit auprès de Z._ une police d'assurance sur la vie donnant droit à un capital de 14'563 fr. en cas de vie le 31 juillet 2020 ou en cas de décès entre le 1er août 2002 et le 31 juillet 2020, ainsi qu'à une rente annuelle de 12'000 fr. jusqu'au 31 juillet 2044, après un délai d'attente de vingt-quatre mois, en cas d'incapacité de gain du 1er août 2002 au 31 juillet 2042. En cas d'incapacité de travail, l'assurée était libérée du paiement des primes pour tout le contrat, après un délai d'attente de trois mois. Les primes d'assurance trimestrielles s'élevaient à 309 fr. du 1er août 2002 au 1er mai 2020 et à 112 fr. du 1er août 2020 au 1er mai 2042.
Le 30 janvier 2007, X._ a subi une intervention chirurgicale, qu'elle a annoncée à l'assureur le 16 avril 2007. Selon le protocole opératoire du 31 janvier 2017 (recte: 2007), la patiente, suivie pour des lombalgies et dorsalgies depuis 1987, avait été opérée en 1994, puis avait subi une nouvelle intervention en 1995 pour ablation de matériel d'ostéosynthèse.
Entre mai 2007 et octobre 2010, l'assureur a obtenu des médecins traitants de l'assurée diverses informations au sujet de l'état de santé passé et actuel de leur patiente.
Dans un certificat médical du 24 mai 2007, le Dr B._ - spécialiste FMH en neurochirurgie qui suivait l'assurée depuis juin 2005 et avait procédé à l'intervention du 30 janvier 2007 - faisait notamment état d'une «péjoration des lombalgies depuis environ 1999».
Dans un rapport du 4 septembre 2007, le Dr C._, remplaçant du Dr A._ à la retraite, déclarait qu'il avait vu X._ pour la première fois le 12 juin 2007 et que son prédécesseur avait eu avec cette patiente une trentaine, voire une cinquantaine de consultations, à des dates que le remplaçant refusait «absolument» de fournir; il relevait que les «traitements entrepris étaient en 94 une arthrodèse vertébrale postérieure» et que «dans les suites elle a[vait] fait une complication locale sous forme d'une déhiscence cicatricielle avec un hématome nécessitant une reprise plus tard en mai 2005 (recte: 1995) ».
Interpellé par l'assureur, le Dr B._ a établi le 18 octobre 2007 un nouveau certificat au sujet de l'état de santé de X._; il y confirmait «une augmentation nette de l'intensité des troubles à partir de 1999» ayant nécessité une première infiltration avec blocs facettaires en juillet 2005 et une seconde en octobre 2006, ainsi qu'une «persistance des troubles invalidants» ayant conduit à une incapacité de travail à 100% depuis le 24 janvier 2007, dont la cypho-scoliose était la cause principale; il observait que l'évolution était «stable et peu favorable» et qu'il était «très possible que la patiente présente une incapacité de travail, du moins partielle, durable»; une réévaluation était prévue le 2 novembre 2007 et une annonce AI avait été faite le 26 juillet 2007.
Par décision du 26 octobre 2007, l'assureur a libéré X._ du paiement des primes dès le 22 avril 2007, soit après un délai d'attente de trois mois, et lui a accordé une rente annuelle de 12'000 fr. dès le 22 janvier 2009, soit après un délai d'attente de vingt-quatre mois.
Par courrier du 14 novembre 2007, Z._ a derechef interpellé le Dr B._ afin d'obtenir les résultats de la réévaluation du 2 novembre 2007 et, le cas échéant, copie de la décision de l'office AI.
Après avoir été relancé à six reprises, le médecin a finalement répondu en date du 19 février 2009; il ressortait de ce courrier que X._ avait repris une activité d'opticienne à 50% et qu'il était peu probable qu'elle puisse augmenter sa capacité de travail; en outre, le médecin ne pensait pas qu'une décision AI avait déjà été rendue.
A partir du 20 avril 2009, l'assureur a demandé à l'office AI à plusieurs reprises de lui transmettre pour étude le dossier AI de l'assurée. Dans un courrier du 25 mai 2010, l'office AI a indiqué que X._ s'était vu refuser une rente par décision du 19 novembre 2009, qui faisait l'objet d'un recours à la Cour des assurances sociales du Tribunal cantonal. Z._ s'est adressée à cette instance le 15 octobre 2010 et le dossier AI lui a été transmis pour consultation le 21 octobre 2010.
A la lecture du rapport du Dr D._ du 3 septembre 2007 figurant au dossier AI, l'assureur a appris:
- qu'en 1997, X._ avait «commencé à éprouver un sentiment de faiblesse au membre inférieur gauche» et que «des lombalgies résiduelles [avaient] été traitées par des séances de physiothérapie»;
- qu'«au cours de l'année 2000, une première infiltration antalgique [avait] été pratiquée, ce qui a[vait] apporté un soulagement durant environ un an»;
- [qu']«après ce délai, les douleurs [étaient] réapparues progressivement, ce qui a[vait] amené à une 2ème infiltration qui malheureusement [était] restée sans effet»;
- qu'«au vu de l'échec du traitement conservatoire», une intervention chirurgicale avait été effectuée en janvier 2007 par le Dr B._.
Par le dossier AI, l'assureur a également appris qu'à la suite d'une demande de rente formulée en 1999, X._ avait perçu de l'AI, de 2000 à 2004, des indemnités journalières pour «entrée retardée dans la vie active».
Le 18 novembre 2010, Z._ a invoqué une réticence, considérant que X._ n'avait pas répondu avec exactitude aux questions B2, B3 et C6a de la déclaration de santé, ni à la question 6i de la proposition d'assurance. L'assureur a déclaré résoudre le contrat d'assurance, tout en renonçant à réclamer à l'assurée la restitution des prestations versées et le paiement des primes libérées, au motif que ces montants étaient partiellement compensés avec la valeur de rachat de la police, d'une part, et à titre de geste commercial, d'autre part.
B.
Par demande du 24 août 2011, X._ a conclu à ce qu'il soit dit que Z._ n'est pas autorisée à se départir du contrat d'assurance vie pour cause de réticence (I) et qu'elle est toujours liée par le contrat d'assurance vie (II) et à ce que Z._ soit condamnée à lui fournir les prestations prévues par le contrat à partir du 22 janvier 2007 (III).
Par jugement du 16 juin 2015, la Chambre patrimoniale cantonale du canton de Vaud a déclaré la demande irrecevable. Elle a considéré tout d'abord que l'action introduite par X._ constituait principalement une demande en paiement, soit une action condamnatoire, de sorte que les conclusions I et II, constatatoires, étaient irrecevables; par ailleurs, la conclusion III, tendant au versement d'une somme d'argent, était elle-même irrecevable faute d'avoir été chiffrée par la demanderesse.
X._ a interjeté appel, concluant principalement à la réforme du jugement de première instance en ce sens qu'il soit dit que Z._ n'est pas autorisée à se départir du contrat d'assurance pour cause de réticence et est toujours liée par ce contrat. Par arrêt du 1er mars 2016, la Cour d'appel civile du Tribunal cantonal du canton de Vaud a admis l'appel, annulé le jugement attaqué et renvoyé la cause aux premiers juges pour examen au fond des conclusions I et II de la demande. Elle a laissé aux juges précédents le soin de procéder à la répartition des frais de première instance conformément au résultat du litige au fond. Par ailleurs, donnant suite à une requête d'assistance judiciaire de l'appelante, elle a désigné l'avocat Tony Donnet-Monay en qualité de conseil d'office de la demanderesse pour la procédure d'appel, en astreignant la bénéficiaire à payer une franchise mensuelle de 50 fr. à compter du 1er avril 2016. Les frais judiciaires de deuxième instance, arrêtés à 3'300 fr., ont été répartis à parts égales entre l'appelante et l'intimée, les 1'650 fr. à payer par celle-là étant provisoirement laissés à la charge de l'État (ch. IV du dispositif). Quant aux dépens de deuxième instance, ils ont été compensés (ch. VII du dispositif).
X._ a formé un recours en matière civile au Tribunal fédéral en vue d'obtenir la réforme des ch. IV et VII du dispositif de l'arrêt cantonal en ce sens que les frais et dépens de la deuxième instance étaient mis exclusivement à la charge de son adverse partie.
Par arrêt du 17 mai 2016, la Présidente de la Ire Cour de droit civil n'est pas entrée en matière sur le recours (cause 4A_298/2016).
Par jugement du 27 décembre 2016, dont les considérants écrits ont été adressés aux parties le 8 juin 2017, la Chambre patrimoniale cantonale a rejeté les conclusions constatatoires prises par l'assurée contre Z._.
X._ a formé appel contre ce jugement, concluant principalement à sa réforme en ce sens que Z._ n'est pas autorisée à se départir du contrat d'assurance pour cause de réticence, et qu'elle est toujours liée par ce contrat.
Par arrêt du 21 mars 2018, la Cour d'appel civile a rejeté l'appel et confirmé le jugement du 27 décembre 2016.
C.
X._ interjette un recours en matière civile. Principalement, elle demande au Tribunal fédéral de réformer l'arrêt attaqué en ce sens que Z._ n'est pas autorisée à se départir du contrat d'assurance vie pour cause de réticence et est toujours liée par ledit contrat. A titre subsidiaire, elle conclut à la réforme de l'arrêt attaqué en ce sens que Z._ est condamnée au paiement de la moitié des frais de la procédure cantonale, les dépens étant compensés.
Par ailleurs, la recourante sollicite d'être mise au bénéfice de l'assistance judiciaire complète.

Considérant en droit :
1.
1.1. L'arrêt attaqué est une décision finale (art. 90 LTF) rendue en matière civile (art. 72 LTF) par le tribunal supérieur institué comme autorité cantonale de dernière instance, lequel a statué sur recours (art. 75 LTF). La valeur litigieuse atteint le seuil de 30'000 fr., ouvrant le recours en matière civile dans les affaires ne relevant ni du droit du travail ni du droit du bail à loyer (art. 74 al. 1 let. b LTF). Le recours est exercé par la partie qui a succombé dans ses conclusions constatatoires et qui a donc qualité pour recourir (art. 76 al. 1 LTF); il a été déposé en temps utile (art. 46 al. 1 let. a et art. 100 al. 1 LTF) et dans la forme (art. 42 LTF) prévue par la loi. Le recours est en principe recevable, sous réserve de l'examen des griefs particuliers.
1.2. Le Tribunal fédéral applique le droit d'office (art. 106 al. 1 LTF). Eu égard, toutefois, à l'exigence de motivation qu'impose l'art. 42 al. 2 LTF sous peine d'irrecevabilité (art. 108 al. 1 let. b LTF), l'autorité de céans n'examine d'ordinaire que les griefs invoqués, sauf en cas d'erreurs juridiques manifestes (<ref-ruling> consid. 2 p. 116; <ref-ruling> consid. 1.3). Par ailleurs, une exigence de motivation accrue prévaut pour la violation des droits constitutionnels tels que la protection contre l'arbitraire (art. 9 Cst.). Selon le principe d'allégation, le recourant doit indiquer quel droit ou principe constitutionnel a été violé, en expliquant de façon circonstanciée en quoi consiste la violation (art. 106 al. 2 LTF; <ref-ruling> consid. 2.2; <ref-ruling> consid. 3.2).
1.3. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (art. 105 al. 1 LTF). Il 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'art. 95 LTF (art. 105 al. 2 LTF). "Manifestement inexactes" signifie ici "arbitraires" (<ref-ruling> consid. 1.3.1 p. 253; <ref-ruling> consid. 2.3 p. 266; <ref-ruling> consid. 2 p. 117; <ref-ruling> consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (art. 97 al. 1 LTF).
En matière de constatations de fait et d'appréciation des preuves, le Tribunal fédéral se montre réservé, vu le large pouvoir qu'il reconnaît en ce domaine aux autorités cantonales. Il 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 (ATF <ref-ruling> consid. 2.3 p. 265; <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).
2.
2.1. Invoquant un établissement manifestement inexact des faits au sens de l'art. 97 al. 1 LTF et une appréciation arbitraire des preuves, la recourante reproche à la cour cantonale, d'une part, de n'avoir pas constaté que la question C6a de la déclaration de santé (dans sa partie «supplémentaire») complétait les questions B2 et B3 de ladite déclaration (dans sa partie «simplifiée») et, d'autre part, d'avoir passé sous silence les déclarations du médecin entendu à titre de témoin-expert. Si elle avait tenu compte de ces éléments, l'autorité précédente serait arrivée à la conclusion que l'assureur - averti à la réponse C6a de l'opération de la scoliose subie à l'âge de 14 ans et effectuée par un spécialiste réputé - ne pouvait pas ignorer que les questions B2 et B3 avaient été mal comprises par la proposante et, partant, qu'elle y avait répondu de manière incomplète.
2.2. Les juges précédents ont retenu que, dans la déclaration de santé remplie en 2002, la recourante avait nié, d'une part, souffrir ou avoir souffert dans les cinq années précédentes des suites d'une maladie, d'une infirmité ou d'une maladie congénitale et, d'autre part, être ou avoir été dans les cinq années précédentes en traitement ou sous contrôle médical. Il ressort par ailleurs de l'état de fait de l'arrêt cantonal que la proposante a souffert à nouveau de lombalgies dès 1997, d'abord traitées par des séances de physiothérapie, puis par des infiltrations. Ces faits ne sont pas contestés.
Invoquant sa réponse à la question C6a et l'avis du témoin-expert, la recourante a cherché à démontrer que l'assureur ne pouvait pas ignorer le caractère incomplet - ou plutôt inexact - des réponses apportées aux questions B2 et B3.
Savoir si, en raison de contradictions ou d'incertitudes dans les réponses à un questionnaire de santé, l'assureur devait connaître le fait qui a été déclaré de manière inexacte est une question à résoudre lors de l'application de l'art. 8 ch. 3 et 4 LCA. En l'espèce, l'analyse du rapport éventuellement contradictoire entre les réponses B2/B3 et la réponse C6a relève donc du droit. Dans cette mesure, le moyen tiré d'un établissement inexact des faits est irrecevable.
En ce qui concerne le témoignage prétendument ignoré de manière arbitraire par la cour cantonale, le médecin entendu comme témoin-expert a fourni son avis, décrivant quelle aurait été son attitude s'il avait été le médecin-conseil de l'assureur informé de l'opération de la scoliose de 1994; selon ses dires tels que relatés dans le recours, "un médecin-conseil prudent et soucieux des questions financières aurait pu demander à lire le dossier et voir les radios". L'évocation d'une simple possibilité, dans le cadre d'un examen prudent de la déclaration de santé par l'assureur, ne saurait faire apparaître l'opinion exprimée par le témoin-expert comme une preuve pertinente dont la cour cantonale devait tenir compte, sous peine de verser dans l'arbitraire, pour apprécier le comportement de l'assureur lors de la conclusion du contrat.
Pour autant que recevable, le moyen tiré de la violation de l'art. 9 Cst. ne peut être que rejeté.
3.
La question litigieuse est de savoir si l'intimée s'est valablement départie, pour cause de réticence, du contrat d'assurance liant les parties. Il n'est pas contesté que l'art. 6 LCA est applicable en l'espèce dans sa teneur antérieure au 1 er janvier 2006 (art. 6 aLCA), le contrat en cause ayant été conclu avant cette date (cf. <ref-ruling> consid. 2.2 p. 335). Selon l'art. 6 aLCA, l'assureur n'est pas lié par le contrat en cas de réticence, à condition qu'il s'en soit départi dans les quatre semaines à partir du moment où il a eu connaissance de la réticence.
3.1. La recourante se plaint d'une violation de l'art. 6 aLCA. Elle conteste tout d'abord avoir commis une réticence en répondant négativement aux questions B2 et B3, lesquelles, figurant dans la déclaration de santé simplifiée, devraient être comprises en lien avec la question C6a de la déclaration de santé supplémentaire; or, en répondant positivement à cette question-ci, la proposante a précisé avoir été opérée d'une scoliose en 1994 par le Dr A._. L'assureur savait dès lors que la proposante avait subi, à l'âge de 14 ans, une intervention sur la colonne vertébrale, effectuée par un grand spécialiste dans ce domaine. L'intimée a pourtant accepté sans réserve l'offre de contracter, s'abstenant de demander des compléments d'information sur cette intervention chirurgicale ou d'instruire les risques liés à la maladie dûment signalée. Dans ces conditions, l'assureur ne saurait, de l'avis de la recourante, invoquer une quelconque réticence en lien avec les réponses B2 et B3.
La recourante nie également avoir commis une réticence en répondant négativement à la question 6i de la proposition d'assurance; comme seules y sont mentionnées les prestations en cas d'incapacité de gain, de travail ou d'invalidité, elle ne concernerait pas les prestations AI pour entrée tardive dans la vie active, perçues entre 2000 et 2004 alors que la recourante, en apprentissage, disposait d'une pleine capacité de travail. Il s'agirait du reste de l'avis de l'agent ayant assisté la proposante lorsqu'elle a rempli le questionnaire.
3.1.1. La réticence se définit comme l'omission de déclarer ou le fait de déclarer inexactement, lors de la conclusion du contrat, un fait important que la personne astreinte à la déclaration connaissait ou devait connaître (art. 6 aLCA; la définition même de la réticence n'a pas changé fondamentalement à la suite de la modification législative entrée en vigueur le 1 er janvier 2006 [cf. art. 6 al. 1 LCA]). La notion renvoie aux déclarations obligatoires au sens de l'art. 4 LCA. Selon l'alinéa 1 de cette disposition, le proposant doit déclarer par écrit à l'assureur suivant un questionnaire ou en réponse à toutes autres questions écrites, tous les faits qui sont importants pour l'appréciation du risque, tels qu'ils lui sont ou doivent lui être connus lors de la conclusion du contrat. La question posée par l'assureur doit être formulée par écrit et être rédigée de manière précise et non équivoque (cf. art. 4 al. 3 LCA; <ref-ruling> consid. 2.3 p. 336; <ref-ruling> consid. 3.3.4 p. 515). Le proposant doit répondre de manière véridique aux questions telles qu'il peut les comprendre de bonne foi; il n'y a pas de réponse inexacte si la question est ambiguë, de telle sorte que la réponse donnée apparaît véridique selon la manière dont la question pouvait être comprise de bonne foi par le proposant (<ref-ruling> consid. 2.3 p. 336 s.).
Pour qu'il y ait réticence, il faut, d'un point de vue objectif, que la réponse donnée à la question ne soit pas conforme à la vérité, par omission ou inexactitude; la réticence peut consister à affirmer un fait faux, à taire un fait vrai ou à présenter une vision déformée de la vérité (<ref-ruling> consid. 2.3 p. 337). D'un point de vue subjectif, la réticence suppose que le proposant connaissait ou aurait dû connaître la vérité (cf. art. 4 al. 1 et art. 6 al. 1 LCA). Le proposant doit déclarer non seulement les faits qui lui sont connus sans autre réflexion, mais aussi ceux qui ne peuvent lui échapper s'il réfléchit sérieusement à la question posée (<ref-ruling> consid. 2.3 p. 337; <ref-ruling> consid. 3.3.3 p. 514).
Il faut en plus que la réponse inexacte porte sur un fait important pour l'appréciation du risque (art. 4 al. 1 et art. 6 al. 1 LCA). Sont importants tous les faits de nature à influer sur la détermination de l'assureur de conclure le contrat ou de le conclure aux conditions convenues (art. 4 al. 2 LCA). L'art. 4 al. 3 LCA présume que le fait est important s'il a fait l'objet d'une question écrite de l'assureur, précise et non équivoque. Il s'agit toutefois d'une présomption susceptible d'être renversée. S'il n'appartient pas au proposant de déterminer - à la place de l'assureur - quels sont les éléments pertinents pour apprécier le risque, il n'en demeure pas moins que la présomption sera renversée s'il apparaît que le proposant a omis un fait qui, considéré objectivement, apparaît totalement insignifiant. Ainsi, la jurisprudence a admis que celui qui tait des indispositions sporadiques qu'il pouvait raisonnablement et de bonne foi considérer comme sans importance et passagères, sans devoir les tenir pour une cause de rechutes ou des symptômes d'une maladie imminente aiguë, ne viole pas son devoir de renseigner (<ref-ruling> consid. 2.4 p. 337 s. et les arrêts cités; <ref-ruling> consid. 3.3.4 p. 515).
Dans certaines circonstances, le contrat d'assurance est maintenu malgré la réticence (cf. art. 8 LCA). L'assureur sera ainsi déchu du droit de se départir du contrat s'il connaissait ou devait connaître le fait qui n'a pas été déclaré ou qui a été inexactement déclaré (art. 8 ch. 3 et 4 LCA). Par la formule employée, il apparaît que l'assureur a l'obligation d'examiner de manière attentive et critique les réponses données aux questions qu'il a posées, sans que les rôles ne soient toutefois inversés. Il n'a pas à se renseigner, ni à rechercher par lui-même les réponses aux questions qu'il a formulées (<ref-ruling> consid. 3c/bb et cc p. 396); il n'a pas davantage à vérifier par tous les moyens à sa disposition les réponses qui lui sont fournies (<ref-ruling> consid. 4 p. 350; arrêt 4A_579/2009 du 1er février 2010 consid. 2.5). En revanche, l'assureur doit rechercher des informations s'il est nécessaire d'écarter des incertitudes ou d'élucider des contradictions qui résulteraient des réponses apportées dans la proposition. Nier toute obligation à sa charge dans ce domaine pourrait en effet amener l'assureur à se taire lors de la conclusion du contrat, afin de pouvoir bénéficier de la réticence en cas de sinistre, ce qui serait contraire aux règles de la bonne foi (arrêt 4A_376/2014 du 27 avril 2015 consid. 2.4.1 et les références). S'il existe une contradiction manifeste dans les réponses données par le proposant, il appartient dès lors à l'assureur de la lever, en réclamant de plus amples informations à l'intéressé ou en sollicitant les renseignements utiles de la part du médecin traitant (même arrêt, consid. 2.4.2).
3.1.2. L'application de ces règles au cas particulier aboutit aux conclusions suivantes.
3.1.2.1. Les questions B2 et B3 de la déclaration de santé portaient sur l'état de santé de la proposante et un éventuel suivi médical, tels qu'ils se présentaient au moment où l'intéressée remplissait le questionnaire et dans les cinq ans précédents. Les termes utilisés - «troubles de la santé», «suites d'une maladie, d'une infirmité, d'une affection congénitale ou d'un accident», «en traitement», «sous contrôle médical» - n'étaient pas ambigus. Rédigées de manière précise et non équivoque, les questions B2 et B3 concernaient manifestement des faits importants pour l'appréciation du risque.
Le 5 juillet 2002, la recourante a répondu négativement aux deux questions alors que, depuis 1997, elle souffrait de lombalgies résiduelles, traitées tout d'abord par des séances de physiothérapie, puis, en 2000, par une première infiltration, suivie environ une année plus tard d'une seconde infiltration en raison de la réapparition des douleurs. Ce faisant, elle a tu des faits vrais qu'elle ne pouvait ignorer et commis dès lors une réticence, comme la cour cantonale l'a reconnu à bon droit.
Le seul point à examiner encore est de savoir s'il existait une telle contradiction dans les réponses données à plusieurs questions qu'il ne pouvait échapper à l'assureur que la proposante n'avait pas répondu avec exactitude aux questions B2 et B3. Par la question C6a, l'intimée cherchait à savoir si la proposante avait été examinée ou traitée pour des maladies par un médecin, psychiatre, chiropraticien ou psychothérapeute dans les dix années précédentes. La recourante a répondu positivement, en indiquant en outre avoir été opérée en 1994 pour une scoliose par le Dr A._ à l'Hôpital orthopédique, à.... Comme l'autorité précédente l'a relevé à juste titre, la proposante elle-même a précisé «guérie sans suite», sous la réponse C6a citant l'opération de la scoliose de 1994. Vu cette mention expresse et claire, il est difficile de percevoir une incohérence entre la réponse C6a et les réponses B2/B3, où la recourante nie notamment avoir souffert des suites d'une maladie ainsi qu'avoir été en traitement ou sous contrôle médical dans les cinq dernières années. En tout cas, on ne saurait retenir une contradiction flagrante propre à faire naître chez l'assureur des doutes sur l'exactitude des réponses B2 et B3. Il n'y a ainsi pas lieu d'adhérer à la thèse de la recourante, selon laquelle l'intimée, faisant fi du lien entre les questions B2/B3 et C6a, aurait méconnu son obligation d'examiner de manière attentive et critique les réponses de la proposante et, partant, ne pourrait se départir du contrat d'assurance malgré la réticence constatée aux réponses B2/B3.
3.1.2.2. La recourante a répondu négativement à la question 6i de la proposition d'assurance, par laquelle l'intimée cherchait à savoir si la proposante avait déjà reçu des prestations en cas d'incapacité de gain, de travail ou d'invalidité. A l'époque où elle a rempli ce questionnaire, la recourante, en apprentissage, avait droit à des mesures professionnelles de l'AI et percevait à ce titre, depuis le 1 er août 2000, des indemnités journalières, destinées à compenser la perte de gain liée à une entrée retardée dans la vie active en raison de la scoliose. Ces prestations étaient donc versées par l'AI parce que l'atteinte à la santé avait diminué la capacité de gain de la recourante. En niant, à la question 6i, avoir déjà perçu notamment des prestations en cas d'incapacité de gain, la proposante a donné une réponse inexacte d'un point de vue objectif. Sous l'angle subjectif, il ne pouvait échapper à la proposante que le versement d'indemnités journalières par l'AI était un fait important pour l'appréciation du risque, qui impliquait de bonne foi une réponse positive à la question 6i. La recourante ne saurait sur ce point se défausser sur l'agent d'assurance l'ayant assistée pour remplir le questionnaire, dès lors qu'il n'est pas établi que la proposante ou sa mère alors présente aient signalé audit agent le versement d'indemnités journalières par l'AI. Au surplus, le simple avis émis par l'agent entendu comme témoin - qui, informé, n'aurait "pas forcément" répondu "oui" à la question 6i - n'apparaît pas déterminant.
Il s'ensuit que la cour cantonale n'a pas violé le droit fédéral en admettant une réticence de la part de la recourante également en lien avec la question 6i de la proposition d'assurance.
3.2. La recourante reproche à l'autorité précédente une autre violation de l'art. 6 aLCA. En tout état de cause, l'intimée n'aurait pas respecté le délai de quatre semaines prévu par cette disposition pour invoquer une réticence, que ce soit en lien avec les réponses B2 et B3 de la déclaration de santé ou avec la réponse 6i de la proposition d'assurance. Selon la recourante, le rapport du 18 octobre 2007 du Dr B._ - faisant état d'une augmentation nette de l'intensité des troubles à partir de 1999 ainsi que d'une annonce AI en date du 26 juillet 2007 - marquerait le dies a quo du délai précité, de sorte que l'intimée aurait agi tardivement en invoquant la réticence le 18 novembre 2010.
3.2.1. Comme l'art. 6 al. 2 LCA, l'art. 6 aLCA fixe le début du délai de péremption de quatre semaines à la connaissance de la réticence par l'assureur. Il s'agit là d'un point de départ objectif, qui ne dépend pas de la question de savoir si l'assureur aurait pu connaître plus tôt le fait tu en faisant preuve de diligence (<ref-ruling> consid. 3a p. 339 et les arrêts cités). Le délai ne commence à courir que lorsque l'assureur dispose d'informations dignes de foi sur des faits dont on peut déduire avec certitude qu'une réticence a été commise; de simples présomptions, qui apportent une plus ou moins grande vraisemblance, ne sont pas suffisantes (<ref-ruling> consid. 2.1 p. 12; <ref-ruling> consid. 5a p. 287 s.). L'assureur doit être complètement orienté sur tous les points relatifs à la réticence et en avoir une connaissance effective, de simples doutes étant insuffisants (<ref-ruling> consid. 3a et 3b p. 340). L'abus de droit est réservé; par exemple, le délai pourra commencer de courir si l'assureur refuse sciemment de prendre connaissance des éléments constitutifs de la réticence (<ref-ruling> consid. 3c p. 340, consid. 3d p. 341 et consid. 3e p. 342).
3.2.2. Il convient d'examiner à présent si, comme la cour cantonale l'a admis, l'intimée a invoqué à temps les deux réticences retenues, étant précisé qu'un délai indépendant courait pour chacune d'elles (<ref-ruling> consid. 2a p. 342 et l'arrêt cité).
3.2.2.1. En ce qui concerne les faits tus aux questions B2 et B3, l'intimée a eu une connaissance certaine et complète de tous les éléments de la réticence à la lecture du rapport du Dr D._ du 3 septembre 2007, figurant dans le dossier AI qui lui avait été remis le 21 octobre 2010. C'est à ce moment-là seulement que l'assureur a appris précisément les atteintes à la santé éprouvées par la recourante depuis 1997 (sentiment de faiblesse au membre inférieur gauche, lombalgies résiduelles), ainsi que les différents traitements qui avaient été prescrits (physiothérapie, infiltrations) dans les cinq ans précédant la conclusion du contrat d'assurance en 2002. Certes, dans son rapport du 18 octobre 2007 marquant le dies a quo aux yeux de la recourante, le Dr B._ cite la cypho-scoliose comme la cause principale de l'incapacité de travail actuelle de sa patiente et observe une "augmentation nette de l'intensité des troubles à partir de 1999". Mais au sujet des soins apportés en raison de cette aggravation, le neuro-chirurgien ne mentionne que les infiltrations qu'il a effectuées en juillet 2005 et octobre 2006; il ne fournit aucune indication sur d'éventuels autres traitements prescrits précédemment par d'autres médecins.
Dans le rapport précité, le Dr B._ fait également état d'une annonce AI effectuée le 26 juillet 2007. Contrairement à ce que la recourante prétend, le fait que l'intimée a demandé pour la première fois à consulter le dossier AI près de deux ans plus tard est sans incidence sur le calcul du délai pour invoquer la réticence, puisque le dies a quo dépend de la connaissance de la réticence, et non du moment où, par hypothèse, l'assureur diligent aurait pu en prendre connaissance. Cela étant, force est de constater que, mis au courant par le rapport du Dr B._ du 24 mai 2007 d'une péjoration des lombalgies chez l'assurée depuis environ 1999, l'assureur a cherché sans relâche à en savoir plus, notamment sur un éventuel suivi médical, auprès des médecins traitants connus de la recourante, puis de l'office AI et que ces démarches, souvent restées sans réponse, ont dû être renouvelées sur une période assez longue. En tous les cas, l'attitude de l'intimée ne saurait être vue comme une temporisation constitutive d'un abus de droit.
Comme la cour cantonale l'a admis à bon droit, l'intimée a respecté le délai de péremption prévu par l'art. 6 aLCA en invoquant la réticence liée aux questions B2 et B3 dans les quatre semaines suivant la transmission du dossier AI en date du 21 octobre 2010.
3.2.2.2. S'agissant de la seconde réticence, portant sur la perception d'indemnités journalières de l'AI entre 2000 et 2004, l'intimée en a pris connaissance lors de la consultation du dossier AI transmis le 21 octobre 2010. Là aussi, la recourante plaide en vain une temporisation abusive de la part de l'assureur, déjà pour la simple raison que l'annonce du cas à l'AI effectuée en juillet 2007 à la suite de l'intervention de janvier 2007 ne permettait pas en elle-même de soupçonner que des prestations AI avaient été versées précédemment à la recourante.
Comme pour la première réticence, la cour cantonale n'a pas non plus violé l'art. 6 aLCA en admettant que l'intimée avait invoqué à temps la réticence commise en lien avec la question 6i de la proposition d'assurance.
4.
Invoquant les art. 106 et 107 CPC, la recourante s'en prend, dans un dernier moyen, à la répartition des frais et dépens de la première procédure d'appel, ayant donné lieu à l'arrêt rendu le 1 er mars 2016 par la Cour d'appel civile. Elle reproche à cette autorité d'avoir refusé, dans son arrêt du 21 mars 2018, de revenir sur la question précitée, malgré l'avis que le Tribunal fédéral aurait émis dans son arrêt d'irrecevabilité du 17 mai 2016. Sur la répartition elle-même, la recourante fait valoir que les juges précédents ne pouvaient pas partager les frais par moitié entre les parties, ni compenser les dépens; ils n'auraient disposé d'aucune marge de manoeuvre dès lors que l'appelante avait obtenu entièrement gain de cause et que l'intimée avait alors succombé dans l'ensemble de ses conclusions.
4.1. Telles que libellées, les conclusions du recours, y compris celles relatives au prononcé accessoire sur les frais et dépens, sont dirigées exclusivement contre l'arrêt du 21 mars 2018. Ainsi, pour le cas où son recours sur la question de fond ne serait pas admis, la recourante conclut à la réforme de cet arrêt en ce sens que l'intimée est condamnée au paiement de la moitié des frais de la procédure cantonale et que les dépens sont compensés; en d'autres termes, elle demande de corriger, dans le prononcé accessoire de l'arrêt final sur les frais et dépens de la seconde procédure d'appel, la répartition des frais et dépens figurant dans le dispositif de la décision incidente rendue dans la première procédure d'appel. Certes, comme le Tribunal fédéral l'a rappelé dans l'arrêt précité du 17 mai 2016, la recourante devait contester le prononcé accessoire de la décision incidente dans un recours dirigé contre la décision finale (consid. 2.2). S'agissant de la formulation des conclusions d'un recours au Tribunal fédéral (cf. art. 42 al. 2 LTF), on peut se demander toutefois si la recourante n'aurait pas dû, sous peine d'irrecevabilité, prendre une conclusion spécifique en modification des chefs du dispositif de la décision incidente relatifs aux frais et dépens, dès lors que ce prononcé accessoire n'avait, à juste titre, pas été revu ensuite par la Chambre patrimoniale cantonale, ni par la Cour d'appel civile (cf. FLORENCE AUBRY GIRARDIN, in Commentaire de la LTF, 2 e éd. 2014, n° 17 ad art. 42 LTF p. 308). Point n'est besoin d'examiner plus avant cette question, le grief tiré d'une violation des art. 106 et 107 CPC se révélant de toute manière mal fondé pour les motifs suivants.
4.2. En règle générale, les frais - soit les frais judiciaires et les dépens (art. 95 al. 1 CPC) - sont mis à la charge de la partie succombante (art. 106 al. 1 CPC) ou répartis selon le sort de la cause lorsqu'aucune des parties n'obtient entièrement gain de cause (art. 106 al. 2 CPC). Dans certains cas énumérés à l'art. 107 al. 1 CPC, le juge peut toutefois répartir les frais selon sa libre appréciation, notamment si des circonstances particulières rendent la répartition en fonction du sort de la cause inéquitable (let. f).
Dans son arrêt du 1 er mars 2016, la Cour d'appel civile a admis l'appel de la recourante et annulé le jugement d'irrecevabilité du 16 juin 2015; la cause était renvoyée à la Chambre patrimoniale cantonale pour examen au fond des conclusions constatatoires de la recourante. Pour ce qui est de l'instance d'appel, la cour cantonale a réparti les frais judiciaires par moitié entre les parties et compensé les dépens. Elle justifiait une telle répartition par deux motifs. D'une part, l'appelante avait plaidé en appel le fond de l'affaire, notamment la réticence, quand bien même elle s'attaquait à un jugement d'irrecevabilité. D'autre part, elle avait attendu la procédure d'appel pour retirer sa conclusion condamnatoire alors que, de son propre aveu, celle-ci n'avait plus d'objet depuis le 12 mars 2012, bien avant le prononcé du jugement du 16 juin 2015.
Ce faisant, la cour cantonale n'a pas violé la règle générale de la répartition selon le sort de la cause, ni abusé de son pouvoir de répartir les frais en équité. En appel, la recourante avait bien pris principalement des conclusions constatatoires au fond, en tout état de cause inutiles dans cette phase du procès. Formellement, elle n'a donc pas obtenu le plein de ses conclusions. Mais surtout, l'attitude de la recourante a contribué au jugement d'irrecevabilité du 16 juin 2015, qu'elle a ensuite dû attaquer par un appel. En effet, à l'origine, elle a formulé des conclusions en constatation (conclusions I et II) et une conclusion condamnatoire (conclusion III). Dans sa première décision, la Chambre patrimoniale cantonale a considéré que l'action introduite constituait principalement une demande en paiement, soit une action condamnatoire, de sorte qu'en vertu du principe de subsidiarité de l'action en constatation, les conclusions I et II étaient irrecevables. Or, selon les constatations de la Cour d'appel civile, la conclusion III avait, du propre aveu de la recourante, perdu son objet depuis mars 2012, soit bien avant le prononcé du jugement du 16 juin 2015. En maintenant la conclusion III, la recourante a en quelque sorte induit en erreur les premiers juges, ce qu'elle aurait pu éviter en retirant sa conclusion condamnatoire dès que celle-ci n'avait plus d'objet. Dans ces circonstances, il n'apparaît pas inéquitable de faire supporter à l'appelante la moitié des frais judiciaires et de compenser les dépens de la première procédure d'appel.
5.
Sur le vu de ce qui précède, le recours doit être rejeté dans la mesure où il est recevable.
Comme le recours était voué à l'échec, la demande d'assistance judiciaire de la recourante sera rejetée (art. 64 al. 1 LTF).
En conséquence, la recourante prendra à sa charge les frais judiciaires (art. 66 al. 1 LTF). En revanche, elle n'aura pas à verser de dépens à l'intimée, qui n'a pas été invitée à se déterminer sur le recours.

Par ces motifs, le Tribunal fédéral prononce:
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire de la recourante est rejetée.
3.
Les frais judiciaires, arrêtés à 7'000 fr., sont mis à la charge de la recourante.
4.
Le présent arrêt est communiqué aux mandataires des parties et à la Cour d'appel civile du Tribunal cantonal du canton de Vaud.
Lausanne, le 13 décembre 2018
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
La Greffière : Godat Zimmermann