Jimmy Domagala-Tang
8e5c207f6b
Remove Writefull.enabled ( #31476 )
...
* feat: migrate from aiErrorAssist naming for disabling AI features to aiFeatures.enabled to avoid confusion
feat: keep aiErrorAssistant as setting on user object until migration is run
* feat: migrate writefull.enabled unset to instead use promotionSet false
* feat: remove wf.enabled in favor for aiFeatures.enabled for display, and writefull.promotionSet for determining if we should autoload or autocreate
GitOrigin-RevId: 2b7a5b8a430a804f6c9804cc926cb5c057e34df5
2026-02-20 09:06:08 +00:00
roo hutton
48a5de31e1
Merge pull request #31601 from overleaf/rh-migrate-cio-calls
...
Migrate customer.io calls from pug helper to backend
GitOrigin-RevId: 3d104d0e1038c9fb662385df846ca9167b9c0609
2026-02-20 09:05:59 +00:00
jmescuderowritefull
5cca8b0b4b
Unify quota management between Overleaf and Writefull ( #31225 )
...
GitOrigin-RevId: 66b6d9a3b5bbd3c37ace0022a84a12dff353c575
2026-02-19 09:06:58 +00:00
Kate Crichton
95efb60fb5
Merge pull request #31536 from overleaf/kc-add-batch-download-audit-log
...
Add logging for batch downloads
GitOrigin-RevId: b3d03ebd20657b571be0d894bc1d2b335844d1fa
2026-02-19 09:06:40 +00:00
Jakob Ackermann
03fd89fd77
[web] validate and parse email using EmailHelper when ratelimiting ( #31622 )
...
* [web] validate and parse email using EmailHelper when ratelimiting
* [web] use a fake email for rate-limiting ldap logins in Server Pro
GitOrigin-RevId: 27ea7724319e06c4d64ac81e1155dcab558da99c
2026-02-19 09:06:18 +00:00
Jakob Ackermann
cb0266035d
[web] remove unnecessary filtering of rootFolder ( #31585 )
...
11 years ago, the db.projects collection was storing doc lines in the
file-tree/rootFolder. Any operations on the project that did not need
those lines were benefitting from excluding all those entries from the
file-tree. These days, the verbose exclusions are not useful anymore and
merely add load on mongo.
REF: 9805c6a9ff
GitOrigin-RevId: 89f544688934c1ed1ca98877ffbe8baefe66c126
2026-02-19 09:06:13 +00:00
Jimmy Domagala-Tang
97c4c550d7
Migrate user.writefull.enabled -> user.writefull.promotionSet ( #31475 )
...
* feat: migrate from aiErrorAssist naming for disabling AI features to aiFeatures.enabled to avoid confusion
feat: keep aiErrorAssistant as setting on user object until migration is run
* feat: migrate writefull.enabled unset to instead use promotionSet false
* Update tools/migrations/20260213102825_swap_writefull_enabled_for_initialized.mjs
Co-authored-by: Mathias Jakobsen <mathias.jakobsen@overleaf.com >
* feat: addind backfill of ai features as a migration as well to help with dev environment setup
---------
Co-authored-by: Mathias Jakobsen <mathias.jakobsen@overleaf.com >
GitOrigin-RevId: fd3f0fc07c91678cd7fd1e0d5237221694b3027b
2026-02-18 09:05:38 +00:00
Jimmy Domagala-Tang
793506c10f
feat: removing recurly revert logic since we are sunsetting recurly ( #31470 )
...
GitOrigin-RevId: c165c7d14ec5d57fdbe3b0962bd65222182a9f48
2026-02-17 09:05:27 +00:00
Jakob Ackermann
ddeafa1d7c
[web] fallback to clsi-cache from regular output file download ( #31555 )
...
* [web] fallback to clsi-cache from regular output file download
* [web] add comment on req.params assignment
GitOrigin-RevId: 9d0c2e0a8e12d322aa5754c732a38f19adeac716
2026-02-17 09:05:08 +00:00
Jakob Ackermann
7c70b749d4
[monorepo] remove PII and variables from error messages ( #31508 )
...
* [monorepo] remove PII and variables from error messages
Exclusions:
- scripts
- tests
- fuzzing
- SplitTestManager (messages are sent to admin frontend)
- Group setup (we may want an error per unique tuple)
- sharejs (unused types; text type errors are shadowed already)
- history-v1 error messages that are used by the ErrorRecorder
- errors that flag issues with configuration/call signatures
I've used these search terms for finding unwanted error messages:
- new Error(`
- new Error\(\n\s+` (regex search)
- new OError(`
- new OError\(\n\s+` (regex search)
* [web] throw NotFoundError from ProjectLocator
* [github-sync] fix OError.tag call in script
Co-authored-by: Jessica Lawshe <jessica.lawshe@overleaf.com >
* [templates] revert changes to test client
---------
Co-authored-by: Jessica Lawshe <jessica.lawshe@overleaf.com >
GitOrigin-RevId: 736857a4fc5d9bfb0f8cb03e0f004eda87e5a220
2026-02-17 09:05:04 +00:00
Jimmy Domagala-Tang
551d7b3908
feat: migrate from aiErrorAssist naming for disabling AI features to aiFeatures.enabled to avoid confusion ( #31273 )
...
feat: keep aiErrorAssistant as setting on user object until migration is run
GitOrigin-RevId: df53914163566065d0b91b8d130476fbcdf1ea96
2026-02-13 09:05:57 +00:00
Miguel Serrano
05d04e864d
[web] Project collaboration events for Group Audit Logs ( #30055 )
...
* [web] Project collaboration events for Group Audit Logs
* Using `role` instead of `privileges` for `(send|revoke)-invite` audit log
GitOrigin-RevId: 88961afcc0580243ba9c8ab661b8fc1ca127775e
2026-02-13 09:05:43 +00:00
Mathias Jakobsen
498c89c6ed
Merge pull request #31329 from overleaf/mj-dark-mode-notification
...
[web] Introduce notification for dashboard dark mode
GitOrigin-RevId: da5045d412ddc87a4b18823a4a5fa3192fe15c89
2026-02-12 09:05:36 +00:00
Copilot
55c3b6b7ea
Replace promisifyAll with individual promisify calls in web service ( #30931 )
...
* Initial plan
* Replace promisifyAll with individual promisify calls in all 8 files
Co-authored-by: Seinzu <194547+Seinzu@users.noreply.github.com >
* Remove unused promisify imports from V1Api and FileStoreHandler
Co-authored-by: Seinzu <194547+Seinzu@users.noreply.github.com >
* Fix formatting and remove unnecessary .bind() calls
Co-authored-by: Seinzu <194547+Seinzu@users.noreply.github.com >
* Fix formatting: collapse multi-line promisify calls to single lines
Co-authored-by: Seinzu <194547+Seinzu@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Seinzu <194547+Seinzu@users.noreply.github.com >
GitOrigin-RevId: c16a3f3ea48c93c2f62ad32c1f4512cd237882bf
2026-02-12 09:05:28 +00:00
Brian Gough
44ecee821d
Fix temp file leaks in dumpFolder on both success and error paths ( #31304 )
...
GitOrigin-RevId: b5d8586a86030fb887cbd7dadd9bbb7cd64a788c
2026-02-11 09:06:27 +00:00
Kristina
a9ab247507
[web] add notification message to the dashboard for migrated subscriptions ( #31429 )
...
GitOrigin-RevId: 12c14020b9e43e6544bdbd363fd2bc0d4051c80b
2026-02-10 09:06:13 +00:00
roo hutton
f9801ea98e
Merge pull request #31353 from overleaf/rh-project-model-readonly
...
Add readOnly attribute to ProjectSchema
GitOrigin-RevId: 9f7529549f940f69d70e357145dab7b297f3ce68
2026-02-09 09:07:13 +00:00
Jakob Ackermann
8f173d7dc7
[web] integrate example project with clsi-cache ( #31365 )
...
* [web] integrate example project with clsi-cache
* [web] make prettier happy
* [e2e] gracefully handle initial compile from cache
GitOrigin-RevId: c7730a511e889749399ce660d692cad6e57dd5b3
2026-02-09 09:05:59 +00:00
Jakob Ackermann
1e9f917fe1
[web] add optional pub/sub based sync mechanism for system messages ( #31328 )
...
* [web] add optional pub/sub based sync mechanism for system messages
* [web] refactor lazy creation of redis connection
GitOrigin-RevId: 5f69428b8e8dac59aad73e8f16cd25625f2daae4
2026-02-06 09:06:12 +00:00
Jessica Lawshe
487ffc2309
Merge pull request #31099 from overleaf/ii-domain-capture-member-limit-email
...
[web] Members limit email template changes
GitOrigin-RevId: 8c26adda9f748a22a2c99787a3166be706293de3
2026-02-06 09:06:04 +00:00
Simon Gardner
209c1cfbfb
Add audit log entries for project-role-changed and group-role-changed
...
GitOrigin-RevId: 4c326dd922bede6f218a6d89e4f18c312a9abf98
2026-02-06 09:05:19 +00:00
Copilot
35906b4018
Deduplicate users in checkUserListPermissions to avoid redundant permission checks ( #29461 )
...
* Fix duplicate permission checks for same user
Deduplicate user list in checkUserListPermissions before running expensive checks.
Handles ObjectId vs string comparison by converting to string.
Adds tests to verify deduplication works correctly.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: thomas- <2176518+thomas-@users.noreply.github.com >
GitOrigin-RevId: 96eede1cbeb18b807deaca7d4c370aef5c48c4bc
2026-02-05 09:06:17 +00:00
jmescuderowritefull
9eaacdf5d5
Add a page for logging out of Overleaf ( #30945 )
...
GitOrigin-RevId: 88a9bfd698bcd6cf03f3081e807def6b9b846e86
2026-02-05 09:04:55 +00:00
Mathias Jakobsen
30b09bfdcc
Merge pull request #31220 from overleaf/mg-workbench-ai-assist-release
...
Update workbench to be for AI Assist users
GitOrigin-RevId: a53c52344cae7d27fc0e1e13f3956e00df421503
2026-02-04 09:07:15 +00:00
Mathias Jakobsen
fac043695d
Merge pull request #31147 from overleaf/mj-remove-workbench-labs-experiment
...
[web] Move workbench out of labs experiment
GitOrigin-RevId: aafe57730114f0196a5055671635a17710942881
2026-02-04 09:07:10 +00:00
Maria Florencia Besteiro Gonzalez
a76f0ee9f4
Merge pull request #31247 from overleaf/revert-31216-revert-30418-mfb-improve-handling-of-debug-copies-of-user-projects
...
Revert "Revert "Add isDebugCopyOf property to project, add Debug tag to debug project.""
GitOrigin-RevId: 2ed41ec4504ccd8b6ec9cb1d23a9d217079d4347
2026-02-04 09:06:44 +00:00
Kristina
0cabc81d46
Merge pull request #31218 from overleaf/kh-update-assistant-prices
...
* update Stripe AI assist prices
* add soft archive option to the archiving prices script
GitOrigin-RevId: 3f0b66cf227e31e03fb3337b3cb4c1b6a82bd1db
2026-02-04 09:06:34 +00:00
Kristina
4bae5f406d
[web] fix pending downgrade bug ( #31235 )
...
GitOrigin-RevId: a83f21b87abc8758f94900d6af151ea10928047d
2026-02-04 09:06:29 +00:00
roo hutton
a0a621f727
Merge pull request #30788 from overleaf/rh-cio-sub-topics
...
Replace Mailchimp newsletter subscriptions with customer.io topic subscriptions
GitOrigin-RevId: de536fb7ef24ff44c494659b2ef5ede5b33cc977
2026-02-04 09:06:24 +00:00
ilkin-overleaf
061cc99dad
Merge pull request #31229 from overleaf/ii-subscription-redirect-on-error
...
[web] Fix redirect to subscription page
GitOrigin-RevId: 57a3b9c3e8aba2e8a9dde955faaf4b782aeaecac
2026-02-04 09:06:19 +00:00
Maria Florencia Besteiro Gonzalez
c790449196
Merge pull request #31216 from overleaf/revert-30418-mfb-improve-handling-of-debug-copies-of-user-projects
...
Revert "Add isDebugCopyOf property to project, add Debug tag to debug project."
GitOrigin-RevId: f0cf3f040ebe9b19d0836130df3df974ddef11f9
2026-02-03 09:06:31 +00:00
Kristina
4c5cdecffa
[web] fix bug where pending downgrades are removed when subscriptions change ( #30420 )
...
* preserve pending changes when generating change requests
* re-apply pending term_end changes after immediate updates
* block changes when Stripe subscription has multiple phases
* handle MultiplePendingChangesError & rm PendingChangeError
GitOrigin-RevId: 0af11044766ff48e683d684ad6d62b732d17290c
2026-02-03 09:05:55 +00:00
Anna Claire Fields
ee4b5f515c
Handle ERR_STREAM_UNABLE_TO_PIPE alongside ERR_STREAM_PREMATURE_CLOSE ( #31174 )
...
GitOrigin-RevId: bbf49237b177d7a58a9b13efc6f38f5eecfb745c
2026-02-03 09:05:50 +00:00
Maria Florencia Besteiro Gonzalez
a591f2eb7a
Merge pull request #30418 from overleaf/mfb-improve-handling-of-debug-copies-of-user-projects
...
Add isDebugCopyOf property to project, add Debug tag to debug project.
GitOrigin-RevId: e3d17de05c6f31db16b861d1adae333211dff018
2026-02-03 09:05:40 +00:00
Jakob Ackermann
5829a7fe43
[web] integrate clsi-cache into download pdf from project dashboard ( #31138 )
...
* [monorepo] fix downloads from non-sharded clsi-cache
* [web] check some compile from cache options server-side
* [web] integrate clsi-cache into download pdf from project dashboard
* [web] remove frontend tests for server-side validation
* [web] remove unused fetch mock
* [web] use helper that adds polyfill for AbortSignal.any()
* [web] upgrade fetch-mock to fix leaking AbortSignal
* [web] do not add an extra timeout to clsi-cache request
The web backend service has a low timeout already.
GitOrigin-RevId: a90984b92f5d4f24005db5a09f2c5d2424436886
2026-02-02 09:06:13 +00:00
Jakob Ackermann
774d8434d8
[web] fix preparing clsi-cache when cloning project ( #31169 )
...
* [web] fix preparing clsi-cache when cloning project
* [monorepo] fix downloads from non-sharded clsi-cache
* [web] gracefully handle missing imageName when creating template
GitOrigin-RevId: 8647d1bb95edbedcd43cb6f9d9bc475f56e402c8
2026-02-02 09:06:08 +00:00
Anna Claire Fields
f7a68d67d3
format fix for isPrematureClose ( #31161 )
...
* format fix for isprematureclose
* white space?
GitOrigin-RevId: eb6a02eeb6186a130ed7b7b0233256e1d7dde805
2026-02-02 09:04:54 +00:00
Domagoj Kriskovic
a108552df6
[web] add schema validation for downloadZipOfVersion endpoint
...
GitOrigin-RevId: ec69b9aa09cf52b544283be6acf29f706807a4b4
2026-02-02 09:04:50 +00:00
Anna Claire Fields
3649832fc8
add stream unable to pipe err code ( #31160 )
...
GitOrigin-RevId: 2b8c8e19696d5b07ef2ae33c97405ea5cd3cf803
2026-02-02 09:04:46 +00:00
Andrew Rumble
610398d099
Merge pull request #30323 from overleaf/ar/promisify-DocstoreManager
...
[web] promisify DocstoreManager
GitOrigin-RevId: 351b9868a1c29066b6c98d92e5b513e10f4f6764
2026-01-30 09:05:09 +00:00
Jessica Lawshe
9d625fc834
Merge pull request #30964 from overleaf/jel-commons-migrate-email-not-primary
...
[web] Check all emails instead of just primary on group SSO callbacks
GitOrigin-RevId: 52ac46e04134772025ca1812d25aad2e68fa44ea
2026-01-29 09:06:26 +00:00
roo hutton
77c66132b0
Merge pull request #29838 from overleaf/rh-cio-remove-limits
...
Enable customer.io for all users
GitOrigin-RevId: 74d8424924ec30ad3a6cb48c15e285cc696186fd
2026-01-29 09:05:59 +00:00
Alex Vizcaino
da6015591a
Enable supercomplete feature for freemium users ( #30915 )
...
GitOrigin-RevId: 390394b0864b44dc614d5ceee59783c8b10f652d
2026-01-28 09:08:46 +00:00
Mathias Jakobsen
9223515705
Merge pull request #30908 from overleaf/mj-remove-opt-out
...
[web] Tear down editor-redesign-opt-out
GitOrigin-RevId: c826691f3fdd4ad31403abae8adb353bd8c34897
2026-01-27 09:06:08 +00:00
Jessica Lawshe
72ff4c87d7
Merge pull request #30954 from overleaf/jel-redirect-if-missing-data
...
[web] Redirect to `/domain-capture` if trying to load enrollment page without session data
GitOrigin-RevId: f6388c3097955286e1b8e0bc7d15756c55ebdffa
2026-01-23 09:06:29 +00:00
Jessica Lawshe
59dc237e53
Merge pull request #30835 from overleaf/ii-domain-capture-invite-token
...
[web] Create invite token when domain capture is disabled
GitOrigin-RevId: 193b5b8567c3b593c98f432568b47cc4e9e17339
2026-01-23 09:06:24 +00:00
Jessica Lawshe
a116175698
Merge pull request #30520 from overleaf/ii-flexible-group-licensing-upgrade-message
...
[web] Plan upgrade error message when subscription is manually collected
GitOrigin-RevId: 76bda80c81a5f934cbddfb6f24d29c4dd3d6da56
2026-01-23 09:06:19 +00:00
Andrew Rumble
2dfcfd1804
Merge pull request #30916 from overleaf/ar-allow-read-only-institution-access-for-admins-with-no-modify-capability
...
[web] Add view-only version of institution managers page
GitOrigin-RevId: 65d19e42220932fe268d595ea13d0ba0b18c4398
2026-01-22 09:06:49 +00:00
Olzhas Askar
a5b56c7579
Merge pull request #30826 from overleaf/oa-filter-out-once-coupons
...
[web] Filter out once coupons for Stripe
GitOrigin-RevId: 60aad9c557632c3a3a4b5e6d578d786feaa9508f
2026-01-21 09:05:46 +00:00
Davinder Singh
187ffbf108
Recurly Pending subscription bug fixes and display Notification Banner ( #29811 )
...
GitOrigin-RevId: 4eb6bb445f9911fcf74ff2f9bdcc01b420c7afaf
2026-01-20 09:06:42 +00:00