Commit Graph

3235 Commits

Author SHA1 Message Date
Alexandre Bourdin a8ff429d29 Merge pull request #31914 from overleaf/ab-cleanup-writefull-frontend-migration-flag
Remove unused writefull-frontend-migration feature flag

GitOrigin-RevId: 73343a9749ab844a55381c6b8be9e3d3aa1b732b
2026-03-20 09:07:06 +00:00
Alexandre Bourdin 5d0498f89c Merge pull request #32312 from overleaf/ab-rename-editor-tabs-flag
[web] Rename editor tabs feature flag

GitOrigin-RevId: 3b9a0ea618d2f43edc108362d384a5b354d1b0e4
2026-03-20 09:07:01 +00:00
Jessica Lawshe bdbff7c3f6 Merge pull request #28814 from overleaf/jel-v1api-promisify
[web] v1 API decaf cleanup and remove unused code

GitOrigin-RevId: 706506ca12df20be74c7c3b35bec4d74baa7f130
2026-03-20 09:06:49 +00:00
Mathias Jakobsen 9224197fb3 Merge pull request #32164 from overleaf/mj-tabs
[web] Add editor tabs experiment

GitOrigin-RevId: 8cef265a45dbd826ad8a4df7d98e38f9bb7ec1cd
2026-03-20 09:06:32 +00:00
ilkin-overleaf 32095c092b Merge pull request #32033 from overleaf/ii-project-sharing-admin-page
[web] Sharing permissions group admin page

GitOrigin-RevId: 97baeeca9ca33cec043badcae2affdd954081ef2
2026-03-19 09:06:35 +00:00
ilkin-overleaf d61413e57d Merge pull request #31827 from overleaf/ii-project-sharing-access-denied
[web] Project sharing access denied redesign

GitOrigin-RevId: b1e3016eb7ef9e2a502e0b67abc3b10c08531fe9
2026-03-19 09:06:31 +00:00
Jakob Ackermann 2e389c5a41 [rails] migrate compiles of conversions/submissions to history mode (#32053)
* [saas-e2e] test gallery templates with binary file

* [rails] add make target for fixing rubocop errors

* [rails] migrate compiles of conversions/submissions to history mode

* [rails] forward version to clsi request

* [rails] trim down compile request

* [saas-e2e] source v1 secrets after make install

GitOrigin-RevId: 65269e1df1051c9f3b4f1813d2e9dcf32a01be50
2026-03-18 09:07:22 +00:00
Jakob Ackermann efa01e6282 [web] fix incremental compile from history for old history ids (#32222)
* [saas-e2e] port history tests to old history

* [web] fix incremental compile from history for old history ids

* [saas-e2e] tweak return type

GitOrigin-RevId: 2c89b570647c292c720cd0d02b6188f66e3e3a69
2026-03-18 09:06:57 +00:00
Alex Vizcaino cc5fc541c3 Writefull Rebrand (Phase 1)
GitOrigin-RevId: 3f1d28ccd4650d81f24a10f10d74b21e002c4527
2026-03-18 09:06:35 +00:00
Miguel Serrano 34fc7e2c7a [web] Update survey filters (#32189)
Updates the filters to support different subscription cohorts: group plans, professional plans, etc.

GitOrigin-RevId: cc9ef4a2460942baa449fe7e6b8c14a88ae2f92f
2026-03-18 09:06:25 +00:00
Davinder Singh b7f140ba0b Tear down cancellation-survey-ai-assist feature flag (#32129)
* tearing down the cancellation-survey-ai-assist

* fixing a failing test

GitOrigin-RevId: 592873217120c2b19f5dccd2575b56cce4d8f0b5
2026-03-16 11:56:39 +00:00
jmescuderowritefull cedc5f2e2e Add simulated suggestions for non English documents (#32147)
GitOrigin-RevId: 923495f92de4c445f7906240b4f60101a82bf8f3
2026-03-16 09:05:33 +00:00
roo hutton 15714582e4 Merge pull request #32096 from overleaf/rh-rm-cio-integration-segmentation
Remove customerio-integration segmentation from all events

GitOrigin-RevId: 628772f61f2ace0fc6b6f4ddbabbab94057188ca
2026-03-10 09:06:17 +00:00
Jimmy Domagala-Tang bb5d90a332 Add usage quota to Workbench (#31782)
* feat: adding usage rate limiting to workbench and aligning editor context values for suggestionsLeft

* feat: prepend word token to headers of token rate limiter to prevent confusion with usage rate limiter

* Shared AI paywalls (#31948)

* feat: renaming hasPremiumSuggestion and adding token limits to editor context and project load

* feat: adding new ai features paywall component

* feat: rename getRemainingFeatureUses to token based naming for token based limiter, removed checking for feature usage on anonymous users, and removed guard on null userId since we shouldnt be calling getRemainingFeatureUses on a nonexistent user

* feat: using token rate limit headers to set token rate values in editor context

* feat: update workbench to be available without refreshing if rate limit reset occurs within session

* fix: move paywall out of inert section

* Hide new paywalls behind FF and open plans page on upgrade attempt (#32023)

* feat: hide new paywalls behind FF

* feat: update ai paywall buttons to navigate to plans page post quota plans change release

* feat: showing a fair limit notificaiton pre-quota change, and updating paywall to not fire if user has premium already (#32056)

GitOrigin-RevId: 565fb128d55543fea34c383bc4abeaa3dd148d09
2026-03-06 09:17:52 +00:00
Jessica Lawshe e89c9128c3 Merge pull request #31783 from overleaf/jel-mongo-domainVerification
[web] Add `domainVerifications` collection

GitOrigin-RevId: 5a9fe9ea80ecf76af9802014149ae785cc4412d5
2026-03-06 09:17:33 +00:00
ilkin-overleaf 6539e26107 Merge pull request #31742 from overleaf/ii-project-sharing-join-project
[web] Join project page redesign

GitOrigin-RevId: d182ec4fb744f384f824c9e63b534da02a9f8e99
2026-03-06 09:17:16 +00:00
Antoine Clausse d5a65e906f [web] Paywall and other AI text edits (#31993)
* Update Compile timeout copy

* Update Collaborator limit copy

* Update Track changes copy

* Update History copy and "Start free trial" button

* Remove unnecessary children passed to StartFreeTrialButton

* Update Dropbox copy

* Update Github copy

* Update Git copy

* Update Reference managers copy

* Update Symbol palette copy

* Update Onboarding prompt copy

* Update Subscriptions page (on free account) copy

* `bin/run web npm run extract-translations`

* Add split-test assignment in subscription page

* Fix tests

* Update services/web/modules/symbol-palette/frontend/js/components/symbol-palette-overlay.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update services/web/modules/onboarding/app/views/onboarding/try_premium.pug

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update services/web/modules/onboarding/app/views/onboarding/try_premium.pug

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Replace `Github` to `GitHub` in translations

* Update "non Overleaf" to "non-Overleaf"

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
GitOrigin-RevId: 56ee2735899de18f820b229bc226249322ac0c87
2026-03-06 09:17:11 +00:00
Mathias Jakobsen ee294c524d Merge pull request #32026 from overleaf/jpa-rate-limit-accept-invite
[web] add rate limit for accepting project invite

GitOrigin-RevId: 1b6e8d7b7547d03cbf3a8ed53b606b9541e37d1f
2026-03-06 09:15:59 +00:00
Mathias Jakobsen ada0922988 Merge pull request #31950 from overleaf/mj-themed-project-load
[web] Add themed project loading screen

GitOrigin-RevId: b73d8c825b5ab04ede1c9dde10a6891be63758a4
2026-03-06 09:15:55 +00:00
Jimmy Domagala-Tang 3fa5ce8b16 Add Shared Usage Quota to Writefull Functions (#31867)
* feat: moved error handling to controller, added config for each route, added usage rate limiter, and removed uneeded functions from manager

* feat: allow for 0 usage cost features in Writefull

* feat: update decrement to also use cost, and make cost optional, defaulting to 1

* feat: adding WF quota tests and updating tests for quota rate limiter (#31982)

* feat: adding WF quota tests and updating tests for quota rate limiter

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
GitOrigin-RevId: 281cb6b50b54c02f54a85a6492ca322ef8f00429
2026-03-06 09:14:46 +00:00
Jimmy Domagala-Tang 501e11a42a Move feature rate limiters to shared web folder (#31855)
* feat: remove old assist split test

* feat: moving featue rate limiters to main shared directory for use in multiple modules

* feat: base workbench rate limiter on a token specific base class

* feat: rename aiErrorAssistRateLimiter to AiFeatureUsageRateLimiter to better reflect its for our shared ai usage quota

GitOrigin-RevId: 89464d115b5904f6274756a7169e2b35945e2fc9
2026-03-06 09:13:40 +00:00
Jimmy Domagala-Tang f1137cbabb feat: remove old assist split test (#31787)
GitOrigin-RevId: bd05b5b13c603aea648cd522372bdf3242091ae8
2026-03-06 09:13:35 +00:00
Andrew Rumble 10e24ab074 Merge pull request #31971 from overleaf/jpa-fix-compile-old-projects
[web] fix compile from history for old projects

GitOrigin-RevId: d46dc3bbcd60dd6d7d74809e0b4e2619b7bd9b49
2026-03-06 09:13:30 +00:00
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