Commit Graph

2842 Commits

Author SHA1 Message Date
MoxAmber ebdb0b12cf Merge pull request #30007 from overleaf/as-user-management-ro
[web] Initial read-only user management page

GitOrigin-RevId: f50d2377b855e6541b30f8f946aecb59bf08e3bc
2026-03-06 09:08:20 +00:00
ilkin-overleaf 20898db17f Merge pull request #31560 from overleaf/ii-domain-capture-multiple-groups
[web] Multiple captured domains

GitOrigin-RevId: c097688efed82a8de11233078134923ed23bf500
2026-03-06 09:07:30 +00:00
Andrew Rumble 87269f3084 Merge pull request #31663 from overleaf/ar-convert-exportshandler-to-fetch-utils
[web] convert ExportsHandler to fetch utils

GitOrigin-RevId: 96e74a1254e456b4ac8a6d3a2bd6330a806c8693
2026-03-06 09:07:21 +00:00
Jimmy Domagala-Tang f96d37b7e3 Revert "Revert "[Web] Enable Quota System for AI Features"" (#31771)
* Revert "Revert "[Web] Enable Quota System for AI Features (#31544)" (#31767)"

This reverts commit f6589bdbf0ac7e71313739e3e3f4fb5bedd48c22.

* Update writefull entitlement syncing for commons (#31774)

* feat: update wf entitlement syncing logic

* feat: remove unused env variable, and parse quota tier as string for analytics

GitOrigin-RevId: 37ae7522a249501719a64327e2b6aaff01a3cc0b
2026-03-06 09:07:15 +00:00
Davinder Singh b7f5344859 Tearing down of old Editor (Integrations panel) and other files (#31701)
* moving files from ide-redesign/components/editor-tour to features/editor-tour

moving files from ide-redesign/components/integrations-panel to features/integrations-panel

fixing imports

Revert "moving files from ide-redesign/components/editor-tour to features/editor-tour"

This reverts commit 9e4dcd4e001ffa4bfdb1053fb8824c1e8521ab10.

* moving files from ide-redesign/components/help -> ide-react/components/rail

* ide-redesign/components/breadcrumbs → features/source-editor/extensions

* ide-redesign/components/editor.tsx → ide-react/components/layout

* ide-redesign/components/full-project-search-panel.tsx → ide-react/components/rail/full-project-search-panel.tsx

* removing old-editor-warning-tooltip

* ide-redesign/components/tooltip-promo.tsx → shared/components/tooltip-promo.tsx

make cleanup_unused_locales

* extract-translations

GitOrigin-RevId: b9f44c4820bb4e0a7eef4f6f9a58ff96fd007bf9
2026-03-06 09:06:48 +00:00
Mathias Jakobsen 6c1003a852 Merge pull request #31609 from overleaf/mj-split-test-system-overall
[web] Add split test for defaulting to system theme

GitOrigin-RevId: 3f5301349074725c56f423ed51662064e52d6aeb
2026-03-06 09:06:38 +00:00
Jakob Ackermann 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
Jakob Ackermann 6c6e8d9a97 [monorepo] switch all output file reads to clsi-nginx (#31691)
* [monorepo] switch all output file reads to clsi-nginx

* [clsi-lb] allow gallery download requests

* [terraform] clsi: use nginx.conf from clsi service

* [clsi] fix flakey tests

* [clsi] replace alias with rewrite and root in nginx config

* [k8s] clsi-lb: expose download port on internal service

* [web] add explicit endpoint for downloading all output files

Serve the output.zip endpoint from clsi.

* [clsi] fix regex for latexqc submission ids

Previously, we only handled template submission ids.

GitOrigin-RevId: 6c3b21b01ec41ae767530b14aac31fbe3d640dd5
2026-02-24 09:07:12 +00:00
Jimmy Domagala-Tang 892047fcf6 Revert "[Web] Enable Quota System for AI Features (#31544)" (#31767)
This reverts commit 17763447965aae5777053b783d2601517bfe6b12.

GitOrigin-RevId: f6589bdbf0ac7e71313739e3e3f4fb5bedd48c22
2026-02-24 09:07:06 +00:00
Jimmy Domagala-Tang 92463fb3e2 [Web] Enable Quota System for AI Features (#31544)
* 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: updating to use quota based system for AI usage

* feat: hide relevant sections of quota system behind split test

* feat: ship onAiFreeTrial instead of free quota amount to project meta

* fix: renaming splitTestEnabledForUser to featureFlagEnabledForUser

* fix: v1_personal should have free trial amount of ai quota

* fix: onAiFreeTrial in projectController should account for anonymous users with no features

* feat: fixing marketing exports for ai quotas

* feat: update features epoch

* feat: move to quota tiers, and map tier to numeric allowance within rateLimiters

GitOrigin-RevId: 17763447965aae5777053b783d2601517bfe6b12
2026-02-24 09:06:31 +00:00
roo hutton 8fb5b0ed05 Merge pull request #31678 from overleaf/rh-cio-subscription-status
Sync subscription type and features to customer.io

GitOrigin-RevId: 4c23a6b4ec9f103e73b26203b0d43f177e56bb6e
2026-02-24 09:06:22 +00:00
Jessica Lawshe 00fe0473c5 Merge pull request #31416 from overleaf/jel-saml-session-missing
[web] Throw instance of `SAMLAuthenticationError` when missing session data and show error message

GitOrigin-RevId: e64ec571a127367a27eb032bd4a22c90124e8b0f
2026-02-20 09:06:27 +00:00
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