Commit Graph

28020 Commits

Author SHA1 Message Date
Antoine Clausse
590c2ab2e2 [web] Fix AI quota paywall upgrade CTA to use interstitial page (#33376)
* Update hrefs

* Revert link on expired subscriptions

* Revert hrefs of other buttons

* Use `plans-2026-phase-1` feature flag

GitOrigin-RevId: 3fe489c6ec192adc2fb836b07429dc2a11f9a57f
2026-05-06 08:05:53 +00:00
Antoine Clausse
cff35c743f [web] Fix wrong price shown in future payments preview when upgrading over a pending downgrade (#33305)
* fix(web): show correct plan in future payments preview when upgrading over a pending downgrade

When a user had a scheduled plan downgrade and then immediately upgraded
to a higher plan, makeChangePreview() always used the pending (stale)
plan code/name/price for the future payments display rather than the
newly selected plan.

Check whether the current change is a plan change (premium-subscription
or group-plan-upgrade type) and if so use subscriptionChange's plan
details instead of pendingChange's, since the immediate upgrade overrides
the scheduled downgrade.

Closes #33299

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(web): add unit tests for makeChangePreview pending-change plan override

Covers the four cases: premium-subscription and group-plan-upgrade types
use subscriptionChange plan (not pendingChange), add-on-purchase type
defers to pendingChange plan, and no-pending-change falls back to
subscriptionChange as before.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
GitOrigin-RevId: cc2f9c88e5dfdfb89370798e857ea98caf8fcf85
2026-05-06 08:05:49 +00:00
Andrew Rumble
f434b1fc28 Merge pull request #33149 from overleaf/ar-ja-remove-i18next-additional-packages
[web] remove i18next additional libraries

GitOrigin-RevId: 98fc17b409090db32b02bb66953f1c2e6efee608
2026-05-06 08:05:41 +00:00
Jimmy Domagala-Tang
6a6bb625db feat: removing duplicated error messaging when user hits paywall, now leave any limit messaging to the paywall instead of also handling it in the error assist components (#33337)
GitOrigin-RevId: d3a915e75e5ba4f10c109e8e971b00a84177109a
2026-05-05 08:06:37 +00:00
Jimmy Domagala-Tang
cf0f4cb339 feat: updating content and adding new variant for groups (#33289)
GitOrigin-RevId: afecbd92c6a9f224226f3918d94396e2927f104a
2026-05-05 08:06:30 +00:00
Jakob Ackermann
d61e3f5521 [web] fix caching of session.analyticsId (#33300)
* [web] fix caching of session.analyticsId

* [web] disable analyticsIdMiddleware tests for Server Pro/CE

GitOrigin-RevId: 2acf76f937adabd62b1e9f876a858211ef7a13c6
2026-05-05 08:06:09 +00:00
Jakob Ackermann
37cc65ec7e [web] consolidate clsi downloads and add zod validation (#33069)
* [web] consolidate clsi downloads and add zod validation

* [validation-tools] make prettier happy

* [web] make clsiServerId optional

* [web] fix type of buildId

* [web] gracefully handle ObjectId

* [web] fix type of buildId

* [monorepo] address review feedback

- cjs export
- update module path in comments
- skip adding ?clsiserverid if not set
- allow nested output file download for submissions and add tests

* [web] address review feedback

* [web] cache one more zod schema

* [web] fix unit tests

GitOrigin-RevId: 0a1e618955983e035defd6d3c0528b81e0e85c95
2026-05-05 08:06:05 +00:00
Malik Glossop
e2de08ca86 Merge pull request #33146 from overleaf/copilot/fix-code-folding-bug
Fix code folding when a comment or blank line precedes an indented sectioning command

GitOrigin-RevId: 2a955311c1ce073b2eb80fdfbf45d00705e22d69
2026-05-05 08:05:57 +00:00
Malik Glossop
47473bc5f4 Merge pull request #33044 from overleaf/worktree-mg-writefull-setting
Add writefull "AI Assistance" section

GitOrigin-RevId: c6d4cb60601c0b808cde96f29f6b79b26f631906
2026-05-05 08:05:53 +00:00
Maria Florencia Besteiro Gonzalez
ed3f9517fd Merge pull request #33367 from overleaf/mfb-revert-revert-bibtex-loading-spinner
Reapply "BibTeX visual editor: show loading spinner when switching bib files"

GitOrigin-RevId: e71c44948b17cfa9aa9d38aa87842dba05697c38
2026-05-05 08:05:49 +00:00
ilkin-overleaf
5727643852 Merge pull request #33065 from overleaf/ii-share-modal-send-invites
[web] Add send invites input and role selection to share modal

GitOrigin-RevId: f43654e1ca0d8000b2327f1f398fd062ef1b74e4
2026-05-05 08:05:45 +00:00
Kristina
fdc939fe0a [web] emit project:membership:changed when removing self from project (#33143)
GitOrigin-RevId: 5a101add69e0077f667f98f5b95c2476ad3085d4
2026-05-05 08:05:34 +00:00
Copilot
799dcf618b [web] Add text-align: left to .notification-content (#33142)
GitOrigin-RevId: 6470f6453f3c31e335863a67d3738972c84fc515
2026-05-05 08:05:30 +00:00
Kristina
a6ac7bdd41 [web] catch failed requests to project/doc metadata endpoints (#33139)
Unhandled promise rejections from these fire-and-forget calls were
surfacing in Sentry. Add .catch(debugConsole.error) to suppress them.

GitOrigin-RevId: a14cd0a3956a2b551210723ad56e7ec5e354a7a7
2026-05-05 08:05:26 +00:00
Kristina
d73e2b063a [web] add email notification surveys (#33063)
* feat: update survey link in settings modal
* feat: add survey link to email footer

GitOrigin-RevId: acd22281931bb98eebafa7072dca1c54d48cd972
2026-05-05 08:05:21 +00:00
Maria Florencia Besteiro Gonzalez
f977a813db Merge pull request #33359 from overleaf/revert-33145-mfb-bug-switching-files-editor-not-immediately-refresh
Revert "BibTeX visual editor: show loading spinner when switching bib files"

GitOrigin-RevId: 509ba1f07e7ff418ad2a30683980100dacb77cc6
2026-05-05 08:05:17 +00:00
Maria Florencia Besteiro Gonzalez
04b6a9762f Merge pull request #33145 from overleaf/mfb-bug-switching-files-editor-not-immediately-refresh
BibTeX visual editor: show loading spinner when switching bib files

GitOrigin-RevId: 0047e6a75273e322490dde0b0fc7889b46f6d469
2026-05-04 08:06:02 +00:00
Simon Gardner
feb4f49859 [fix] use Stripe productId rather planCode when adding prices (#33344)
GitOrigin-RevId: 6e24317a0086332145c88a9be3b700b96d7a1187
2026-05-04 08:05:50 +00:00
Kristina
9a670805c4 [scripts] handle creating custom prices (#32607)
GitOrigin-RevId: 3950698ca21de5d8ee87d0531e1e9f562aeb76f8
2026-05-04 08:05:46 +00:00
Andrew Rumble
4954c738da Merge pull request #33328 from overleaf/ar-handle-more-than-40-saas-modules
[web] make sure acceptance tests run when there are more than 40 modules

GitOrigin-RevId: 6aad027448f2dcdc5c0a8e0bbd4120c514b9a0ca
2026-05-04 08:05:41 +00:00
Mathias Jakobsen
c67885919b Merge pull request #33141 from overleaf/mj-tutorials-show-one
[web] Ensure only one tutorial shows at once

GitOrigin-RevId: 797c677a3d45635451485d79ed1c0705819ed5ad
2026-05-01 08:07:29 +00:00
Tom Wells
ffafccdba3 Don't preselect entry type when adding a BibTeX reference (#33193)
GitOrigin-RevId: a809b277fb0db8962ea0eb0e8c22af6775b2c832
2026-05-01 08:07:24 +00:00
Andrew Rumble
30bedf3913 Merge pull request #33278 from overleaf/ar-mixpanel-autocapture
[web] mixpanel autocapture

GitOrigin-RevId: 81f6a11ae968da4c13a28e202dd3ed1113f365d4
2026-05-01 08:07:20 +00:00
Mathias Jakobsen
42f7bca37e Merge pull request #33317 from overleaf/mj-menu-bar-role
[web] Fix aria roles for nested menu bar dropdowns

GitOrigin-RevId: 1c285c2ef8ed0c589bd6b0df6112c054c8662ca4
2026-05-01 08:07:09 +00:00
Olzhas Askar
823f11426b Merge pull request #33109 from overleaf/oa-upgrade-path
[web] Upgrade path

GitOrigin-RevId: 532993e613bdc42cf92a7b10e629aa94596d854e
2026-05-01 08:07:01 +00:00
Davinder Singh
30e0e6adaf adding side menu for download option (#33307)
* adding side menu for download option

* fixing the E2E tests to adapt the new behaviour

GitOrigin-RevId: d96df4906a40006d36ac0ea525d74a1644ec4085
2026-05-01 08:06:57 +00:00
Alex Vizcaino
2ebe0bd513 fix: add unique key to GetPremium component in ReplacementsCard (#33303)
* fix: add unique key to GetPremium component in ReplacementsCard

* fix: update paywall messages for clarity in English and Spanish

GitOrigin-RevId: 3422ef2fbf049fe1c2cc20f6f8d224b4d67374ca
2026-05-01 08:06:49 +00:00
Antoine Clausse
8da6222a89 [web] Fix plans CTA plain-link and edu discount clickable area overflow (#33243)
* Update .plans-cta-plain-link styles so the clickable area doesn't overflow

* Update .plans-educational-discount-label styles so the clickable area doesn't overflow

* Fix lint

GitOrigin-RevId: cedbaa78a079fd4f7cefe2be9b39252d30ba6355
2026-05-01 08:06:45 +00:00
Antoine Clausse
dd44f4e2e8 [web] Remove stale "You already have a subscription" notification (#33187)
* Remove stale "You already have a subscription" notification after cancel/plan change

The notification was derived from a server-rendered meta tag set at page load,
so it persisted through cancel and plan-change flows. Now derived directly from
the URL param on the client; the param is stripped on cancel button click
(replaceState) and before plan-change reloads (location.replace via
reloadWithoutHasSubscription helper).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix format

* Update services/web/test/frontend/features/subscription/components/dashboard/subscription-dashboard.test.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix change-plan tests after location.reload → location.replace migration

reloadWithoutHasSubscription calls location.replace() not location.reload(),
so update assertions accordingly. Also stub toString() to return the jsdom
origin so FlashMessage's replaceState call doesn't throw a SecurityError.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Guard reloadWithoutHasSubscription against empty URL

When called after component unmount, useLocation's toString() returns '',
causing new URL('') to throw. No-op early to avoid the exception.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Guard against empty URL in history state replacement for subscription cancellation

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
GitOrigin-RevId: 8408ee971adf038e2d819eae5df060ace62a7e14
2026-05-01 08:06:41 +00:00
Antoine Clausse
353c681d51 [web] Disable AI Assist add-on purchase for plans-2026-phase-1 users (#33178)
Users in the plans-2026-phase-1=enabled split test can no longer
purchase the AI Assist add-on via crafted HTTP requests. The preview
and purchase endpoints return 404/redirect for these users.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
GitOrigin-RevId: 2c75eb622cf44dc91019a692290ac646b51fd72c
2026-05-01 08:06:37 +00:00
Alf Eaton
e3f88791da Revert "Add Vertex as an AI provider (#32450)" (#33309)
This reverts commit 20d895350ee13a7683f178bc83b87f0e765c7af6.

GitOrigin-RevId: 6be06b0fee0b038c42db45fce2377efd5d5a47dc
2026-05-01 08:06:32 +00:00
Alf Eaton
f00dab5cc0 Add Vertex as an AI provider (#32450)
GitOrigin-RevId: 20d895350ee13a7683f178bc83b87f0e765c7af6
2026-05-01 08:06:25 +00:00
Alf Eaton
94018faafc Ensure tsconfig.json in all modules/*/app/src folders (#33060)
GitOrigin-RevId: 998d9c32bd11d77ee371e8bfd96fa201cf6950b2
2026-05-01 08:06:17 +00:00
Alf Eaton
664cc65ab0 Use CSF Next (#32998)
GitOrigin-RevId: 498e15e3ae44f0a7b85e889e199d71607c420e12
2026-05-01 08:06:13 +00:00
Brian Gough
c19c25d113 Merge pull request #32874 from overleaf/bg-promisify-archive-manager
Promisify ArchiveManager

GitOrigin-RevId: 7a3ee3dfb2f07dc06ee894cfce0a9196622c878e
2026-05-01 08:06:05 +00:00
Brian Gough
8a8679eb78 Merge pull request #33297 from overleaf/bg-fix-acceptance-tests-in-dev-env
fix: update migration commands to use yarn instead of east
GitOrigin-RevId: 9cfcc393cfc1855e1edba6ba90ebb7b3a76ecb6b
2026-05-01 08:06:01 +00:00
Brian Gough
7f7556cf6a Merge pull request #33219 from overleaf/bg-fix-collapsible-panel-flicker
Fix flicker when switching between editor and PDF views

GitOrigin-RevId: 1f6543c0046dc458fa174aa9b54985934a7437fa
2026-05-01 08:05:56 +00:00
Brian Gough
eec3be362b Merge pull request #33172 from overleaf/bg-fix-project-upload-unlinks
fix: use fsPromises ins ProjectUploadController async functions for consistency
GitOrigin-RevId: beb858d9b6cf50431fb14626dfd7cddfaf093882
2026-05-01 08:05:52 +00:00
roo hutton
970bc85b78 Merge pull request #33247 from overleaf/rh-cio-fix-ai-group-enabled
Base group ai enabled cio attribute on group policy

GitOrigin-RevId: 2b2411aec3ffc694d2570e6031e9a876a1575e2c
2026-05-01 08:05:44 +00:00
Mathias Jakobsen
a478c1a829 [web+project-history] Add lastResyncedAt field to projects and set after resync (#33240)
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: f679a190b88694a46f7816d51eff96446f338dec
2026-04-30 08:06:43 +00:00
Jakob Ackermann
50abfe8f0c [migrations] add migration for back filling db.users.analyticsId (#33115)
* [migrations] add migration for back filling db.users.analyticsId

Co-authored-by: Davinder Singh <davinder.singh@overleaf.com>

* [web] add acceptance test for backfilling db.users.analyticsId

---------

Co-authored-by: Davinder Singh <davinder.singh@overleaf.com>
GitOrigin-RevId: a0840969ac0c4c84e874c6f00cf0a78857a4bb06
2026-04-30 08:06:38 +00:00
Jakob Ackermann
4e138e6f99 [web] make labs releases available to E2E tests/Codespaces (#33242)
GitOrigin-RevId: a4e6a6bd6ffb7f3e9331aa81daf19e22b894d771
2026-04-30 08:06:34 +00:00
Jimmy Domagala-Tang
41b96ec8d6 feat: ai quotas should reset when a new plan purchase is made or upgraded (#33095)
GitOrigin-RevId: 9034800e067426fc22f8f86f9d7309699797d02e
2026-04-30 08:06:30 +00:00
Jimmy Domagala-Tang
730ff8f0ea feat: add a utilitty script for setting a users AI usage, useful for testing in staging (#33216)
GitOrigin-RevId: 71d4948235ccf37971142a4ed917cff2ef50cea9
2026-04-30 08:06:26 +00:00
Jimmy Domagala-Tang
994932b8e3 [Web + Doc-Updater] Add track changes accepted notification (#32752)
* feat: update doc manager to return a list of contributors to the accepted change

* feat: add new notification type for accepting a tracked change

* update email with tracked changes accepted

* feat: update tests

* fix: feedback on consistent api and returns

* feat: adding new tests

* feat: self accepted changes shouldnt trigger notification, and using existing changesAccepted hook

* Add better subject and activity list for track change accepted (#33094)

* feat: add better activity list entry and subject header for accepted changes, to match other notifications

* feat: updating tests

* feat: updating accepting_user_id to just user_id

* fix: adding users in emailBuilder test to userCache

GitOrigin-RevId: 6114f77916b5f503b7bbbb5ca8fed99e58edc31b
2026-04-30 08:06:19 +00:00
Olzhas Askar
fe59b9cdb5 Merge pull request #33245 from overleaf/oa-faq
[web] 2026 FAQ fixes

GitOrigin-RevId: e70a6080341ea63d3668794f50baf7538f09f55b
2026-04-30 08:06:02 +00:00
jmescuderowritefull
35dc3ab790 Enhance AI usage messaging (#33105)
GitOrigin-RevId: 0bd325d806d945366abb6e7d8cc3cd177cb66ef2
2026-04-30 08:05:57 +00:00
Kate Crichton
20f08ab8c1 Merge pull request #32855 from overleaf/kc-move-token-rendering
[web] move domain verification token rendering to collapsible section

GitOrigin-RevId: c34b0f66f56c4e9942a53c2a2383d7a8cbdfdf7c
2026-04-30 08:05:48 +00:00
Kate Crichton
e7cfcbdc66 Merge pull request #32503 from overleaf/kc-domain-verification-error-messages
[web] domain verification error messages

GitOrigin-RevId: a5a04934a8675741c4dc6a4779c2c90cbf54c04d
2026-04-30 08:05:37 +00:00
Domagoj Kriskovic
117a783f21 [web] Add .py to defaultTextExtensions
GitOrigin-RevId: 0880c01f6e3b4267f6cb790a44c6094738ab2229
2026-04-30 08:05:30 +00:00