diff --git a/services/web/app/src/Features/Compile/CompileManager.js b/services/web/app/src/Features/Compile/CompileManager.js index 5a90b0c4bc..0c36f0a326 100644 --- a/services/web/app/src/Features/Compile/CompileManager.js +++ b/services/web/app/src/Features/Compile/CompileManager.js @@ -10,7 +10,6 @@ const ClsiManager = require('./ClsiManager') const Metrics = require('@overleaf/metrics') const { RateLimiter } = require('../../infrastructure/RateLimiter') const UserAnalyticsIdCache = require('../Analytics/UserAnalyticsIdCache') -const SplitTestHandler = require('../SplitTests/SplitTestHandler') const { callbackify, callbackifyMultiResult, @@ -131,17 +130,6 @@ async function _getProjectCompileLimits(project) { ownerFeatures.compileGroup = 'alpha' } - if (ownerFeatures.compileTimeout === 20) { - const overrideCompileTimeout = - await SplitTestHandler.promises.getAssignmentForUser( - project.owner_ref, - '10s-timeout-enforcement' - ) - - if (overrideCompileTimeout.variant === 'enabled') { - ownerFeatures.compileTimeout = 10 - } - } const analyticsId = await UserAnalyticsIdCache.get(owner._id) const compileGroup = diff --git a/services/web/app/src/Features/Project/ProjectController.mjs b/services/web/app/src/Features/Project/ProjectController.mjs index 56599a3a75..a322eab9da 100644 --- a/services/web/app/src/Features/Project/ProjectController.mjs +++ b/services/web/app/src/Features/Project/ProjectController.mjs @@ -783,17 +783,6 @@ const _ProjectController = { isOverleafAssistBundleEnabled && (await ProjectController._getAddonPrices(req, res)) - const reducedTimeout = - await SplitTestHandler.promises.getAssignmentForUser( - project.owner_ref, - '10s-timeout-enforcement' - ) - - let compileTimeout = ownerFeatures?.compileTimeout - if (compileTimeout === 20 && reducedTimeout.variant === 'enabled') { - compileTimeout = 10 - } - let planCode = subscription?.planCode if (!planCode && !userInNonIndividualSub) { planCode = 'personal' @@ -899,7 +888,7 @@ const _ProjectController = { customerIoEnabled, addonPrices, compileSettings: { - compileTimeout, + compileTimeout: ownerFeatures?.compileTimeout, }, }) timer.done() diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index b2b53ebac0..7d6c354e01 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -134,7 +134,6 @@ "an_email_has_already_been_sent_to": "", "an_error_occured_while_restoring_project": "", "an_error_occurred_when_verifying_the_coupon_code": "", - "and_upgrade_for_compile_time": "", "annual_discount": "", "anonymous": "", "anyone_with_link_can_edit": "", @@ -865,7 +864,6 @@ "integrations": "", "integrations_like_github": "", "interested_in_cheaper_personal_plan": "", - "introducing_shorter_compile_timeout": "", "invalid_confirmation_code": "", "invalid_email": "", "invalid_file_name": "", @@ -1375,8 +1373,6 @@ "reactivating": "", "read_lines_from_path": "", "read_more": "", - "read_more_about_compile_timeout_changes": "", - "read_more_about_fix_prevent_timeout": "", "read_more_about_free_compile_timeouts_servers": "", "read_only_dropbox_sync_message": "", "read_only_token": "", @@ -1835,7 +1831,6 @@ "this_is_a_new_feature": "", "this_is_the_file_that_references_pulled_from_your_reference_manager_will_be_added_to": "", "this_project_already_has_maximum_collaborators": "", - "this_project_compiled_but_soon_might_not": "", "this_project_contains_a_file_called_output_pdf": "", "this_project_exceeded_collaborator_limit": "", "this_project_exceeded_compile_timeout_limit_on_free_plan": "", @@ -2114,8 +2109,8 @@ "well_be_here_when_youre_ready": "", "were_making_some_changes_to_project_sharing_this_means_you_will_be_visible": "", "were_performing_maintenance": "", - "were_reducing_compile_timeout": "", "weve_redesigned_our_editor_to_make_it_easier_to_use_and_future_ready": "", + "weve_reduced_compile_timeout": "", "what_did_you_find_most_helpful": "", "what_do_you_need_help_with": "", "what_does_this_mean_for_you": "", @@ -2188,7 +2183,6 @@ "you_have_errors_the_pdf_couldnt_compile": "", "you_have_x_licenses_and_your_plan_supports_up_to_y": "", "you_have_x_licenses_on_your_subscription": "", - "you_may_be_able_to_fix_issues_to_speed_up_the_compile": "", "you_need_to_configure_your_sso_settings": "", "you_unpaused_your_subscription": "", "you_will_be_able_to_reassign_subscription": "", @@ -2224,7 +2218,6 @@ "your_plan_is_limited_to_n_editors": "", "your_plan_is_limited_to_n_editors_plural": "", "your_premium_plan_is_paused": "", - "your_project_compiled_but_soon_might_not": "", "your_project_exceeded_collaborator_limit": "", "your_project_exceeded_compile_timeout_limit_on_free_plan": "", "your_project_near_compile_timeout_limit": "", diff --git a/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-error-state/compile-timeout-error-state.tsx b/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-error-state/compile-timeout-error-state.tsx index 736ad77a34..add431d39b 100644 --- a/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-error-state/compile-timeout-error-state.tsx +++ b/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-error-state/compile-timeout-error-state.tsx @@ -95,7 +95,7 @@ export const ShortCompileTimeoutErrorState = () => {

void - segmentation?: eventTracking.Segmentation -}> = ({ isProjectOwner = false, handleDismissChangingSoon, segmentation }) => { - const { t } = useTranslation() - - const sendInfoClickEvent = () => { - eventTracking.sendMB('paywall-info-click', { - 'paywall-type': 'compile-time-warning', - ...segmentation, - content: 'blog', - }) - } - - const compileTimeoutChangesBlogLink = ( - /* eslint-disable-next-line jsx-a11y/anchor-has-content */ - - ) - - const fixingCompileTimeoutsLearnLink = ( - /* eslint-disable-next-line jsx-a11y/anchor-has-content */ - - ) - - if (isProjectOwner) { - return ( - - {t('start_free_trial_without_exclamation')} - - } - ariaLive="polite" - content={ -

-

- -

-

- {' '} - }} - /> -

-
- } - title={t('your_project_compiled_but_soon_might_not')} - type="warning" - isActionBelowContent - isDismissible - onDismiss={handleDismissChangingSoon} - /> - ) - } - - return ( - -

- {' '} - -

-

- , - ]} - /> -

- - } - title={t('this_project_compiled_but_soon_might_not')} - type="warning" - isDismissible - onDismiss={handleDismissChangingSoon} - /> - ) -} diff --git a/services/web/frontend/js/features/pdf-preview/components/compile-time-warning-upgrade-prompt.tsx b/services/web/frontend/js/features/pdf-preview/components/compile-time-warning-upgrade-prompt.tsx index 52c4ec0718..02bc4ed62c 100644 --- a/services/web/frontend/js/features/pdf-preview/components/compile-time-warning-upgrade-prompt.tsx +++ b/services/web/frontend/js/features/pdf-preview/components/compile-time-warning-upgrade-prompt.tsx @@ -4,14 +4,12 @@ import { useDetachCompileContext } from '@/shared/context/detach-compile-context import usePersistedState from '@/shared/hooks/use-persisted-state' import { CompileTimeWarningUpgradePromptInner } from '@/features/pdf-preview/components/compile-time-warning-upgrade-prompt-inner' import getMeta from '@/utils/meta' -import { CompileTimeoutChangingSoon } from './compile-time-changing-soon' function CompileTimeWarningUpgradePrompt() { const { isProjectOwner, deliveryLatencies, compiling, showLogs, error } = useDetachCompileContext() const [showWarning, setShowWarning] = useState(false) - const [showChangingSoon, setShowChangingSoon] = useState(false) const [dismissedUntilWarning, setDismissedUntilWarning] = usePersistedState< Date | undefined >(`has-dismissed-10s-compile-time-warning-until`) @@ -25,22 +23,10 @@ function CompileTimeWarningUpgradePrompt() { [isProjectOwner] ) - const changingSoonSegmentation = useMemo( - () => ({ - content: 'changes', - compileTime: 10, - isProjectOwner, - }), - [isProjectOwner] - ) - const handleNewCompile = useCallback( (compileTime: number) => { setShowWarning(false) - setShowChangingSoon(false) - if (compileTime > 10000) { - setShowChangingSoon(true) - } else if (compileTime > 7000) { + if (compileTime > 7000) { if (isProjectOwner) { if ( !dismissedUntilWarning || @@ -75,16 +61,6 @@ function CompileTimeWarningUpgradePrompt() { setDismissedUntilWarning(until) }, [isProjectOwner, setDismissedUntilWarning]) - const handleDismissChangingSoon = useCallback(() => { - eventTracking.sendMB('paywall-dismiss', { - 'paywall-type': 'compile-time-warning', - compileTime: 10, - content: 'changes', - isProjectOwner, - }) - setShowChangingSoon(false) - }, [isProjectOwner]) - useEffect(() => { if (compiling || error || showLogs) return handleNewCompile(deliveryLatencies.compileTimeServerE2E) @@ -103,7 +79,7 @@ function CompileTimeWarningUpgradePrompt() { return null } - if (!showWarning && !showChangingSoon) { + if (!showWarning) { return null } @@ -115,13 +91,6 @@ function CompileTimeWarningUpgradePrompt() { segmentation={warningSegmentation} /> )} - {showChangingSoon && ( - - )} ) } diff --git a/services/web/frontend/js/features/pdf-preview/components/timeout-upgrade-prompt-new.tsx b/services/web/frontend/js/features/pdf-preview/components/timeout-upgrade-prompt-new.tsx index 1bebb8b694..b9243da7e5 100644 --- a/services/web/frontend/js/features/pdf-preview/components/timeout-upgrade-prompt-new.tsx +++ b/services/web/frontend/js/features/pdf-preview/components/timeout-upgrade-prompt-new.tsx @@ -188,7 +188,7 @@ const PreventTimeoutHelpMessage = memo(function PreventTimeoutHelpMessage({

diff --git a/services/web/locales/en.json b/services/web/locales/en.json index 4a40e2b7f2..37fd00c973 100644 --- a/services/web/locales/en.json +++ b/services/web/locales/en.json @@ -167,7 +167,6 @@ "an_error_occured_while_restoring_project": "An error occured while restoring the project", "an_error_occurred_when_verifying_the_coupon_code": "An error occurred when verifying the coupon code", "and": "and", - "and_upgrade_for_compile_time": "And you can upgrade to get more compile time.", "annual": "Annual", "annual_discount": "Annual discount", "anonymous": "Anonymous", @@ -1103,7 +1102,6 @@ "integrations": "Integrations", "integrations_like_github": "Integrations like GitHub Sync", "interested_in_cheaper_personal_plan": "Would you be interested in the cheaper <0>__price__ Personal plan?", - "introducing_shorter_compile_timeout": "We’re <0>introducing a shorter compile timeout limit. This project currently exceeds the new limit, so it might not compile from 25th August 2025.", "invalid_certificate": "Invalid certificate. Please check the certificate and try again.", "invalid_confirmation_code": "That didn’t work. Please check the code and try again.", "invalid_email": "An email address is invalid", @@ -1787,8 +1785,6 @@ "reactivating": "Reactivating", "read_lines_from_path": "Read lines from __path__", "read_more": "Read more", - "read_more_about_compile_timeout_changes": "Read more about changes to compile timeout limits", - "read_more_about_fix_prevent_timeout": "Read more about how to fix and prevent timeouts", "read_more_about_free_compile_timeouts_servers": "Read more about changes to free compile timeouts and servers", "read_only_dropbox_sync_message": "As a read-only viewer you can sync the current project version to Dropbox, but changes made in Dropbox will <0>not sync back to Overleaf.", "read_only_token": "Read-Only Token", @@ -2361,7 +2357,6 @@ "this_is_the_file_that_references_pulled_from_your_reference_manager_will_be_added_to": "This is the file that references pulled from your reference manager will be added to.", "this_is_your_template": "This is your template from your project", "this_project_already_has_maximum_collaborators": "This project already has the maximum number of collaborators permitted on the owner’s plan. This means you can view but not edit or review the project.", - "this_project_compiled_but_soon_might_not": "This project compiled, but soon it might not", "this_project_contains_a_file_called_output_pdf": "The project contains a file called output.pdf. If that file exists, rename it.", "this_project_exceeded_collaborator_limit": "This project exceeded the collaborator limit for your plan. All other users now have view-only access.", "this_project_exceeded_compile_timeout_limit_on_free_plan": "This project exceeded the compile timeout limit on our free plan.", @@ -2664,8 +2659,8 @@ "well_be_here_when_youre_ready": "We’ll be here when you’re ready to dive back in! 🦆", "were_making_some_changes_to_project_sharing_this_means_you_will_be_visible": "We’re making some <0>changes to project sharing. This means, as someone with edit access, your name and email address will be visible to the project owner and other editors.", "were_performing_maintenance": "We’re performing maintenance on Overleaf and you need to wait a moment. Sorry for any inconvenience. The editor will refresh automatically in __seconds__ seconds.", - "were_reducing_compile_timeout": "We’re in the process of <0>reducing the compile timeout limit on our free plan, which may affect your project in future.", "weve_redesigned_our_editor_to_make_it_easier_to_use_and_future_ready": "We’ve redesigned our editor to make it easier to use and future ready. It’s now in beta, so try it out and give us your feedback.", + "weve_reduced_compile_timeout": "We’ve recently <0>reduced the compile timeout limit on our free plan, which may have affected your project.", "what_did_you_find_most_helpful": "What did you find most helpful?", "what_do_you_need": "What do you need?", "what_do_you_need_help_with": "What do you need help with?", @@ -2749,7 +2744,6 @@ "you_have_errors_the_pdf_couldnt_compile": "You have errors. The PDF couldn’t compile.", "you_have_x_licenses_and_your_plan_supports_up_to_y": "You have allocated __addedUsersSize__ licenses and your plan supports up to __groupSize__.", "you_have_x_licenses_on_your_subscription": "You have __groupSize__ licenses on your subscription.", - "you_may_be_able_to_fix_issues_to_speed_up_the_compile": "You may be able to fix issues to <0>speed up the compile.", "you_need_to_configure_your_sso_settings": "You need to configure and test your SSO settings before enabling SSO", "you_unpaused_your_subscription": "You unpaused your subscription.", "you_will_be_able_to_contact_us_any_time_to_share_your_feedback": "<0>You will be able to contact us any time to share your feedback", @@ -2788,7 +2782,6 @@ "your_plan_is_limited_to_n_editors": "Your plan allows __count__ collaborator with edit access and unlimited viewers.", "your_plan_is_limited_to_n_editors_plural": "Your plan allows __count__ collaborators with edit access and unlimited viewers.", "your_premium_plan_is_paused": "Your Premium plan is <0>paused.", - "your_project_compiled_but_soon_might_not": "Your project compiled, but soon it might not", "your_project_exceeded_collaborator_limit": "Your project exceeded the collaborator limit and access levels were changed. Select a new access level for your collaborators, or upgrade to add more editors or reviewers.", "your_project_exceeded_compile_timeout_limit_on_free_plan": "Your project exceeded the compile timeout limit on our free plan.", "your_project_near_compile_timeout_limit": "Your project is near the compile timeout limit for our free plan.",