Commit Graph

2620 Commits

Author SHA1 Message Date
Jakob Ackermann dfed87723f [web] remove deledFiles collection (#25750)
* [history-v1] remove processing of deleted files when back-filling hashes

* [web] remove deledFiles collection

GitOrigin-RevId: 7c080e564f7d7acb33ebe7ebe012f415a847d0df
2025-05-23 08:05:01 +00:00
Eric Mc Sween 17c2f9c922 Merge pull request #25492 from overleaf/em-paginate-changes-1
Paginate history changes endpoint

GitOrigin-RevId: 2b48044d64244404efcd2e090b682c1f571a5567
2025-05-22 08:08:09 +00:00
Jimmy Domagala-Tang c2a36353d9 Merge pull request #25821 from overleaf/jdt-handle-no-prem-src
Handle cases where Writefull is not defined on a user on the subscription page

GitOrigin-RevId: ef43da630b5194f6021ebfc52ca4cb473e674b23
2025-05-22 08:08:05 +00:00
Jimmy Domagala-Tang abcc493a75 Merge pull request #25505 from overleaf/jdt-redirect-to-wf-based-on-prem-src
Manage on Writefull should provide the right instructions based on premiumSource

GitOrigin-RevId: bc6dcc5962d18220c445315acbb3b4040ff23d5d
2025-05-22 08:08:01 +00:00
Antoine Clausse aab598e044 [web] De-capitalize english translations (#24123)
* Create decapitalize.sh script

* Remove `text-capitalize` classes, rely on translations instead

* `Account Linking` -> `Account linking`

* `Account Settings` -> `Account settings`

* `Add Affiliation` -> `Add affiliation`

* `Add Email` -> `Add email`

* `Add Files` -> `Add files`

* `Add to Dictionary` -> `Add to dictionary`

* `All Projects` -> `All projects`

* `All Templates` -> `All templates`

* `Archive Projects` -> `Archive projects`

* `Archived Projects` -> `Archived projects`

* `Auto Compile` -> `Auto compile`

* `Back to Subscription` -> `Back to subscription`

* `Blank Project` -> `Blank project`

* `Change Password` -> `Change password`

* `Change Project Owner` -> `Change project owner`

* `Clear Sessions` -> `Clear sessions`

* `Company Name` -> `Company name`

* `Compile Error Handling` -> `Compile error handling`

* `Compile Mode` -> `Compile mode`

* `Compromised Password` -> `Compromised password`

* `Confirm Affiliation` -> `Confirm affiliation`

* `Confirm Email` -> `Confirm email`

* `Connected Users` -> `Connected users`

* `Contact Sales` -> `Contact sales`

* `Contact Support` -> `Contact support`

* `Contact Us` -> `Contact us`

* `Copy Project` -> `Copy project`

* `Delete Account` -> `Delete account`

* `Emails and Affiliations` -> `Emails and affiliations`

* `Git Integration` -> `Git integration`

* `Group Settings` -> `Group settings`

* `Link Accounts` -> `Link accounts`

* `Make Primary` -> `Make primary`

* `Mendeley Integration` -> `Mendeley integration`

* `Papers Integration` -> `Papers integration`

* `Project Synchronisation` -> `Project synchronisation`

* `Sessions Cleared` -> `Sessions cleared`

* `Stop Compilation` -> `Stop compilation`

* `Update Account Info` -> `Update account info`

* `the Sales team` -> `the sales team`

* `your Group settings` -> `your group settings`

* `Zotero Integration` -> `Zotero integration`

* Update decapitalize.sh

* Decapitalize some translations

* `Example Project` -> `Example project`

* `New Project` -> `New project`

* `New Tag` -> `New tag`

* `Trashed Projects` -> `Trashed projects`

* `Upload Project` -> `Upload project`

* `Your Projects` -> `Your projects`

* Revert "Create decapitalize.sh script"

This reverts commit 8c79f367096c206c704c7c01e3572a18f3961d5e.

* Revert changes to stories

* Fix tests

* `Contact us of` -> `Contact us if`

* Make `Contact us` bold in tex files

* `sales team` -> `Sales team`

* `Link accounts and Add email` -> `Link accounts and add email`

* `Make Private` -> `Make private`

* `contact support` -> `contact Support`

* Make `Make primary` tests case sensitive

* Use `add_email` translation string

* Revert changes to non-english locales

* Remove redundant `Account settings` translation

* `New project Name` -> `New project name`

GitOrigin-RevId: 675c46f96ddbf3d259a8d723fed62aa4a7ed40b7
2025-05-22 08:07:46 +00:00
Kristina bd1a25dbae Merge pull request #25732 from overleaf/kh-stripe-preview-addon-purchase
[web] add support for previewing add-on changes for Stripe

GitOrigin-RevId: 46e7d0b96bf0935a4a3afcaf03d7a6f3c26d2108
2025-05-22 08:07:20 +00:00
Alf Eaton 37d2c3864a Add review mode tutorial popover (#25709)
GitOrigin-RevId: bf2a365b21da780786f2736efb0770cea5f5b656
2025-05-22 08:07:03 +00:00
Eric Mc Sween 57681c10c8 Merge pull request #25646 from overleaf/em-ds-mobile-app-compile
Compile endpoint for the DS mobile app

GitOrigin-RevId: 2fd9f4a6e8c2ed4ee868b0c1293f6760b9d113c8
2025-05-21 08:06:36 +00:00
Jakob Ackermann c9000977f4 [web] start fetching load global blobs on module import (#25757)
GitOrigin-RevId: 7c1b6ed717142ad07d6ba5464aab2ecc6ebe9736
2025-05-21 08:05:59 +00:00
Brian Gough c260e692b0 Merge pull request #25743 from overleaf/bg-deactivate-projects-script
add deactivate projects script

GitOrigin-RevId: 5acf4b980d8980457930ee488571362da2a8014c
2025-05-21 08:05:25 +00:00
Domagoj Kriskovic 220b19a5aa Update AI Assist wording on checkout page if not in rollout (#25689) (#25733)
* Update AI Assist wording on checkout page if not in rollout

* update wording when buyin addon

GitOrigin-RevId: 7133b4fd3efac8e8a7361dcc15d54367f809f16d
2025-05-20 08:05:36 +00:00
Kristina 4a95d91b32 [web] add support for previewing base plan changes for Stripe (#25619)
GitOrigin-RevId: 458eeac52bc5fc010b9749f6fcd48350aa792582
2025-05-20 08:05:31 +00:00
Domagoj Kriskovic 1e78d83443 Revert "Update AI Assist wording on checkout page if not in rollout (#25689)" (#25726)
This reverts commit 20a90b14e97b1a8837e8be697c1a9666ed15a1c3.

GitOrigin-RevId: 26d4ad8f1b3a7dbe884dfbe4f4be5ee632abed1e
2025-05-19 12:26:35 +00:00
Domagoj Kriskovic 1ebc5d37e2 Update AI Assist wording on checkout page if not in rollout (#25689)
* Update AI Assist wording on checkout page if not in rollout

* update wording when buyin addon

GitOrigin-RevId: 20a90b14e97b1a8837e8be697c1a9666ed15a1c3
2025-05-19 12:26:26 +00:00
Jakob Ackermann feebb77556 [web] fetch project members in a single db query (#25662)
* [web] fetch project members in a single db query

GitOrigin-RevId: ca749327d4783c67a3ad81f611cd7d3e7fa84028
2025-05-19 08:05:12 +00:00
Jakob Ackermann 7bfa5d312a [web] deletedDocs are not needed for joinProject anymore (#25654)
* [web] deletedDocs are not needed for joinProject anymore

* [web] cleanup unit tests

GitOrigin-RevId: 91c9bc60ec776757b3031cbc85c67ae1bf4adf4d
2025-05-19 08:05:08 +00:00
Jakob Ackermann 4d4c02f885 [web] fetch users subscriptions once from project dashboard (#25652)
* [web] fetch users subscriptions once from project dashboard

* [web] fix types

GitOrigin-RevId: 18de18f8d4237d97087ef92eaa5052f253a92813
2025-05-19 08:05:04 +00:00
Jakob Ackermann 8a49e01055 [web] wait for prefetching of projects listing (#25650)
GitOrigin-RevId: 59fb0c74b8cf6a496e256960f7f2e83ace2c5ee0
2025-05-19 08:04:59 +00:00
M Fahru a33b164096 Merge pull request #25404 from overleaf/mf-send-subscription-analytics-events
[web] Send analytics events and user properties when user start subscription using Stripe

GitOrigin-RevId: 9028397a5cb256df506e14beb1705191c9ae3f7f
2025-05-16 08:06:57 +00:00
Antoine Clausse bb1ca7dc57 Remove returns in functions with callback in CooldownManager (fix DeprecationWarning) (#25665)
GitOrigin-RevId: 3652ee78d533cb00ce5ec4de1a66a959ab418def
2025-05-16 08:06:33 +00:00
David 551298852f Merge pull request #25605 from overleaf/dp-track-changes-redirect
Redirect old track changes marketing page to track changes learn wiki page

GitOrigin-RevId: 890e7f746b71b8e5108e8209d55903f68adde1ea
2025-05-16 08:05:52 +00:00
Jakob Ackermann 608125f732 [web] use the common split-test for clsi-cache when cloning (#25644)
GitOrigin-RevId: 30377d69a9e1be11261eb6076f8996e71090fb9e
2025-05-16 08:05:07 +00:00
Jakob Ackermann 291dd2fa85 [clsi-cache] remove non sharded instances (#25645)
* Revert "[clsi-cache] only use sharding from updated project editor tabs (#25326)"

This reverts commit 1754276bed3186c0536055c983e32476cc90d416.

* [clsi-cache] remove non sharded instances

GitOrigin-RevId: aa3ac46140dfc1722a3350cf7071e5b11af61199
2025-05-16 08:05:02 +00:00
Jakob Ackermann fe58e65ba4 [clsi-cache] fix path traversal (#25585)
* [clsi-cache] fix path traversal

* [clsi-cache] double down on path traversal validation

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

---------

Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: 28a6a2024aae81e9b361db7918dc0c5381cd8246
2025-05-14 08:06:54 +00:00
Jakob Ackermann ed16bd4410 [clsi-cache] base64 encode X-All-Files header if needed (#25579)
* [clsi-cache] base64 encode X-All-Files header if needed

* [clsi-cache] add explicit error check

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

---------

Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: bd3b6381b68398aac4a07e48cd69e6aa97e94f18
2025-05-14 08:06:49 +00:00
Alf Eaton 3ade5e27ac Remove the full-project-search split test (#25444)
GitOrigin-RevId: b36c1c81152694547dcf044cfb2cb0f511bfdc22
2025-05-14 08:06:31 +00:00
Jimmy Domagala-Tang 9aa325ff2d Merge pull request #25151 from overleaf/dk-use-user-features
UserFeaturesContext with cross-tab syncing via BroadcastChannel

GitOrigin-RevId: 4262719f5018f5717211851ce28b3255af65461a
2025-05-13 08:07:57 +00:00
Jimmy Domagala-Tang 29296dfba5 Merge pull request #25493 from overleaf/jdt-ai-assist-entitlement-fix
Access addOnCode correctly when determining bundle entitlement

GitOrigin-RevId: c3aee15b3ef6fc1d32f24283ec848e600f0777f1
2025-05-13 08:06:59 +00:00
Jimmy Domagala-Tang c54c814553 Merge pull request #25405 from overleaf/jdt-wf-rebrand-popover
Writefull Rebranded Features Editor Promotion

GitOrigin-RevId: 49beddbfa44bacf1546543e172dc8edcdb3784bc
2025-05-13 08:06:50 +00:00
Domagoj Kriskovic a47d0309b8 Fix monthly price if billed annually for AI Assist (#25297)
* Fix monthly price if billed annually for AI Assist

* update script

* show annual price

* fix formatting

GitOrigin-RevId: e50493fa2176e6c8acb476a01a393eb940a3f1a2
2025-05-13 08:06:39 +00:00
Kristina a99f16ed15 [web] prevent downgrade to personal upsell for stripe subscriptions (#25392)
GitOrigin-RevId: a954f42e1159e4bcc8fd06f5f6df9a53c67f9f90
2025-05-13 08:06:05 +00:00
Liangjun Song da241e0041 Merge pull request #25329 from overleaf/ls-enable-stripe-checkout-for-group-plan
Enable stripe checkout for group subscriptions

GitOrigin-RevId: 10a579ebca789773bd2c94f8240b7b979b6e8eb0
2025-05-13 08:05:32 +00:00
Eric Mc Sween 5d8fdd0e28 Merge pull request #25302 from overleaf/em-pkce-support-enforcement
Enforce pkceEnabled flag in OAuth configuration

GitOrigin-RevId: 8e941179017712050570f13522ec42814aa58c06
2025-05-12 08:06:11 +00:00
Jakob Ackermann 6244616fc1 [web] avoid trying to fetch synctex.gz from clsi-cache in free projects (#25445)
* [web] avoid trying to fetch synctex.gz from clsi-cache in free projects

* [clsi] parse boolean query parameter

GitOrigin-RevId: 99c98aac8147a626b704e9a888b7fc660cc5ab17
2025-05-12 08:05:24 +00:00
M Fahru 031bd4a1c4 Merge pull request #25372 from overleaf/kh-support-canceling-pending-stripe-change
[web] cancel pending Stripe subscription change

GitOrigin-RevId: c1d21a7d1c3962c20d589b1dd10f6c2a4c8e4be4
2025-05-09 08:06:22 +00:00
Jakob Ackermann 28bb8ed2ab [web] retry fetching initial compile from cache response (#25436)
* [web] move building of compile from cache response into manager

* [web] retry fetching initial compile from cache response

GitOrigin-RevId: b4dc89f1b91d99e869c0c7789881dc72d8a5761f
2025-05-09 08:05:55 +00:00
ilkin-overleaf 727e88b18b Merge pull request #25318 from overleaf/ii-flexible-licensing-manually-collected-3
[web] Add seats feature for manually collected subscriptions improvements

GitOrigin-RevId: 4fbd93097590d97ad6464d1988471a78bf7cb9e2
2025-05-09 08:05:07 +00:00
M Fahru 38e06c527c Merge pull request #25296 from overleaf/kh-support-upgrading-stripe-subscription
[web] support upgrading Stripe subscription

GitOrigin-RevId: 2663ca8f1c028a45cf47d3ab37c387c4f4b39f9a
2025-05-08 08:06:47 +00:00
M Fahru e5e4159392 Merge pull request #25289 from overleaf/kh-rm-dead-coupon-code
[web] rm unused couponCode parameter

GitOrigin-RevId: c8c262322d74214e43870e67758aaa98aaa60c79
2025-05-08 08:06:42 +00:00
Jakob Ackermann e94369cb72 [web] settle on a single split-test for the clsi-cache rollout (#25399)
* [web] settle on a single split-test for the clsi-cache rollout

Use the split-test that was used for rolling out the writes so that we
can use their already populated caches.

* [clsi-cache] fix non-sharded clsi-cache in dev-env

GitOrigin-RevId: 6ebd6369183342fe6d5e325b760d011fd1d57516
2025-05-08 08:06:37 +00:00
Jessica Lawshe 141ca35e1f Merge pull request #25353 from overleaf/revert-25351-revert-24919-jel-create-group-audit-log
Revert "Revert "[web] Add group audit log""

GitOrigin-RevId: 4d61cfd9e8a7dac1f5837a4028aff95fa19c308a
2025-05-08 08:06:32 +00:00
Jimmy Domagala-Tang f36eb35dbe Merge pull request #25090 from overleaf/jdt-align-wf-rebrand-split-test
Align Writefull bundle changes to same split test

GitOrigin-RevId: 28eb7c0835a38d4989461d941efc3e8c0cdcfecb
2025-05-08 08:06:04 +00:00
Jakob Ackermann e54d3c3e19 [history-ot] initial implementation of using doc-level history-ot (#25054)
* [history-v1-ot] initial implementation of using doc-level history-v1-ot

* [web] fix advancing of the otMigrationStage

Use 'nextStage' for the user provided, desired stage when advancing.

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [document-updater] document size check in editor-core

* [history-ot] rename history-v1-ot to history-ot and add types

* [history-ot] apply review feedback

- remove extra !!
- merge variable assignment when processing diff-match-match output
- add helper function for getting docstore lines view of StringFileData

Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>

* Revert "[document-updater] add safe rollback point for history-ot (#25283)"

This reverts commit d7230dd14a379a27d2c6ab03a006463a18979d06

Signed-off-by: Jakob Ackermann <jakob.ackermann@overleaf.com>

---------

Signed-off-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
GitOrigin-RevId: 89c497782adb0427635d50d02263d6f535b12481
2025-05-08 08:05:44 +00:00
Jakob Ackermann 554abf983f [web] use raw compile timeout in compile-result-backend event (#25141)
The alias was broken following the 60s -> 20s compile timeout change.

GitOrigin-RevId: c2172090e17be60490adaae245a1f0b045e93cf1
2025-05-08 08:05:14 +00:00
Antoine Clausse f8f1a68738 [web] Improve FileTooLargeError handling in FileWriter.js (#25278)
* Improve FileTooLargeError handling in FileWriter.js

* handle errors on passThrough stream
* unlink files on error
* fail `writeUrlToDisk` if content-length header is too large

With Node 22, the test `Open In Overleaf - when POSTing a snip_uri for a file that is too large` fails.

I initially tried replacing it with a check of the `content-length` header. But then I managed to make the old test pass by adding a handler (`passThrough.on('error', ...)`)

* Unlink files asynchronously, add stream destroys on error

* Remove eslint disables

* Remove `stream.on('error', ...)` and `passThrough.on('error', ...)`

* Revert `Content-Length` check

* Re-add `stream.on('error', errorHandler)`; Remove it on 'response'

* Only report unlink errors there is an error(!!) that's not ENOENT

GitOrigin-RevId: fefe49519ec6f54df5eef69a2c2a75518f9d3748
2025-05-07 08:08:06 +00:00
Jessica Lawshe c125c9d17b Merge pull request #25351 from overleaf/revert-24919-jel-create-group-audit-log
Revert "[web] Add group audit log"

GitOrigin-RevId: cf192bbe3ebdb693f18bab9c1c5d08da18ed34c0
2025-05-07 08:07:34 +00:00
Jessica Lawshe dd74ba1613 Merge pull request #24919 from overleaf/jel-create-group-audit-log
[web] Add group audit log

GitOrigin-RevId: b59c38c57f555f18cdfa5dd697ad38d78b590996
2025-05-07 08:07:12 +00:00
Antoine Clausse d389cca007 [web] Promisify ClsiCookieManager and CompileController (reapply again) (#25280)
* Reapply "[web] Promisify ClsiCookieManager and CompileController (reapply and fix)"

This reverts commit 98cb9127ff2b7c7c347c560766f749265d712490.

* Fix: Use query parameters correctly (!!)

* Add unit test on `checkIsLoadSheddingEvent`

* Remove interference between tests: rename to `ClsiCookieManager2` when it's re-sandboxed

* Add test: 'should report "cycle" when other is UP'

GitOrigin-RevId: 3146b149954b908830226cb03b51d9adfa08ec2e
2025-05-07 08:07:07 +00:00
Antoine Clausse 5b47fffcee [web] Add startup metrics (#25277)
* [web] refactor startup sequence

The primary objective here is to call loadGlobalBlobs() only once.
But to get there, we need to reorder things and add extra try/catch
sections to ensure we are not letting the global uncaughtException
handler catch startup errors.

Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>

* [web] add metrics for startup steps

Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>

---------

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: c73edea02516e919d55b896588dcd1862835fedf
2025-05-07 08:06:52 +00:00
Jakob Ackermann 2c67a76115 [clsi-cache] only use sharding from updated project editor tabs (#25326)
GitOrigin-RevId: 1754276bed3186c0536055c983e32476cc90d416
2025-05-07 08:06:39 +00:00