A web-based collaborative LaTeX editor
This report summarizes scanner evidence for overleaf/overleaf, a JavaScript project with 18,221 GitHub stars. SynthScan examined 517,428 lines of code across 3630 source files, recording 897 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 8.9 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 476 finding(s).
Are imports declared and package/API names verified? 417 finding(s).
Are wrappers, guards, and repeated structures necessary? 363 finding(s).
Which changes need focused human review? 897 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 897 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | libraries/logger/test/unit/logging-manager-tests.js | 168 | this.bunyanLogger.debug.should.have.been.calledWith(this.logArgs) | CODE |
| CRITICAL⚡ | libraries/logger/test/unit/logging-manager-tests.js | 173 | this.bunyanLogger.error.should.have.been.calledWith(this.logArgs) | CODE |
| CRITICAL⚡ | libraries/logger/test/unit/logging-manager-tests.js | 178 | this.bunyanLogger.fatal.should.have.been.calledWith(this.logArgs) | CODE |
| CRITICAL⚡ | libraries/logger/test/unit/logging-manager-tests.js | 183 | this.bunyanLogger.info.should.have.been.calledWith(this.logArgs) | CODE |
| CRITICAL⚡ | libraries/logger/test/unit/logging-manager-tests.js | 188 | this.bunyanLogger.warn.should.have.been.calledWith(this.logArgs) | CODE |
| CRITICAL⚡ | libraries/logger/test/unit/logging-manager-tests.js | 193 | this.bunyanLogger.error.should.have.been.calledWith(this.logArgs) | CODE |
| CRITICAL | …/object-persistor/test/unit/MigrationPersistorTests.js | 222 | ).to.eventually.be.rejected.and.be.an.instanceOf(Errors.NotFoundError) | CODE |
| CRITICAL | …/object-persistor/test/unit/MigrationPersistorTests.js | 319 | ).to.eventually.be.rejected.and.be.an.instanceOf(Errors.NotFoundError) | CODE |
| CRITICAL | services/clsi/test/unit/js/LatexRunner.test.js | 93 | ctx.CommandRunner.run.should.have.been.calledWith( | CODE |
| CRITICAL⚡ | services/clsi/test/unit/js/LatexRunner.test.js | 117 | ctx.fs.writeFile.should.have.been.calledWith( | CODE |
| CRITICAL⚡ | services/clsi/test/unit/js/LatexRunner.test.js | 122 | ctx.fs.writeFile.should.have.been.calledWith( | CODE |
| CRITICAL⚡ | services/clsi/test/unit/js/LatexRunner.test.js | 127 | ctx.fs.unlink.should.have.been.calledWith( | CODE |
| CRITICAL⚡ | services/clsi/test/unit/js/LatexRunner.test.js | 130 | ctx.fs.unlink.should.have.been.calledWith( | CODE |
| CRITICAL | services/clsi/test/unit/js/LatexRunner.test.js | 154 | ctx.CommandRunner.run.should.have.been.calledWith(ctx.project_id, [ | CODE |
| CRITICAL | services/clsi/test/unit/js/LatexRunner.test.js | 244 | ctx.CommandRunner.run.should.have.been.calledWith(ctx.project_id, [ | CODE |
| CRITICAL | services/clsi/test/unit/js/ResourceWriter.test.js | 403 | return ctx.Metrics.Timer.prototype.done.called.should.equal(true) | CODE |
| CRITICAL | services/clsi/test/unit/js/ResourceWriter.test.js | 507 | return ctx.fs.writeFile.called.should.equal(false) | CODE |
| CRITICAL | services/clsi/test/unit/js/CompileController.test.js | 225 | ctx.res.send.should.have.been.calledWith({ | CODE |
| CRITICAL | services/clsi/test/unit/js/CompileController.test.js | 277 | ctx.res.send.should.have.been.calledWith({ | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 366 | ctx.DockerRunner._runAndWaitForContainer.calledTwice.should.equal(true) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 462 | ctx.DockerRunner._getContainerOptions.called.should.equal(true) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 488 | ctx.DockerRunner._getContainerOptions.called.should.equal(false) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 673 | ctx.container.start.called.should.equal(true) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 681 | ctx.DockerRunner.attachToContainer.called.should.equal(true) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 720 | ctx.DockerRunner.attachToContainer.called.should.equal(true) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 785 | ctx.container.wait.called.should.equal(true) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 811 | ctx.container.wait.called.should.equal(true) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 828 | ctx.container.wait.called.should.equal(true) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 860 | ctx.container.kill.called.should.equal(true) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 920 | ctx.DockerRunner.destroyContainer.callCount.should.equal(1) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 971 | ctx.Docker.prototype.getContainer.callCount.should.equal(1) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 984 | ctx.fakeContainer.remove.callCount.should.equal(1) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 997 | ctx.fakeContainer.remove.callCount.should.equal(1) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 1074 | ctx.Docker.prototype.getContainer.callCount.should.equal(1) | CODE |
| CRITICAL | services/clsi/test/unit/js/DockerRunner.test.js | 1087 | ctx.fakeContainer.kill.callCount.should.equal(1) | CODE |
| CRITICAL | services/clsi/test/unit/js/ResourceStateManager.test.js | 78 | ctx.fs.writeFile.called.should.equal(false) | CODE |
| CRITICAL | …es/clsi/test/unit/js/ProjectPersistenceManager.test.js | 67 | ctx.Metrics.gauge.should.have.been.calledWith( | CODE |
| CRITICAL | …es/clsi/test/unit/js/ProjectPersistenceManager.test.js | 88 | ctx.Metrics.gauge.should.have.been.calledWith( | CODE |
| CRITICAL | …es/clsi/test/unit/js/ProjectPersistenceManager.test.js | 107 | ctx.Metrics.gauge.should.have.been.calledWith( | CODE |
| CRITICAL | …es/clsi/test/unit/js/ProjectPersistenceManager.test.js | 175 | ctx.HistoryResourceWriter.clearCacheCb.should.have.been.calledWith( | CODE |
| CRITICAL | services/clsi/test/acceptance/js/DeleteOldFilesTest.js | 29 | this.body.compile.status.should.equal('success') | CODE |
| CRITICAL | services/clsi/test/acceptance/js/DeleteOldFilesTest.js | 39 | this.body.compile.status.should.equal('failure') | CODE |
| CRITICAL | …rvices/clsi/test/acceptance/js/BrokenLatexFileTests.js | 43 | this.body.compile.status.should.equal('failure') | CODE |
| CRITICAL | …rvices/clsi/test/acceptance/js/BrokenLatexFileTests.js | 73 | this.body.compile.status.should.equal('failure') | CODE |
| CRITICAL | services/clsi/test/acceptance/js/ClearCache.js | 62 | const outputFilePaths = this.compileResult.body.compile.outputFiles.map( | CODE |
| CRITICAL | services/clsi/test/acceptance/js/TimeoutTests.js | 30 | this.body.compile.error.should.equal('container timed out') | CODE |
| CRITICAL | services/clsi/test/acceptance/js/TimeoutTests.js | 34 | this.body.compile.status.should.equal('timedout') | CODE |
| CRITICAL | services/clsi/test/acceptance/js/StopCompile.js | 62 | const outputFilePaths = this.compileResult.body.compile.outputFiles.map( | CODE |
| CRITICAL⚡ | …ter/test/unit/js/HttpController/HttpControllerTests.js | 713 | this.DocumentManager.promises.acceptChangesWithLock.should.have.been.calledWith( | CODE |
| CRITICAL⚡ | …ter/test/unit/js/HttpController/HttpControllerTests.js | 721 | this.res.status.should.have.been.calledWith(200) | CODE |
| CRITICAL⚡ | …ter/test/unit/js/HttpController/HttpControllerTests.js | 722 | this.res.json.should.have.been.calledWith({ | CODE |
| CRITICAL | …ter/test/unit/js/HttpController/HttpControllerTests.js | 127 | this.DocumentManager.promises.getDocAndRecentOpsWithLock.should.have.been.calledWith( | CODE |
| CRITICAL | …ter/test/unit/js/HttpController/HttpControllerTests.js | 135 | this.res.json.should.have.been.calledWith({ | CODE |
| CRITICAL | …ter/test/unit/js/HttpController/HttpControllerTests.js | 160 | this.Metrics.Timer.prototype.done.called.should.equal(true) | CODE |
| CRITICAL | …ter/test/unit/js/HttpController/HttpControllerTests.js | 180 | this.DocumentManager.promises.getDocAndRecentOpsWithLock.should.have.been.calledWith( | CODE |
| CRITICAL | …ter/test/unit/js/HttpController/HttpControllerTests.js | 188 | this.res.json.should.have.been.calledWith({ | CODE |
| CRITICAL | …ter/test/unit/js/HttpController/HttpControllerTests.js | 213 | this.Metrics.Timer.prototype.done.called.should.equal(true) | CODE |
| CRITICAL | …ter/test/unit/js/HttpController/HttpControllerTests.js | 279 | this.DocumentManager.promises.getCommentWithLock.should.have.been.calledWith( | CODE |
| CRITICAL | …ter/test/unit/js/HttpController/HttpControllerTests.js | 336 | this.DocumentManager.promises.setDocWithLock.should.have.been.calledWith( | CODE |
| CRITICAL | …ter/test/unit/js/HttpController/HttpControllerTests.js | 368 | this.Metrics.Timer.prototype.done.called.should.equal(true) | CODE |
| 308 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libraries/metrics/initialize.js | 31 | function initializeOpenTelemetryInstrumentation() { | CODE |
| LOW | libraries/metrics/initialize.js | 73 | function initializeOpenTelemetryLogging() { | CODE |
| LOW | libraries/mongo-utils/batchedUpdate.js | 51 | function refreshGlobalOptionsForBatchedUpdate(options = {}) { | CODE |
| LOW | libraries/mongo-utils/batchedUpdate.js | 296 | function batchedUpdateWithResultHandling( | CODE |
| LOW | …/overleaf-editor-core/test/unit/text_operation.test.js | 1093 | function expectInverseToLeadToInitialState(fileData, operation) { | CODE |
| LOW | …/overleaf-editor-core/test/unit/text_operation.test.js | 1138 | function stripTrackedChangeTimestamps(raw) { | CODE |
| LOW | libraries/overleaf-editor-core/lib/file_map.js | 344 | function checkNewPathnameDoesNotConflict(fileMap, pathname, ignoredPathname) { | CODE |
| LOW | libraries/overleaf-editor-core/lib/file_map.js | 353 | function checkPathnamesDoNotConflict(fileMap) { | CODE |
| LOW | …rleaf-editor-core/lib/doc_updater_compatible_ranges.js | 16 | function getDocUpdaterCompatibleRanges(file) { | CODE |
| LOW | libraries/overleaf-editor-core/lib/root_doc.js | 83 | function setMainPathnameOperations(snapshot, pathname) { | CODE |
| LOW | libraries/overleaf-editor-core/lib/ot_client.js | 92 | this.handleLocalOperation = function otClientHandleLocalOperation( | CODE |
| LOW | …erleaf-editor-core/lib/build_set_content_operations.js | 40 | async function buildSetContentOperations({ | CODE |
| LOW | …s/overleaf-editor-core/lib/operation/text_operation.js | 857 | function calculateTrackingCommentSegments( | CODE |
| LOW | libraries/overleaf-editor-core/lib/operation/index.js | 295 | function transformAddFileSetFileMetadata(add, set) { | CODE |
| LOW | libraries/overleaf-editor-core/lib/operation/index.js | 329 | function transformMoveFileMoveFile(move1, move2) { | CODE |
| LOW | libraries/overleaf-editor-core/lib/operation/index.js | 389 | function transformMoveFileEditFile(move, edit) { | CODE |
| LOW | libraries/overleaf-editor-core/lib/operation/index.js | 409 | function transformMoveFileSetFileMetadata(move, set) { | CODE |
| LOW | libraries/overleaf-editor-core/lib/operation/index.js | 427 | function transformEditFileEditFile(edit1, edit2) { | CODE |
| LOW | libraries/overleaf-editor-core/lib/operation/index.js | 442 | function transformEditFileSetFileMetadata(edit, set) { | CODE |
| LOW | libraries/overleaf-editor-core/lib/operation/index.js | 447 | function transformSetFileMetadatas(set1, set2) { | CODE |
| LOW | …af-editor-core/lib/operation/edit_operation_builder.js | 81 | function isRawDeleteCommentOperation(raw) { | CODE |
| LOW | …af-editor-core/lib/operation/edit_operation_builder.js | 89 | function isRawSetCommentStateOperation(raw) { | CODE |
| LOW | libraries/redis-wrapper/RedisWebLocker.js | 68 | function countIfExceededLockTimeout() { | CODE |
| LOW | libraries/promise-utils/index.js | 280 | function promiseMapSettledWithLimit(concurrency, array, fn) { | CODE |
| LOW | libraries/fetch-utils/index.ts | 129 | async function fetchRedirectWithResponse( | CODE |
| LOW | libraries/validation-tools/parseReq.js | 134 | function setReqValidationModeForTests(m) { | CODE |
| LOW | libraries/validation-tools/parseReq.js | 180 | function resetReqValidationLoggingForTests() { | CODE |
| LOW | libraries/validation-tools/testUtils.js | 27 | function assertValidationErrorBody(rawOrParsedBody, status, fieldSubstring) { | CODE |
| LOW | libraries/validation-tools/handleValidationError.js | 4 | function createHandleValidationError(statusCode = 400) { | CODE |
| LOW | …aries/validation-tools/test/unit/src/testUtils.test.ts | 34 | function asResolvedResultWithParsedBody( | CODE |
| LOW | …s-token-encryptor/scripts/helpers/re-encrypt-tokens.js | 31 | async function reEncryptTokensInCollection({ | CODE |
| LOW | …ies/eslint-plugin/require-cio-snake-case-properties.js | 21 | function getUpdateUserAttributesArg(node) { | CODE |
| LOW | server-ce/hotfix/4.0.6/clean_sl_history_data.js | 13 | async function checkAllProjectsAreMigrated() { | CODE |
| LOW | server-ce/hotfix/3.5.6/clean_sl_history_data.js | 11 | async function checkAllProjectsAreMigrated() { | CODE |
| LOW | server-ce/hotfix/3.5.11/clean_sl_history_data.js | 13 | async function checkAllProjectsAreMigrated() { | CODE |
| LOW | services/clsi/app/js/ConversionManager.js | 181 | async function convertLaTeXToDocumentInDirWithLock( | CODE |
| LOW | services/clsi/app/js/ConversionManager.js | 200 | async function convertLaTeXToDocumentInDir( | CODE |
| LOW | services/clsi/app/js/CompileController.js | 18 | function timeSinceLastSuccessfulCompile() { | CODE |
| LOW | services/clsi/app/js/HistoryResourceWriter.js | 203 | async function loadSnapshotFromClsiCache( | CODE |
| LOW | services/clsi/app/js/HistoryResourceWriter.js | 428 | function changesFromRawChangeOperations(raw) { | CODE |
| LOW | services/clsi/app/js/ConversionController.js | 39 | async function runDocumentToLaTeXConversion(res, path, conversionType) { | CODE |
| LOW | services/clsi/app/js/Png2Pdf.js | 48 | export async function convertPngFilesInCacheDir( | CODE |
| LOW | services/clsi/app/js/CLSICacheHandler.js | 121 | function notifyCLSICacheAboutBuild({ | CODE |
| LOW | services/clsi/app/js/CLSICacheHandler.js | 317 | async function downloadOutputDotSynctexFromCompileCache( | CODE |
| LOW | services/clsi/app/js/CLSICacheHandler.js | 413 | async function downloadLatestCompileCache(projectId, userId, compileDir) { | CODE |
| LOW | …ices/chat/app/js/Features/Messages/MessageFormatter.js | 1 | export function formatMessageForClientSide(message) { | CODE |
| LOW | …ices/chat/app/js/Features/Messages/MessageFormatter.js | 18 | export function formatMessagesForClientSide(messages) { | CODE |
| LOW | services/chat/app/js/Features/Threads/ThreadManager.js | 80 | export async function findAllThreadRoomsAndGlobalThread(projectId) { | CODE |
| LOW | services/chat/app/js/Features/Threads/ThreadManager.js | 133 | export async function deleteAllThreadsInProject(projectId) { | CODE |
| LOW | services/chat/test/acceptance/js/helpers/ChatClient.js | 63 | export async function editGlobalMessageWithUser( | CODE |
| LOW | …shot/servermock/server/MockSnapshotRequestHandler.java | 17 | public class MockSnapshotRequestHandler extends Handler.Abstract { | CODE |
| LOW | …napshot/servermock/server/MockOAuthRequestHandler.java | 11 | public class MockOAuthRequestHandler extends Handler.Abstract { | CODE |
| LOW | …nd/js/features/settings/components/linking-section.tsx | 215 | function SSOLinkingWidgetContainer({ | CODE |
| LOW | …s/components/emails/resend-confirmation-code-modal.tsx | 24 | function ResendConfirmationCodeModal({ | CODE |
| LOW | …ures/settings/components/emails/confirm-email-form.tsx | 343 | function ConfirmEmailSuccessfulForm({ | CODE |
| LOW | …rontend/js/features/settings/components/emails/row.tsx | 74 | function handleLinkAccountsButtonClick() { | CODE |
| LOW | …ngs/components/emails/confirm-secondary-email-form.tsx | 5 | export default function ConfirmSecondaryEmailForm() { | CODE |
| LOW | …econfirmation-info/reconfirmation-info-prompt-text.tsx | 9 | function ReconfirmationInfoPromptText({ | CODE |
| LOW | …ls/reconfirmation-info/reconfirmation-info-success.tsx | 9 | function ReconfirmationInfoSuccess({ | CODE |
| LOW | …emails/add-email/email-affiliated-with-institution.tsx | 4 | function EmailAffiliatedWithInstitution({ onClick, ...props }: OLButtonProps) { | CODE |
| 299 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 66 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 66 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 85 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 85 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 104 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 104 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 123 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 123 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 142 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 142 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …c/ic/wlgitbridge/WLGitBridgeIntegrationTest/state.json | 161 | "content": "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\usepackag | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 112 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 112 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 127 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 127 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 142 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 142 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 157 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 157 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 172 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 172 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| HIGH | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 187 | "\\\\documentclass[a4paper]{article}\\n\\n\\\\usepackage[english]{babel}\\n\\\\u | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.yml | 41 | # Disables email confirmation requirement | COMMENT |
| LOW | docker-compose.yml | 61 | COMMENT | |
| LOW | docker-compose.yml | 81 | ## so the following environment variables must be commented out to avoid compile issues. | COMMENT |
| LOW | docker-compose.yml | 141 | # See https://github.com/jwilder/nginx-proxy for documentation on how to configure the nginx-proxy container, | COMMENT |
| LOW | libraries/overleaf-editor-core/lib/safe_pathname.js | 21 | const BAD_FILE_RX = /(^\.$)|(^\.\.$)|(^\s+)|(\s+$)/g | COMMENT |
| LOW | libraries/overleaf-editor-core/lib/schemas.js | 241 | timestamp: z.iso.datetime().optional(), | COMMENT |
| LOW | libraries/overleaf-editor-core/lib/operation/index.js | 301 | COMMENT | |
| LOW | libraries/object-persistor/src/MigrationPersistor.js | 1 | const AbstractPersistor = require('./AbstractPersistor') | COMMENT |
| LOW | libraries/ranges-tracker/schemas.js | 1 | // @ts-check | COMMENT |
| LOW | libraries/eslint-plugin/french-typography-in-locales.js | 1 | // French typographic spacing rules for JSON string values. | COMMENT |
| LOW | server-ce/config/settings.js | 61 | // --------- | COMMENT |
| LOW | services/clsi/app/js/ResourceStateManager.js | 1 | import Path from 'node:path' | COMMENT |
| LOW | services/clsi/app/js/schemas.js | 1 | // @ts-check | COMMENT |
| LOW | services/clsi/app/js/schemas.js | 21 | // | COMMENT |
| LOW | …/ic/wlgitbridge/bridge/swap/store/S3SwapStoreTest.java | 21 | s3 = null; | COMMENT |
| LOW | …bridge/snapshot/servermock/state/SnapshotAPIState.java | 221 | new HashMap<String, SnapshotPostbackRequest>() { | COMMENT |
| LOW | …ain/java/uk/ac/ic/wlgitbridge/server/Oauth2Filter.java | 101 | Log.debug("[{}] username is 'git', skipping password grant flow", projectId); | COMMENT |
| LOW | …res/source-editor/extensions/changes/reject-changes.ts | 21 | COMMENT | |
| LOW | …res/source-editor/extensions/changes/reject-changes.ts | 41 | // | COMMENT |
| LOW | …res/source-editor/extensions/changes/reject-changes.ts | 61 | // | COMMENT |
| LOW | …/js/features/source-editor/languages/latex/snippets.ts | 1 | // 1. Convert from Ace `$1` to CodeMirror numbered placeholder format `${1}` or `#{1}` in snippets. | COMMENT |
| LOW | …editor/languages/latex/linter/errors-to-diagnostics.ts | 61 | continue | COMMENT |
| LOW | …e-editor/languages/latex/linter/latex-linter.worker.ts | 721 | // math mode on(=true) or | COMMENT |
| LOW | …e-editor/languages/latex/linter/latex-linter.worker.ts | 1601 | // | COMMENT |
| LOW | …/frontend/js/features/source-editor/commands/ranges.ts | 121 | COMMENT | |
| LOW | …tures/ide-react/hooks/use-connection-outage-tracker.ts | 121 | COMMENT | |
| LOW | …features/ide-react/editor/connection-outage-tracker.ts | 81 | // flush has begun and the snapshot is measuring that, not the outage: an ack | COMMENT |
| LOW | …/features/ide-react/editor/share-js-history-ot-type.ts | 81 | // Do not provide invert, only needed for reverting a rejected update. | COMMENT |
| LOW | …es/web/frontend/js/features/history/utils/file-tree.ts | 101 | } | COMMENT |
| LOW | services/web/frontend/js/shared/components/select.tsx | 61 | COMMENT | |
| LOW | services/web/frontend/stylesheets/pages/cms.scss | 161 | padding-top: 0; | COMMENT |
| LOW | services/web/frontend/stylesheets/pages/cms.scss | 181 | // background-color: @ol-blue-gray-5; | COMMENT |
| LOW | services/web/frontend/stylesheets/pages/content.scss | 21 | */ | COMMENT |
| LOW | …res/source-editor/languages/latex/latex-linter.test.ts | 541 | assert.equal(errors.length, 1) | COMMENT |
| LOW | …res/source-editor/languages/latex/latex-linter.test.ts | 561 | // \url{...} | COMMENT |
| LOW | …tor/components/codemirror-editor-autocomplete.spec.tsx | 101 | cy.get('@line').type(' \\') | COMMENT |
| LOW | …tor/components/codemirror-editor-autocomplete.spec.tsx | 121 | COMMENT | |
| LOW | …features/ide-react/unit/share-js-doc-transform.test.js | 1 | import { expect } from 'chai' | COMMENT |
| LOW | …features/ide-react/unit/share-js-doc-transform.test.js | 21 | // Each test drives the scenario until the doc fully drains (hasBufferedOps() === | COMMENT |
| LOW | services/web/config/settings.defaults.js | 121 | process.env.REDIS_MAX_RETRIES_PER_REQUEST || '20' | COMMENT |
| LOW | services/web/config/settings.defaults.js | 141 | // {host: '127.0.0.1', port: 7004} | COMMENT |
| LOW | services/web/config/settings.defaults.js | 661 | // Should static assets be sent with a header to tell the browser to cache | COMMENT |
| LOW | services/web/config/settings.defaults.js | 741 | // Maximum JSON size in HTTP requests | COMMENT |
| LOW | services/web/config/settings.defaults.js | 761 | uploadFolder: Path.resolve(__dirname, '../data/uploads'), | COMMENT |
| LOW | services/document-updater/app/js/RangesManager.js | 361 | } else if (change.op.p === op.p) { | COMMENT |
| LOW | services/document-updater/app/js/DeleteQueueManager.js | 21 | // Maintain a sorted set of project flushAndDelete requests, ordered by timestamp | COMMENT |
| LOW | services/document-updater/app/js/HttpController.js | 661 | // raw shape (see overleaf-editor-core/lib/origin/) that | COMMENT |
| LOW | services/document-updater/app/js/UpdateManager.js | 341 | * @param {Update} update | COMMENT |
| LOW | services/document-updater/app/js/UpdateManager.js | 401 | update.meta.history_doc_length = historyDocLength | COMMENT |
| LOW | …rvices/document-updater/app/js/sharejs/types/simple.js | 1 | // TODO: This file was created by bulk-decaffeinate. | COMMENT |
| LOW | …ces/document-updater/app/js/sharejs/types/syncqueue.js | 1 | // TODO: This file was created by bulk-decaffeinate. | COMMENT |
| LOW | …ices/document-updater/app/js/sharejs/types/text-tp2.js | 21 | // A document is made up of a string and a set of tombstones inserted throughout | COMMENT |
| LOW | services/document-updater/app/js/sharejs/types/model.js | 21 | // | COMMENT |
| LOW | services/document-updater/app/js/sharejs/types/model.js | 61 | // ops:[{op, meta}] | COMMENT |
| LOW | services/document-updater/app/js/sharejs/types/model.js | 81 | // flush it from the cache. | COMMENT |
| LOW | services/document-updater/app/js/sharejs/types/model.js | 601 | } | COMMENT |
| LOW | services/document-updater/app/js/sharejs/types/model.js | 741 | : undefined | COMMENT |
| LOW | services/document-updater/app/js/sharejs/types/text.js | 21 | // {d:'str', p:100}: Delete 'str' at position 100 in the document | COMMENT |
| LOW | …es/document-updater/app/js/sharejs/server/syncqueue.js | 1 | // TODO: This file was created by bulk-decaffeinate. | COMMENT |
| LOW | …rvices/document-updater/app/js/sharejs/server/model.js | 61 | // | COMMENT |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …rvices/web/frontend/js/features/bibtex/citation-key.ts | 11 | * Examples: "John Doe" + "1994" -> "Doe1994" | COMMENT |
| LOW | …st/frontend/features/settings/components/root.test.tsx | 11 | window.metaAttributesCache.set('ol-usersEmail', 'foo@bar.com') | CODE |
| LOW | …nd/features/settings/components/leave-section.test.tsx | 13 | window.metaAttributesCache.set('ol-usersEmail', 'foo@bar.com') | CODE |
| LOW | …features/settings/components/emails/sso-alert.test.tsx | 38 | 'user@example.com' | CODE |
| LOW | …features/settings/components/emails/sso-alert.test.tsx | 48 | 'user@example.com' | CODE |
| LOW | …features/settings/components/leave/modal-form.test.tsx | 12 | window.metaAttributesCache.set('ol-usersEmail', 'foo@bar.com') | CODE |
| LOW | …tend/features/settings/components/leave/modal.test.tsx | 10 | window.metaAttributesCache.set('ol-usersEmail', 'foo@bar.com') | CODE |
| LOW | …tend/features/settings/components/leave/modal.test.tsx | 60 | target: { value: 'foo@bar.com' }, | CODE |
| LOW⚡ | …project-button/modal-content-new-project-form.test.tsx | 178 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magn | CODE |
| LOW⚡ | …project-button/modal-content-new-project-form.test.tsx | 178 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magn | CODE |
| LOW⚡ | …project-button/modal-content-new-project-form.test.tsx | 183 | Accumsan in nisl nisi scelerisque eu ultrices vitae. Metus vulputate eu scelerisque felis imperdiet proin fermentu | CODE |
| LOW⚡ | …project-button/modal-content-new-project-form.test.tsx | 183 | Accumsan in nisl nisi scelerisque eu ultrices vitae. Metus vulputate eu scelerisque felis imperdiet proin fermentu | CODE |
| LOW | …/features/project-list/helpers/render-with-context.tsx | 36 | id: 'fake_user', | CODE |
| LOW | …t/frontend/features/chat/context/chat-context.test.tsx | 24 | id: 'fake_user' as UserId, | CODE |
| LOW | …b/test/frontend/features/chat/components/chat.test.tsx | 16 | id: 'fake_user' as UserId, | CODE |
| LOW | …ontend/features/chat/components/message-group.test.tsx | 43 | id: 'fake_user' as UserId, | CODE |
| LOW | …rontend/features/chat/components/message-list.test.tsx | 33 | id: 'fake_user' as UserId, | CODE |
| LOW | …roup-management/components/publisher-managers.spec.tsx | 45 | cy.findByText('John Doe') | CODE |
| LOW | …es/group-management/components/group-managers.spec.tsx | 45 | cy.findByText('John Doe') | CODE |
| LOW | …res/group-management/components/group-members.spec.tsx | 67 | cy.contains('John Doe') | CODE |
| LOW | …res/group-management/components/group-members.spec.tsx | 261 | cy.contains('John Doe') | CODE |
| LOW | …up-management/components/institution-managers.spec.tsx | 45 | cy.findByText('John Doe') | CODE |
| LOW | …tures/group-management/components/group-users.spec.tsx | 85 | cy.contains('John Doe') | CODE |
| LOW | …p-management/components/managed-group-members.spec.tsx | 94 | cy.contains('John Doe') | CODE |
| LOW | …es/group-management/components/domain-capture.spec.tsx | 5 | this.email = 'user@example.com' | CODE |
| LOW | …ponents/dashboard/managed-group-subscriptions.test.tsx | 50 | email: 'admin@example.com', | CODE |
| LOW | …ponents/dashboard/managed-group-subscriptions.test.tsx | 65 | email: 'admin@example.com', | CODE |
| LOW | …ponents/dashboard/managed-group-subscriptions.test.tsx | 104 | { name: 'ol-usersEmail', value: 'admin@example.com' }, | CODE |
| LOW | …ponents/dashboard/managed-group-subscriptions.test.tsx | 209 | { name: 'ol-usersEmail', value: 'admin@example.com' }, | CODE |
| LOW | …ponents/dashboard/managed-group-subscriptions.test.tsx | 339 | const adminEmail = 'admin@example.com' | CODE |
| LOW | …ures/ide-react/unit/references/reference-index.test.ts | 31 | author: 'John Doe', | CODE |
| LOW | …ures/ide-react/unit/references/reference-index.test.ts | 52 | author: 'John Doe', | CODE |
| LOW | …est/frontend/shared/hooks/use-expand-collapse.test.jsx | 9 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> | CODE |
| LOW | …est/frontend/shared/hooks/use-expand-collapse.test.jsx | 9 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> | CODE |
| LOW⚡ | …es/web/test/frontend/infrastructure/fetch-json.test.js | 72 | body: { message: 'lorem ipsum' }, | CODE |
| LOW⚡ | …es/web/test/frontend/infrastructure/fetch-json.test.js | 79 | 'data.message': 'lorem ipsum', | CODE |
| LOW⚡ | …es/web/test/frontend/infrastructure/fetch-json.test.js | 89 | body: 'lorem ipsum', | CODE |
| LOW⚡ | …es/web/test/frontend/infrastructure/fetch-json.test.js | 96 | 'data.message': 'lorem ipsum', | CODE |
| LOW⚡ | …es/web/test/frontend/infrastructure/fetch-json.test.js | 106 | body: 'lorem ipsum', | CODE |
| LOW⚡ | …es/web/test/frontend/infrastructure/fetch-json.test.js | 113 | 'data.message': 'lorem ipsum', | CODE |
| LOW⚡ | …es/web/test/frontend/infrastructure/fetch-json.test.js | 123 | body: '<!doctype html><html lang="en"><body><p>lorem ipsum</p></body></html>', | CODE |
| LOW | …js/FileTreeDiffGenerator/FileTreeDiffGeneratorTests.js | 30 | const edit = pathname => ({ pathname, textOperation: ['lorem ipsum'] }) | CODE |
| LOW | …roject-history/test/acceptance/js/FileTreeDiffTests.js | 75 | textOperation: ['lorem ipsum'], | CODE |
| LOW | …roject-history/test/acceptance/js/FileTreeDiffTests.js | 191 | textOperation: ['lorem ipsum'], | CODE |
| LOW | …roject-history/test/acceptance/js/FileTreeDiffTests.js | 252 | textOperation: ['lorem ipsum'], | CODE |
| LOW | …roject-history/test/acceptance/js/FileTreeDiffTests.js | 652 | textOperation: ['lorem ipsum'], | CODE |
| LOW | …roject-history/test/acceptance/js/FileTreeDiffTests.js | 662 | textOperation: ['lorem ipsum'], | CODE |
| LOW | services/history-v1/test/setup.js | 36 | 'fake-user-files-gcs', | CODE |
| LOW | …acceptance/js/storage/build_set_content_change.test.js | 348 | 'placeholder' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2787 | // Step 1: Start a resync | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2790 | // Step 2: Push resyncProjectStructure update (lists docs to sync) | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2807 | // Step 3: Flush — processes structure update, adds /main.tex to resyncDocContents | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2815 | // Step 4: Verify the sync state is stuck | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2825 | // Step 5: Push a normal text update (simulating a user edit) | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2838 | // Step 6: Flush again — the text update should be silently skipped | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2846 | // Step 7: Verify the sync state is STILL stuck (text update was skipped) | COMMENT |
| LOW | …rvices/project-history/test/acceptance/js/SyncTests.js | 2860 | // Step 8: Verify a normal resync FAILS because sync is "ongoing" | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2787 | // Step 1: Start a resync | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2790 | // Step 2: Push resyncProjectStructure update (lists docs to sync) | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2807 | // Step 3: Flush — processes structure update, adds /main.tex to resyncDocContents | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2815 | // Step 4: Verify the sync state is stuck | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2825 | // Step 5: Push a normal text update (simulating a user edit) | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2838 | // Step 6: Flush again — the text update should be silently skipped | COMMENT |
| LOW⚡ | …rvices/project-history/test/acceptance/js/SyncTests.js | 2846 | // Step 7: Verify the sync state is STILL stuck (text update was skipped) | COMMENT |
| LOW | …rvices/project-history/test/acceptance/js/SyncTests.js | 2860 | // Step 8: Verify a normal resync FAILS because sync is "ongoing" | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | services/web/frontend/stylesheets/pages/plans-2026.scss | 99 | // ─── Plan cards ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | services/web/frontend/stylesheets/pages/plans-2026.scss | 476 | // ─── Organization logos ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | services/web/frontend/stylesheets/pages/plans-2026.scss | 494 | // ─── Feature comparison table ────────────────────────────────────────────── | COMMENT |
| MEDIUM | services/web/frontend/stylesheets/pages/plans-2026.scss | 806 | // ─── Quotes and FAQs section──────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …s/redis-wrapper/test/scripts/cluster/create-cluster.sh | 62 | # scale up as requested | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tor/components/codemirror-editor-figure-modal.spec.tsx | 700 | // TODO: Add tests for replacing image when we can match on image path | COMMENT |
| LOW | …tor/components/codemirror-editor-figure-modal.spec.tsx | 701 | // TODO: Add tests for changing image size when we can match on figure width | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …rvices/document-updater/app/js/sharejs/types/simple.js | 10 | // Its mostly included for demonstration purposes and its used in a lot of unit tests. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | services/document-updater/app/js/sharejs/types/text.js | 164 | // http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | services/web/types/utils.ts | 37 | * // Usage example: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | libraries/metrics/leaked_sockets.js | 23 | function handleRequest({ request: req }) { | CODE |