Commit Graph

8747 Commits

Author SHA1 Message Date
l-obrien-overleaf
92d7077878 Adding types to github sync export handler and up the stack (#31390)
* Adding types to github sync export handler and up the stack

* promsifying file and addressing review comments

* reverting tsconfig and updating response type

* importing correct type

* reverting Jenkinsfile to main

GitOrigin-RevId: 96496920b8faf38fc32ffedb6fc4b8d6596d4112
2026-03-06 09:12:56 +00:00
Miguel Serrano
c1c9b9e1b7 [web] Target all group subscriptions on Survey configuration (#31928)
Update the toggle behaviour to target all group subscription users,
regardless of whether they are in Recurly or Stripe.

GitOrigin-RevId: a3e72d93e440a8941472f868e387a654b8908d1f
2026-03-06 09:12:47 +00:00
Jakob Ackermann
81b7121408 [clsi] initial implementation of compile from history (#31883)
* [clsi] initial implementation of compile from history

* [clsi] copy changes

* [saas-e2e] extend test case with nested folder

* [saas-e2e] add test case for tracked changes

* [web] fix accumulating changes from multiple chunks

* [web] optimize size check for compile request payload

* [clsi] deduplicate globalBlobs

* [clsi] add validation for request body details

* [clsi] add metrics for compile from history

* [clsi] download binary files concurrently

* [clsi] skip download of empty file blob

* [clsi] break down e2e compile time metric by compileFromHistory

GitOrigin-RevId: 0dadef93e89d8a172c35cb130a1042d9d1bec42a
2026-03-06 09:12:07 +00:00
Andrew Rumble
5723a9589a Merge pull request #31567 from overleaf/ar-fb/handle-clsi-timeout-better
[clsi-lb,v1,clsi,web] handle clsi timeout better

GitOrigin-RevId: 86aa1e01b8cb465b8b9332e17fb97c21849d0489
2026-03-06 09:12:02 +00:00
Andrew Rumble
a92bf982b0 Merge pull request #31889 from overleaf/ar-remove-web-smoke-test
[web] remove smoke test

GitOrigin-RevId: 7911b5e800ef466c59131fd739f95b11a587359f
2026-03-06 09:11:30 +00:00
Andrew Rumble
16cc4026a0 Merge pull request #30890 from overleaf/ar/code-coverage-e2e
[monorepo] code coverage e2e

GitOrigin-RevId: cfdef9e6b485831bd34847f7b7af13d39c18c3e6
2026-03-06 09:10:56 +00:00
Mathias Jakobsen
a6ba9c1016 Merge pull request #31881 from overleaf/mj-ux-lite-editor-march-26
[web] Prepare re-run of UX lite survey

GitOrigin-RevId: e73249bd43dccfc6a40ee01d58bf01f6c6cf7f79
2026-03-06 09:10:51 +00:00
Jakob Ackermann
da50aee52c [web] disable buffering when downloading large files (#31874)
* [web] disable buffering when downloading large files

* [web] fix unit tests

GitOrigin-RevId: c8b0381962814fa62425364f03457600daf287ef
2026-03-06 09:10:32 +00:00
Mathias Jakobsen
51afc7d85e Merge pull request #31862 from overleaf/mj-system-theme-split-test-dates
[web] Update dates for system theme split test

GitOrigin-RevId: 735b99e234d7613e057947d70ca8e2d8364e30aa
2026-03-06 09:10:07 +00:00
Jakob Ackermann
624a351aac [web] increase timeout for downloads from clsi (#31840)
* [web] increase timeout for downloads from clsi

* [web] detach request timeout from streaming timeout

* [web] align timeout for clsi-cache downloads with clsi downloads

* [web] destroy stream when bailing out early from aborted requests

GitOrigin-RevId: cc4cad9d684214b2eee0f5fc43513e430ceb0977
2026-03-06 09:09:50 +00:00
Antoine Clausse
b6c38ef5d0 [web] Show student discount pre checkout (#31820)
* Compute student discount from prices

* Add presentational discount in the checkout page

* Put student discount row behind feature flag

* Update code and tests to clarify that `currency` is always defined

* Introduce `usePlanPriceItems` to normalize the list

* Simplify `usePlanPriceItems`

Co-authored-by: Olzhas Askar <olzhas.askar@overleaf.com>

* Remove student discount percent

* Update Standard Monthly/Annual names in the checkout page

* Simplify `getRecommendedCurrency` mock

* Fix testid: price-summary-plan

* Add test on stripe-price-summary

* Add `Math.abs` on accessibility discounted info (!)

---------

Co-authored-by: Olzhas Askar <olzhas.askar@overleaf.com>
GitOrigin-RevId: f297eab4b6abd6a84842054667a3734cb33866fe
2026-03-06 09:09:41 +00:00
Jessica Lawshe
65180f3fa0 Merge pull request #30988 from overleaf/jel-check-domain-matches-matcher-web
[web] Check if email domain from SAML callback matches domain matcher

GitOrigin-RevId: e29a7dc6a1b5f6db46ab4146626c9f1d6659b7ea
2026-03-06 09:09:29 +00:00
Jessica Lawshe
1efc67ae9b Merge pull request #31736 from overleaf/jel-find-group-only-if-domain-confirmed
[web] Only query group with domain capture if domain is confirmed

GitOrigin-RevId: 612a711730b1f090f3e47410fd4ad68df33eca93
2026-03-06 09:09:21 +00:00
Jimmy Domagala-Tang
af82f25944 feat: fixing conversions in metrics (#31610)
GitOrigin-RevId: 76bae4b780c3b9a2c1de6c8d0bbf175634080804
2026-03-06 09:08:34 +00:00
MoxAmber
b131020c43 Merge pull request #30950 from overleaf/as-user-management-actions
[web] User management actions

GitOrigin-RevId: c7683c596673bc252649cdeb975edd779a6154b0
2026-03-06 09:08:25 +00:00
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
Antoine Clausse
43832b7a43 [web] Remove CIAM login notification and cookie (#31563)
* Remove legacy notification cookies

* Remove CIAM notification message from login page

* Remove e2e test "it can dismiss the login notification"

* Clarify comment about removing legacy notification dismiss cookies

GitOrigin-RevId: 33fdc02a397c0f4be491f030ab58fd8954276048
2026-02-19 09:06:49 +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
Mathias Jakobsen
ae2d28505b [web] Abstract AiErrorAssistantRateLimiter (#31176)
* [web] Abstract AiErrorAssistantRateLimiter

* [web] Remove AI error assist reference in FeatureUsageRateLimiter

GitOrigin-RevId: cb12ea8b7a5a06576087b937380652fbe1948e95
2026-02-10 09:06:25 +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