From b1ed38c2d0a2fed1d246131913d4b35f942f8ada Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Mon, 22 Jun 2026 12:00:29 +0100 Subject: [PATCH] Merge pull request #34761 from overleaf/bg-enable-clsi-checkpoints adds enableCheckpoint to compile requests from web to clsi GitOrigin-RevId: 431b28602091cf8f7252ad836f083c7b092351d4 --- .../web/app/src/Features/Compile/ClsiManager.mjs | 1 + .../src/Features/Compile/CompileController.mjs | 16 ++++++++++++++-- .../unit/src/Compile/CompileController.test.mjs | 10 ++++------ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/services/web/app/src/Features/Compile/ClsiManager.mjs b/services/web/app/src/Features/Compile/ClsiManager.mjs index aa0fb3cb50..00b0883495 100644 --- a/services/web/app/src/Features/Compile/ClsiManager.mjs +++ b/services/web/app/src/Features/Compile/ClsiManager.mjs @@ -1161,6 +1161,7 @@ function _finaliseRequest(projectId, options, project, docs, files) { enablePdfCaching: (Settings.enablePdfCaching && options.enablePdfCaching) || false, pdfCachingMinChunkSize: options.pdfCachingMinChunkSize, + enableCheckpoint: Boolean(options.enableCheckpoint), flags, metricsMethod: options.compileGroup, metricsPath: options.metricsPath, diff --git a/services/web/app/src/Features/Compile/CompileController.mjs b/services/web/app/src/Features/Compile/CompileController.mjs index 106a4fb2f7..76f5933229 100644 --- a/services/web/app/src/Features/Compile/CompileController.mjs +++ b/services/web/app/src/Features/Compile/CompileController.mjs @@ -46,13 +46,12 @@ function getOutputFilesArchiveSpecification(projectId, userId, buildId) { } async function _getSplitTestOptions(req, res) { - const { variant } = await SplitTestHandler.promises.getAssignment( + const compileFromHistory = await SplitTestHandler.promises.featureFlagEnabled( req, res, 'compile-from-history', { includeReferer: true } ) - const compileFromHistory = variant === 'enabled' const pdfDownloadDomain = Settings.pdfDownloadDomain const enablePdfCaching = Settings.enablePdfCaching @@ -67,11 +66,20 @@ async function _getSplitTestOptions(req, res) { } const pdfCachingMinChunkSize = Settings.pdfCachingMinChunkSize + + const enableCheckpoint = await SplitTestHandler.promises.featureFlagEnabled( + req, + res, + 'compile-with-checkpoint', + { includeReferer: true } + ) + return { compileFromHistory, pdfDownloadDomain, enablePdfCaching, pdfCachingMinChunkSize, + enableCheckpoint, } } @@ -206,11 +214,15 @@ const _CompileController = { pdfCachingMinChunkSize, pdfDownloadDomain, compileFromHistory, + enableCheckpoint, } = await _getSplitTestOptions(req, res) if (Features.hasFeature('saas')) { options.compileFromClsiCache = true options.populateClsiCache = true options.compileFromHistory = compileFromHistory + if (enableCheckpoint) { + options.enableCheckpoint = enableCheckpoint + } } options.enablePdfCaching = enablePdfCaching if (enablePdfCaching) { diff --git a/services/web/test/unit/src/Compile/CompileController.test.mjs b/services/web/test/unit/src/Compile/CompileController.test.mjs index 57bda788b5..5fb691646e 100644 --- a/services/web/test/unit/src/Compile/CompileController.test.mjs +++ b/services/web/test/unit/src/Compile/CompileController.test.mjs @@ -153,13 +153,11 @@ describe('CompileController', function () { '../../../../app/src/Features/SplitTests/SplitTestHandler', () => ({ default: { - getAssignment: (ctx.getAssignment = sinon.stub().yields(null, { - variant: 'default', - })), + featureFlagEnabled: (ctx.featureFlagEnabled = sinon + .stub() + .yields(null, false)), promises: { - getAssignment: sinon.stub().resolves({ - variant: 'default', - }), + featureFlagEnabled: sinon.stub().resolves(false), }, }, })