160 Commits
Author SHA1 Message Date
claudeandClaude Sonnet 4.6 f1abcaa4ce Hide LaTeX-only compile options for Typst/Quarto projects; add smooth_pdf_transition translations
Build and Deploy Verso / deploy (push) Successful in 9m35s
Draft compile mode and stop-on-first-error are LaTeX-only features not
supported by TypstRunner or QuartoRunner. Hide both sections from the
recompile dropdown for non-LaTeX projects. Also detect Quarto root files
(.qmd/.md/.Rmd) alongside Typst (.typ) to correctly set isLatexProject.

Add missing smooth_pdf_transition translations for French, Spanish, and
German (the English key already existed).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 13:45:02 +00:00
3140e46e68 [web] Replace token-link email verification with 6-digit code on SSO registration (ORCID) (#33889)
* Replace token-link email with 6-digit code on SSO registration

Unverified SSO emails previously received a long-lived token link
(90-day TTL) via UserEmailsConfirmationHandler. This replaces that
flow with the same 6-digit code verification used for password
registration, redirecting through /registration/confirm-email.

- SSOManager.registerSSO now always confirms email (caller must
  verify first); removes sendConfirmationEmail / _finishRegistration
- SSOController._signUp sends confirmation code and stores
  pendingSSORegistration in session when IdP email_verified is false
- New SSOConfirmEmailHandler completes registration after code check
  via completeSSOEmailConfirmation module hook
- OnboardingController confirm-email handlers accept
  pendingSSORegistration alongside pendingUserRegistration

confirmEmailFromToken (POST /user/emails/confirm) removal is deferred
to a follow-up PR to avoid breaking in-flight 90-day tokens.

Closes #28607

* Fix unverified-email edge cases; Add ORCID e2e tests;

* Rename `confirmEmail` parameter to `emailVerifiedByIdP` in _signUp function

* Remove `sendConfirmationEmail`

* Mock getUserByAnyEmail in tests

* Extract _finishSSORegistration helper to deduplicate the register →
set session flags → allocate referral → finishSaasLogin → finishLogin
sequence shared by both the direct and deferred (code-confirmed) paths.

* Stop duplicating session data in pendingSSORegistration

analyticsId, splitTests, and referal_* are already in the session at
confirmation time — no need to copy them into pendingSSORegistration.
Re-fetch splitTests fresh on completion instead.

* Simplify the code

* Remove dead confirmEmail template

No callers remain after sendConfirmationEmail was deleted. The token-link
flow (confirmEmailFromToken) only validates tokens, never sends email.

* Remove dead reconfirmEmail template

* Address comments from Copilot

* Clear stale pending registration when starting a new flow

* Add unit tests for completeSSOEmailConfirmation

* Add `verificationMethod` param

* Fix camelcase issues

* Extract _createSSOUser and _registerAndFinish helpers to deduplicate registration logic

* Remove obscure "registration_error"

* Prevent FormTextIcon from shrinking

* Enable "email_already_registered_sso" error

* Misc. improvements to confirm-email-form.tsx

* Remove `UserEmailsConfirmationHandler` mock

Co-authored-by: Olzhas Askar <olzhas.askar@overleaf.com>

* Add info on sso_email.pug page

---------

Co-authored-by: Olzhas Askar <olzhas.askar@overleaf.com>
GitOrigin-RevId: d0196ebc6d81ff61bcd27726d0b899b743d08d64
2026-06-05 08:06:34 +00:00
b07d141397 [web] Fix /user/subscription/plans#ai-assist redirects (#34124)
* [web] Redirect missing AI add-on purchase to subscription dashboard

The two error paths in `previewAddonPurchase` redirected to
`/user/subscription/plans#ai-assist`, but the `#ai-assist` anchor was
removed when the AI Assist add-on was retired, so users land at the top
of the plans page with no context. Align both with the other error
branches in the same function and the `plans-2026-phase-1` enabled
branch, which already redirect to
`/user/subscription?redirect-reason=ai-assist-unavailable` — the
subscription dashboard shows the matching warning alert
(`redirect-alerts.tsx`).

Update the acceptance test to match the new redirect target.

Closes #34074

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* [web] Update ai-assist-unavailable warning to reflect bundled AI features

The previous copy said "AI Assist isn't available to you due to your
current subscription type", which read as a hard block. Now that the AI
Assist add-on has been retired and AI features are included with every
paid plan, the warning should point users to the pricing page instead of
implying their plan can't access AI at all.

Keep the existing translation key for now — a follow-up can rename it
once #33624 (AI page CTA destination) is resolved.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* [web] Link the ai-assist-unavailable warning to the pricing page

* [web] Rename key `ai_assist_unavailable_due_to_subscription_type` -> `ai_assist_unavailable`

* [web] Update french and german translations

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
GitOrigin-RevId: ae1319fa5b857d8f292de77c82ef0bda1c7ad144
2026-06-04 08:06:31 +00:00
0e4fe4090a [web] Migrate manual plurals to i18next _plural convention (#33989)
* Add tests on plurals

* Update `collabs_per_proj` and its pluralisations

* Update `n_user` and its pluralisations

* Update `showing_x_results` and its pluralisations

* Update `show_x_more_projects` and its pluralisations

* `bin/run web npm run extract-translations`

* Populate `_plural` keys in non-en locales

For 2-form languages (da, de, es, fi, fr, it, nl, no, pt, sv, tr), copy
the existing bare-key value into the new `_plural` sibling to prevent
i18next from falling back to English for count!=1.

Also remove orphan singular keys (`collabs_per_proj_single`,
`showing_1_result*`) left over from the previous commits.

Bare-key values remain in their original plural form pending translator
review — count=1 will still render the plural form in non-en until
translators flip those to singular. Multi-form (cs, pl, ru) and
single-form (ja, ko, zh-CN, zh-TW) locales are unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Flip non-en bare-key values to singular form

Per review, the i18next v3 plural convention uses the bare key for count=1
(singular) and `_plural` for count!=1. The non-en bare-key values were
left as the original plural form by the previous commit so the `_plural`
siblings could be copied from them; this commit flips the bare values to
the singular form per language.

Languages where singular and plural noun forms coincide (Finnish, Swedish,
Turkish) are unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Apply suggestions from code review

Co-authored-by: Olzhas Askar <olzhas.askar@gmail.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Olzhas Askar <olzhas.askar@gmail.com>
GitOrigin-RevId: 628513ca792c2dcce023247e52b7320e2741cc54
2026-06-02 08:07:17 +00:00
Olzhas AskarandCopybot b5a73efaeb Merge pull request #34060 from overleaf/oa-timeout-cta
[web] Compile timeout CTA

GitOrigin-RevId: c1dd014150964ffec1b556943f572d3e5a8069ce
2026-06-01 08:04:24 +00:00
Miguel SerranoandCopybot f07212337f [web] Replace pro with commons wording on institutional subscript… (#34078)
* [web] Replace `pro` with `commons` wording on institutional subscriptions

Replaces the wording in several places:
- subscription settings
- email tags
- features tooltip
- institution portal

GitOrigin-RevId: 1b9a0e51245ed8a41865300d9e9d555bc05e6c17
2026-05-29 08:06:32 +00:00
Olzhas AskarandCopybot 014ac37704 Merge pull request #33814 from overleaf/oa-adjust-tooltip
[web] Adjust tooltip

GitOrigin-RevId: a180fb9872c9fc85b5ea7e3821e8e8c8393bab9d
2026-05-22 08:05:50 +00:00
Olzhas AskarandCopybot 868da835b6 Merge pull request #32434 from overleaf/oa-babelfish
[web] Project Babelfish

GitOrigin-RevId: da8c47c0831eaab3e2c74a9507892ae9571919e8
2026-05-18 08:05:57 +00:00
Olzhas AskarandCopybot 6c267e68d3 Merge pull request #33707 from overleaf/oa-learn-links
[web] Learn Overleaf links

GitOrigin-RevId: af9f72da008ad8b8c86e4c355268123eb6c40bcd
2026-05-18 08:05:48 +00:00
Olzhas AskarandCopybot 7c0595f9a9 Merge pull request #32063 from overleaf/oa-group-plans
[web] Rename group plans

GitOrigin-RevId: 8a3097dc1724709b5d7b163e0f9d968c21d63831
2026-04-30 08:05:10 +00:00
b345bf9485 [web] Update captcha notice (#32286)
* feat: remove translations

* feat: remove scss

* fix: remove the last translation

* feat: remove pug

* fix: forgotten conditions

* feat: also remove from react

* Revert changes

* Remove links from `recaptcha_conditions`

* Center short reCAPTCHA notice on CIAM screens

* Re-add the Chinese translation

---------

Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>
GitOrigin-RevId: 64e7b8a38c2a4b4f7e60d5c9df6740c35b8763d8
2026-04-14 08:05:15 +00:00
Olzhas AskarandCopybot f4f6c493ac Merge pull request #32445 from overleaf/oa-greasy-translations
[web] Greasy translations

GitOrigin-RevId: e7bd350bac5d27bf1561ea25bce69ed255fe98cd
2026-03-31 08:07:53 +00:00
Jakob AckermannandCopybot 17e01526b4 [web] fix typo in i18n key (#31713)
* [web] fix typo in i18n key

* [web] sort locales

GitOrigin-RevId: 9736eae24cdbd7aabd995087de368c667b25b849
2026-02-24 09:07:18 +00:00
Alf EatonandCopybot 3b027a2b08 Prevent "Remove access" text being cut off in Share model (#30976)
GitOrigin-RevId: ed577d83afd150d64c99bd6577d7543d9297f91a
2026-01-28 09:06:59 +00:00
Rebeka DekanyandCopybot 722e2a0359 Refund policy changes from 30 to 14 days (#30819)
* Change the refund policy from 30 to 14 days

* Align AI suggestions trial period with 14-day refund policy

* Revert "Align AI suggestions trial period with 14-day refund policy"

This reverts commit d3327c71c05543a751acd66450183bbf0eb95fd7.

GitOrigin-RevId: b77e09b2bb508951b68ae3a00b95146e6898bac5
2026-01-20 09:07:09 +00:00
Davinder SinghandCopybot 34173eda46 Change subscription page title to "Your subscriptions" (#29377)
* adding plural translations for the languages that were easy to test with the help of AI

* adding remaining translations

* adding your_subscriptions

* running make sort_locales

* fixing nl.json to make it formal You

GitOrigin-RevId: 7510e2f8eee87fd2a256ece434cc59e6877893e6
2025-11-11 09:05:44 +00:00
Antoine ClausseandCopybot 4d1e316bea [web] Conditionally render copies of login/register pages (Pug) depending of a uniaccessphase1 split-test (#29390)
* Conditionally render a CIAM copy of login.pug depending on `ciam` split-test

* Conditionally render a CIAM copy of register.pug depending on `ciam` split-test

* Conditionally render a CIAM copy of institutional_login.pug depending on `ciam` split-test

* Rename the test to `uniaccessphase1`

* Fixup ciam paths (underscores, not hyphens)

* Escape translations in `log_in_with_existing_institution_email`

See https://github.com/overleaf/internal/pull/29390#discussion_r2479318609

GitOrigin-RevId: fff0e154d1e1faad4842a2c49fa5889f9cc189e6
2025-11-03 09:05:53 +00:00
8c15af1a70 [web] Fix FileTreeModalCreateFile modal style on "too many files" error (#28995)
* Temporarily update `maxEntitiesPerProject` to test `FileTreeModalCreateFile`

* Remove unused CSS

* Move project_has_too_many_files Notification to the modal body

* Turn project_approaching_file_limit message into a Notification

* Update project_has_too_many_files translation with `fileCount.limit`

* Update other project_has_too_many_files with limit parameter

* Add translations for project_has_too_many_files_limit

* Revert "Temporarily update `maxEntitiesPerProject` to test `FileTreeModalCreateFile`"

This reverts commit 704996aa96c9ba592c7e44d165def0b97d30bed1.

* Fix unit tests

* Move the warning notification to the modal's body

---------

Co-authored-by: Rebeka <o.dekany@gmail.com>
GitOrigin-RevId: 0f54db7021e4cd4537a14e4f9e1d8ef54337778c
2025-10-15 08:07:16 +00:00
Olzhas AskarandCopybot d11674a51f Merge pull request #28540 from overleaf/oa-punctuation
[web] Notification punctuation

GitOrigin-RevId: ba20f0049a5f72f3ba03917d9fe76b220adffcf0
2025-09-23 08:07:49 +00:00
CloudBuildandCopybot 9e9ad3c005 auto update translation
GitOrigin-RevId: 52a28c6823536ef916c656128dbcdff1da80635b
2025-06-06 08:06:46 +00:00
CloudBuildandCopybot 0037b0b3fc auto update translation
GitOrigin-RevId: f0b783bc74dc2212d330305600c8f3d16d27eef3
2025-06-05 08:06:11 +00:00
DavidandCopybot db98f5132b Merge pull request #25939 from overleaf/dp-error-logs
Update error logs designs for new editor

GitOrigin-RevId: 0de3a54446a0ff114a1debb7b5f274d3a8f19c42
2025-06-05 08:05:11 +00:00
CloudBuildandCopybot efa20c26c9 auto update translation
GitOrigin-RevId: 410e63cee274ad03fc9f64b277ff0cd8aa8c1995
2025-05-30 08:05:46 +00:00
CloudBuildandCopybot 1c6ee3f930 auto update translation
GitOrigin-RevId: 4e2e3d1e7ca70f76f13f905753ba1ca2c945b72f
2025-05-27 08:05:55 +00:00
CloudBuildandCopybot c4c8f521ff auto update translation
GitOrigin-RevId: 07588ad1e4cbc9028cf0de125b4c6c222e1b0ecc
2025-05-19 08:05:37 +00:00
CloudBuildandCopybot 29b0dd0725 auto update translation
GitOrigin-RevId: 9010716cae7147df527797d531b902f40f20352c
2025-04-10 08:06:36 +00:00
CloudBuildandCopybot 670ed44963 auto update translation
GitOrigin-RevId: 2a2199f74cf1e0c2506ba336624cd858e2f24d3e
2025-04-07 08:05:15 +00:00
CloudBuildandCopybot f2030789d1 auto update translation
GitOrigin-RevId: 6363d21d4903cb8f4cdcca28ec1b1baca39406b1
2025-04-07 08:05:11 +00:00
CloudBuildandCopybot e08e58485e auto update translation
GitOrigin-RevId: 034ad5d613a28540d777f88c75e7284bc7eb7c3e
2025-03-31 08:05:01 +00:00
CloudBuildandCopybot ab19677a6c auto update translation
GitOrigin-RevId: 9ba894868c164a34d5420369c798d837a06fd450
2025-03-24 10:51:34 +00:00
CloudBuildandCopybot e8462f4250 auto update translation
GitOrigin-RevId: d8edcccce86a3892bebf2b4ab2d769275a231325
2025-03-24 10:51:30 +00:00
CloudBuildandCopybot aaa15a2733 auto update translation
GitOrigin-RevId: 9617a83b396ecec5c4b8a50a858db49257326027
2025-03-11 09:06:26 +00:00
CloudBuildandCopybot b5031fdee5 auto update translation
GitOrigin-RevId: ba3022ee74dee8356611c970a9cd880930023d34
2025-03-10 09:05:27 +00:00
CloudBuildandCopybot 3a898e2b61 auto update translation
GitOrigin-RevId: 3ef229bb22a6986ab693076b4386a0258acc8cbb
2025-02-17 09:05:18 +00:00
CloudBuildandCopybot 1aec79d726 auto update translation
GitOrigin-RevId: 3e637f00e1a54160e992e6c9cfc277e554677301
2025-02-07 09:06:45 +00:00
CloudBuildandCopybot 958d889cbe auto update translation
GitOrigin-RevId: 9d4df12b84ae4e63c54b8039c8e35eab506d8fa5
2025-01-22 09:05:25 +00:00
CloudBuildandCopybot 9332b42edd auto update translation
GitOrigin-RevId: 449c0fd0236464e412723bacc9bfeba2522a4a73
2025-01-20 09:05:30 +00:00
CloudBuildandCopybot ae34c4b8cc auto update translation
GitOrigin-RevId: fc3c6ea47100bc446d4a6290c2ba530083d9b717
2025-01-17 09:05:32 +00:00
CloudBuildandCopybot 397d7c18b7 auto update translation
GitOrigin-RevId: 514b5b3977f1609074ced18b92c76625056c5bb2
2024-12-20 09:05:29 +00:00
CloudBuildandCopybot 46ae397fb9 auto update translation
GitOrigin-RevId: e49cdfd8b712f54ddba599595e4f7f582e4da67c
2024-11-22 09:06:19 +00:00
CloudBuildandCopybot a92a1f5a24 auto update translation
GitOrigin-RevId: d0c96096d7a9b3d690852a3ddce37f1403674e2b
2024-11-21 09:05:38 +00:00
Antoine ClausseandCopybot 485bccebef [web] Update loading spinner in IDE for BS5 (#21970)
* Update `LoadingPane` with `LoadingSpinner`

* Remove unused file no-open-doc-pane.tsx

* Remove translation `open_a_file_on_the_left`

GitOrigin-RevId: 9045443de6aaf19b1d4bf82cd2be3ba91ee53bf1
2024-11-21 09:04:31 +00:00
CloudBuildandCopybot 776647d62a auto update translation
GitOrigin-RevId: 96e1603b6e71d6cfbf5e9cdb47a9fe46be7e35e3
2024-11-08 09:06:32 +00:00
CloudBuildandCopybot bb465adba1 auto update translation
GitOrigin-RevId: f3d9c9621ae4b205c3860fa9a9afec87e74ac264
2024-10-30 09:05:11 +00:00
CloudBuildandCopybot 9cafe8735d auto update translation
GitOrigin-RevId: 64e76a7de5ca253473033adc496a333bbbce26ed
2024-10-28 09:06:44 +00:00
CloudBuildandCopybot 99249a6cb1 auto update translation
GitOrigin-RevId: 4315630e3fd509ff7957a1c8e6dc7cbabd2e2d16
2024-09-26 08:06:10 +00:00
CloudBuildandCopybot a6598b0899 auto update translation
GitOrigin-RevId: 1701dc82182ee9477f4b03e2a68f4d8798fef6e1
2024-08-26 08:05:33 +00:00
CloudBuildandCopybot 3f8f5e89e1 auto update translation
GitOrigin-RevId: 3005cd9926459469113fdfd4b4ec27493debe3c5
2024-08-26 08:05:28 +00:00
Liangjun SongandCopybot 3f1edfc1c9 Merge pull request #19954 from overleaf/ls-access-token-gradual-rollout-cleanup
Update git bridge modal for pw auth deprecation

GitOrigin-RevId: 2e764922bf350ddcba29bf9f3baa220ed1f48e40
2024-08-26 08:05:15 +00:00
CloudBuildandCopybot d4f808152e auto update translation
GitOrigin-RevId: 9995a6ce69703a5237790765af8ec656b8942dde
2024-08-22 08:06:07 +00:00