Commit graph

25466 commits

Author SHA1 Message Date
Jakob Ackermann
3242376d19 [server-ce] add notice for CE users on disabling sandboxed compiles (#25425)
Co-authored-by: Mathew Evans <matt.evans@overleaf.com>
GitOrigin-RevId: 977625975af6ac68a33356dc4c39af98791e8708
2025-05-09 08:05:34 +00:00
David
2ea03af559 Merge pull request #25411 from overleaf/dp-clone-project-translation
Add missing translation for clone project modal name placeholder

GitOrigin-RevId: 7ee99d811f31eaa0441d2e9b9f579f29ff1cb368
2025-05-09 08:05:29 +00:00
Mathias Jakobsen
1b5d31941e Merge pull request #25383 from overleaf/mj-ide-long-title
[web] Editor redesign: Allow project name to shrink

GitOrigin-RevId: 4d25291437fae9672f0d0d4d20bde269f771020a
2025-05-09 08:05:25 +00:00
Mathias Jakobsen
9cb2b48c1e Merge pull request #25373 from overleaf/mj-reorder-tpr
[web] Reorder third party reference managers

GitOrigin-RevId: 283d50674fdcc60b7a32e4e7846c6638c591937a
2025-05-09 08:05:20 +00:00
Brian Gough
6eada92966 Merge pull request #25406 from overleaf/em-content-hash-validation-resync
Resync project when content hash validation fails

GitOrigin-RevId: ea9b5a78f89c55276fd67835bc262717bc778e92
2025-05-09 08:05:12 +00:00
ilkin-overleaf
2ccdb74d20 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
CloudBuild
d39d92cce8 auto update translation
GitOrigin-RevId: b57698529938bdf3227696cf8fbfde7f763a43d5
2025-05-08 08:06:55 +00:00
M Fahru
0335367c75 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
fa553128a4 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
b3a1341545 [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
4b5f31ac95 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
Brian Gough
ad94c29659 Merge pull request #25391 from overleaf/em-queue-changes-verification-rollout-stage-2
queue changes verification rollout stage 2

GitOrigin-RevId: c79a5a252c6fc8caf6fd164a31e6e360b6fc3e73
2025-05-08 08:06:27 +00:00
Brian Gough
ec91c120b1 Merge pull request #25284 from overleaf/em-queue-changes-verification
Exercise the Redis buffer when persisting changes

GitOrigin-RevId: a649b9808b6472e7c5dd9c8bfa6e3c98fb6ef4d4
2025-05-08 08:06:22 +00:00
Jimmy Domagala-Tang
9f0f910a83 Merge pull request #25251 from overleaf/jdt-show-wf-provided-bundle-on-free-plans
Show AI Assist entitlment via Writefull on free user's subscriptions page

GitOrigin-RevId: 20a456a231f60df279b949057972125735166904
2025-05-08 08:06:14 +00:00
Jimmy Domagala-Tang
fbbba7a3df Merge pull request #24816 from overleaf/jdt-update-checkout-for-bundle
Update checkout pages for AI Assist bundle content

GitOrigin-RevId: e2e1b705dd92e0858835d18eb6d8c5750030e550
2025-05-08 08:06:09 +00:00
Jimmy Domagala-Tang
6973ba4244 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
e8b5ee2ff9 [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
David
4d93187e58 Merge pull request #25354 from overleaf/dp-editor-redesign-modal
Update editor switcher modal contents

GitOrigin-RevId: 98772328004303c43ff3f9f0edbf8b0725041c60
2025-05-08 08:05:32 +00:00
David
efb66b4d2f Merge pull request #25327 from overleaf/dp-word-count
Add word count to file menu in new editor

GitOrigin-RevId: a5cb4d6cd37c46775056f696c0f19fcabd3f4131
2025-05-08 08:05:27 +00:00
Jakob Ackermann
e4156e19b8 [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
Brian Gough
f9b36cd5be Merge pull request #25241 from overleaf/bg-remove-existing-chunk-buffer
remove existing chunk redis backend and chunk buffer

GitOrigin-RevId: 28fb02d1802312de6892e2fb7dd59191e3fc8914
2025-05-08 08:05:09 +00:00
Jakob Ackermann
5cc0895c56 [clsi] enable keepAlive on global HTTP agents (#25350)
GitOrigin-RevId: c9478b405ac32ca55aeb3bcf9f24052477464667
2025-05-07 08:08:10 +00:00
Antoine Clausse
07b37abcb3 [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
Antoine Clausse
e7329b9660 [web] Remove script remove_emails_with_commas.mjs (#25356)
It ran in prod and updated 112 users

GitOrigin-RevId: 730f6544e7a5bb4d08095b48fb697b5c8e7a08be
2025-05-07 08:08:01 +00:00
Antoine Clausse
eddeca2942 [history-v1] Update config from 1.31.0 to 3.3.12 (#25077)
This removes some DeprecationWarnings in history-v1

The update should be safe:
```
  3.0.0 / 2018-11-20
  Ensure config array items and objects are sealed @fgheorghe
  This required a major version bump in case someone
  relied on the ability to mutate non-sealed data.

  2.0.0 / 2018-07-26
  Potential for backward incompatibility requiring a major version bump.

  Safe to upgrade to major version 2 if you're using a recent NodeJS version and you're not trying to mutate config arrays.

  Added array immutability - jacobemerick
  Removed Node V.4 support
```

https://github.com/node-config/node-config/blob/master/History.md

GitOrigin-RevId: 8384247d1ad2cd659703b4ba50edf7212076dcf3
2025-05-07 08:07:56 +00:00
M Fahru
661aa20c09 Merge pull request #25288 from overleaf/mf-stripe-webhook-subscription-updated
[web] Handle `customer.subscription.updated` stripe webhook event type

GitOrigin-RevId: 821baee5d5a45b92ee7bce47598a5e3ea5aa95ea
2025-05-07 08:07:44 +00:00
M Fahru
6c3cc794a4 Merge pull request #25161 from overleaf/mf-stripe-webhook
[web] Implement stripe webhook for `customer.subscription.created` event type

GitOrigin-RevId: f32e7607ddf900211efbe487bcd1f09172100178
2025-05-07 08:07:39 +00:00
Jessica Lawshe
12939b91b3 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
Tim Down
f72a34f25b Merge pull request #25348 from overleaf/td-react-18-flaky-tests
Attempt to fix two flaky frontend project dashboard tests

GitOrigin-RevId: 1d5c3a05f7439ad3e22e5de96da8628ad8dd27c5
2025-05-07 08:07:29 +00:00
Jimmy Domagala-Tang
c060358cd8 Merge pull request #25223 from overleaf/jdt-dk-commons-toggle-annual-discount-bundle
Allow for commons to toggle annual for the AI Assist bundle

GitOrigin-RevId: 719dbb4944e3a447e03aa5c3fee7d0f5a0ce005b
2025-05-07 08:07:25 +00:00
Jimmy Domagala-Tang
f29bd47911 Merge pull request #25252 from overleaf/jdt-add-addon-to-cancellation-mssg-in-subs
Show Assist Add-on for pending and cancelled subscriptions

GitOrigin-RevId: df733d7078c231a5de989bc070b37e3c250fdb37
2025-05-07 08:07:20 +00:00
Jessica Lawshe
59275eeb84 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
bc4c3c4ef8 [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
e3dd47ba6e [web] Fix date format in emails.createdAt, use new Date() instead of Date.now() (#25322)
GitOrigin-RevId: c94700accb1df902926779c1e6321be63cf65235
2025-05-07 08:07:02 +00:00
Antoine Clausse
81941ff335 Update some dependencies so they're compatible with Node 22 (#25317)
* `"@google-cloud/profiler": "^6.0.3"`

* `bin/npm update pprof`

* `bin/npm update nan`

* `bin/npm update @google-cloud/profiler`

* Ignore false positive of `@typescript-eslint/return-await`

> Returning an awaited value that is not a promise is not allowed
Though the function was promisified

GitOrigin-RevId: 24dbe3e8df2b55c0b9583ac79a61e0956ac3fac0
2025-05-07 08:06:57 +00:00
Antoine Clausse
9a2847dbee [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
Antoine Clausse
f0856c862f [web] Migrate two-factor-authentication module to BS5 (#25181)
* Delete unused file error.pug

* Revert-me: Enable 2FA locally

* Migrate 2FA pages to BS5

* Add BS5 notification classes to hydrate-form.js

* Revert "Revert-me: Enable 2FA locally"

This reverts commit 2874bedb05e579623e5beb6cf518aa8608808802.

* Fix: Re-add .text-capitalize on button

* Use `notification` mixin for success state

* Append complex notifications with icons in `showMessages`

* Keep the BS3 version of the notification in `showMessages`, move the BS5 implementation to `createNotificationFromMessageBS5`

Check the Boostrap version with `!window?.Frontend?.['bootstrap-3']`, which is a bit hacky

* Update breakpoings in 2FA form to leave more room for error notification

* Address PR comments:

* Remove useless `createTextNode`
* Use `isBootstrap5`
* `Setup` -> `Set Up`

GitOrigin-RevId: d7285853ea1191da7711b7bada8d65ff064bc27d
2025-05-07 08:06:48 +00:00
Jakob Ackermann
6881ba956a [clsi-cache] only use sharding from updated project editor tabs (#25326)
GitOrigin-RevId: 1754276bed3186c0536055c983e32476cc90d416
2025-05-07 08:06:39 +00:00
Alf Eaton
bfe42734bc Merge pull request #25261 from overleaf/ae-textlayer-layer
Move `will-change: transform` to textLayer

GitOrigin-RevId: 15fdd919da54ed95e115d664156066e6fda36982
2025-05-07 08:06:31 +00:00
Alf Eaton
c3368167d0 Remove z-index from outline elements (#25265)
GitOrigin-RevId: 39b85a478b71bf42ebb6b886b6ae1b4ed6557570
2025-05-07 08:06:26 +00:00
Jakob Ackermann
5ce1685b5b [clsi-cache] shard each zone into three instances (#25301)
* [clsi-cache] shard per zone into three instances

Keep the old instance as read fallback. We can remove it in 4 days.

Disk size: 2Ti gives us the maximum write throughput of 240MiB/s on a
N2D instance with fewer than 8 vCPUs.

* [clsi] fix format

* [k8s] clsi-cache: bring back storage-classes

* [k8s] clsi-cache: fix reference to zonal storage-classes

* [k8s] clsi-cache: add logging configs

* [clsi] improve sharding

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

* [clsi] fix sharding

Index needs to be positive.

* [clsi] fix sharding

The random part is static per machine/process.

* [clsi] restrict clsi-cache to user projects

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

* [k8s] clsi-cache: align CLSI_CACHE_NGINX_HOST with service LB

---------

Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: 1efb1b3245c8194c305420b25e774ea735251fb3
2025-05-07 08:06:16 +00:00
Tim Down
aa97dbdbb6 Merge pull request #25269 from overleaf/td-flaky-tags-test
Add waits for flaky tag list test

GitOrigin-RevId: 9d0bf2acd54d07e96fe6837296176e62bf981947
2025-05-07 08:05:59 +00:00
David
42eb4b2779 Merge pull request #25320 from overleaf/dp-review-panel-shortcut
Fix open review panel shortcut in new editor

GitOrigin-RevId: 3e4b65ad1f1943574ba937460722912ff382bc39
2025-05-07 08:05:51 +00:00
David
0261d701a7 Merge pull request #25238 from overleaf/dp-tooltips
Add tooltip to new editor home button

GitOrigin-RevId: 91f47659caf64a7ee31ed156d4ee2d5c933e05b8
2025-05-07 08:05:46 +00:00
David
08c5b11689 Merge pull request #25248 from overleaf/dp-history-text-color
Add explicit color for history text

GitOrigin-RevId: 4b595ea824d75181c041d44fc48ea81fec864316
2025-05-07 08:05:41 +00:00
David
1cd8eba098 Merge pull request #25249 from overleaf/dp-chat-message-read
Mark messages as read when opening chat tab

GitOrigin-RevId: d0e3290cad72716cbbdf5b6cc92f6c1d387a92c7
2025-05-07 08:05:36 +00:00
Jakob Ackermann
07b2255426 [misc] cleanup .dockerignore and .gitignore files (#25312)
- Remove settings ignore, they are inconsistent and break local prettier
- Remove .dockerignore files, only root ignore file is used
- Move .idea/.run/*.swp/coverage to root
- Remove .npmrc entries, we are no longer writing the rc file
- Remove node_modules/.DS_Store, is contained in root
- Remove cruft

GitOrigin-RevId: 3025fd5acaef343312f55149466c638e759a6e1f
2025-05-07 08:05:24 +00:00
Jimmy Domagala-Tang
d95340edbc Merge pull request #25145 from overleaf/jdt-wf-premium-src
Add premium source to Writefull entitlement sync

GitOrigin-RevId: bbebd7741efdf40a444768255b4aade857aca602
2025-05-06 08:05:32 +00:00
Jakob Ackermann
a5e2708eae [document-updater] add safe rollback point for history-ot (#25283)
GitOrigin-RevId: d7230dd14a379a27d2c6ab03a006463a18979d06
2025-05-06 08:05:28 +00:00
M Fahru
c8a410d358 Merge pull request #25155 from overleaf/mf-use-stripe-v18
[web] Upgrade stripe to v18

GitOrigin-RevId: df522f73132e99e38f1716bf33e8ff4881bd5430
2025-05-06 08:05:19 +00:00