Commit Graph
111 Commits
Author SHA1 Message Date
Lucie Germain 8a37955106 [Security upgrade] bump @opentelemetry/sdk-node family in libraries/metrics
GitOrigin-RevId: f462289e88c3c021fa32561a96344d76939da4a0
2026-09-17 11:39:57 +00:00
Lucie Germain c3eac2dd35 Bump brace-expansion to 2.1.2 via lockfile (#35814)
GitOrigin-RevId: a6378e95920c321f69c313289dc64c9629a3d7bb
2026-09-17 11:39:54 +00:00
Jakob Ackermann a77a4782cc [history-v1] add setContent endpoint (#35799)
* [history-v1] add setContent endpoint

* [history-v1] refactor setContent to return a change+v

* [history-v1] make typescript happy

GitOrigin-RevId: e2cb0281367c01aa9cd842f250f2016d591ec0fc
2026-09-17 11:39:09 +00:00
Lucie Germain e814176bba Bump protobufjs resolution to 7.6.5 (covers GHSA-j3f2-48v5-ccww) (#35807)
GitOrigin-RevId: 76373e5c7afcad21fc44c058e5eaaa3633e992a4
2026-09-17 11:38:48 +00:00
Brian Gough 793e9e6796 Merge pull request #35819 from overleaf/lg-fast-uri-security-upgrade
[Security upgrade] bump fast-uri to 3.1.4 in root workspace

GitOrigin-RevId: b4d92b73162c848b1289d543763970af5ce89a50
2026-09-17 11:38:22 +00:00
Brian Gough 21ec38d0fa Merge pull request #35813 from overleaf/lg-svgo-security-upgrade
[Security upgrade] bump svgo to 4.0.2 in root workspace

GitOrigin-RevId: 962a8c79ccf50119094de970be32599353064482
2026-09-17 11:38:18 +00:00
Lucie Germain ebf72a6a93 Bump js-yaml to 4.3.0 via lockfile (#35811)
GitOrigin-RevId: 1d938fecb596dad40ac523daee0aef6cc1129dc0
2026-09-17 11:37:48 +00:00
Andrew Rumble e4bbf74476 Merge pull request #35812 from overleaf/lg-shell-quote-security-upgrade
[Security upgrade] bump shell-quote to 1.10.0 in root workspace

GitOrigin-RevId: 935aa24b352d5f5705609c83f5ea8997df7be425
2026-09-17 11:37:19 +00:00
Lucie Germain 2320967c1b Bump immutable to 4.3.9 via lockfile (#35810)
GitOrigin-RevId: be6149988462a97860074bc8766fe37b0c0ad19e
2026-09-17 11:37:13 +00:00
Jakob Ackermann 94cad14caf [chat] migrate to express with strict zod schema (#35742)
GitOrigin-RevId: edffacde0c069768def849f45364d519d9f76f1e
2026-09-17 11:36:35 +00:00
Antoine Clausse f9a2a0ad6c Merge pull request #35733 from overleaf/lg-axios-security-upgrade
[Security upgrade] bump axios from 1.16.0 to 1.18.1 in services/web

GitOrigin-RevId: 9c413da00f137873b964b956364b742d366869eb
2026-09-17 11:36:20 +00:00
Andrew Rumble da3adace36 Merge pull request #34850 from overleaf/acf-ar-yarn-pnp-redux
[monorepo] yarn pnp redux

GitOrigin-RevId: fb04cab879b04ead2665b5e985a44053ceea33f3
2026-09-17 11:35:26 +00:00
Miguel Serrano 44f053129f [web] Update @aws-sdk/client-ses to v2 (CE/SP only) (#35531)
This new version is compatible with the current nodemailer version.

GitOrigin-RevId: 8244fa8fc42edbc6aa7b702ec7975e9eee7f9879
2026-09-17 11:35:20 +00:00
Lucie Germain 2dee2b31d9 [Security upgrade] bump adm-zip to 0.6.0 in tools/saas-e2e and server-ce/test (#35608)
Fixes GHSA-xcpc-8h2w-3j85 / CVE-2026-39244 (high): a crafted ZIP archive
declaring a huge uncompressed size could force an unbounded Buffer.alloc
and OOM the process.

adm-zip 0.6.0 ships built-in TypeScript types, so @types/adm-zip is
dropped from both workspaces' devDependencies to avoid duplicate/
conflicting type declarations.

GitOrigin-RevId: dffc1c38a10f42d09c799ae768f1ffcfc0e09328
2026-09-17 11:34:07 +00:00
Lucie Germain a22f4ad1c5 [Security upgrade] bump websocket-driver to 0.7.5 (#35559)
Fixes GHSA-xv26-6w52-cph6 (critical): message corruption via abuse of
protocol length headers in the WebSocket frame parser.

GitOrigin-RevId: 678d85f1132e55cfeeef266a65c2deb869fe41ae
2026-09-17 11:33:54 +00:00
f950d8ffde Replace the bibtex entries table with a card layout (#35565)
* Replace the bibtex entries table with a card layout

Render each reference as a card (citation key, title, author, year and an
error indicator) instead of a table row. Drop @tanstack/react-table, which was
the last consumer of the dependency, and keep @tanstack/react-virtual for
virtualization.

- Add a compact card variant (via a `compact` prop) for the bibtex editor:
  tighter spacing, no border-radius, and cards separated by a single collapsing
  border rather than a gap.
- Add hover and green selected/selected+hover states.
- Move the select-all checkbox out of the scrolling list into the editor
  toolbar so it stays fixed while the list scrolls.
- Lay out title/author/year with nested flex so author and year wrap together.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* In progress dark mode for review

* Slight design changes & updated dark mode

* Small tweaks to dark mode secondary text, and light mode border

* Truncate long authors, also use .summarize() on authors

* Refactor comments: reduce verbose, remove unnecessary

* Fix empty line

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Tom Wells <wellsthomas@hotmail.co.uk>
GitOrigin-RevId: feaa6718484eefb9e9efb44b99f456910697cb17
2026-09-17 11:33:35 +00:00
Andrew Rumble 15fb07da65 Merge pull request #35570 from overleaf/ar-remove-security-pins
[monorepo] remove pins responsible for security alerts

GitOrigin-RevId: f009618c05accc95b20a4bf4e32ebf26cfc6853b
2026-09-17 11:33:20 +00:00
Mathias Jakobsen d8f167dec2 Merge pull request #35293 from overleaf/mj-zod-history-ot
[real-time] Allow history-ot operations in real-time

GitOrigin-RevId: 4b1b9e4c1a214edf49c5eface46a4d309ba41b0d
2026-09-17 11:31:49 +00:00
Brian Gough 9d57689112 Merge pull request #35549 from overleaf/copilot/fix-prettier-caching-issue
Work around Prettier stale-cache parse-error behavior in root format commands

GitOrigin-RevId: 1669047b3f52c15fcbff8bff41fcb1ca1257418d
2026-09-17 11:31:43 +00:00
Andrew Rumble 05423f1a1d Merge pull request #34344 from overleaf/copilot/convert-fetch-utils-to-es-modules
Convert @overleaf/fetch-utils to TypeScript ESM with Vitest, enable noImplicitAny, fix downstream regressions, and align buildscript generation

GitOrigin-RevId: e060152f056cbae31da0650fb22471525835bd5e
2026-09-17 11:24:05 +00:00
Andrew Rumble 152004a600 Merge pull request #35095 from overleaf/lg-node-24-17-platform-compat
[Node 24.17.0][Platform packages] Fix node-fetch keep-alive false positive and bump clsi yauzl for Node 24.17

GitOrigin-RevId: 9e0382533d45e1e3b3ed88d4ccfc577591666e10
2026-09-17 11:24:02 +00:00
John Lees-Miller e4dd97936a Remove mirror-documentation job (#35399)
* Remove mirror-documentation job

* Update yarn.lock after removing mirror-documentation

GitOrigin-RevId: b6be94f44ff4d2aaeda14798f7232cf89a54eeee
2026-09-17 11:23:23 +00:00
Andrew Rumble 5a602e1b1d Merge pull request #35290 from overleaf/ar-stop-using-unix-formatter-locally
[monorepo] switch from unix to stylish formatter for lint

GitOrigin-RevId: e3c84e556941b4747e469a123a99d5731697976d
2026-09-17 11:21:32 +00:00
Domagoj Kriskovic 6a736ecc62 refactor(third-party-references): replace simple-oauth2 with a custom OAuth2 client (#34917)
* [3rd-party-references] replace simple-oauth2 with openid-client

* Refactor OAuth2 handling: replace openid-client with custom OAuth2Client implementation

* Guard unconfigured OAuth2 providers with a controlled error

Providers whose client id/secret env vars are unset now stay registered
but without an OAuth2 client. Using one throws a controlled OError
("OAuth2 provider is not configured") from getOAuth2Client rather than a
TypeError from calling a method on undefined or sending "undefined"
credentials.

* Guard unconfigured OAuth2 providers with a controlled error

* Add clarification comments on OAuth 2.0 client ID and secret encoding requirements

* Add logging for invalid token expiration dates in parseToken function

GitOrigin-RevId: b17884ccba171ff4db8e6a698b3d4dcdca24e8ae
2026-09-17 11:21:13 +00:00
Jakob Ackermann 926b7c534b [agents] allow running all the test-runner skill commands (#35247)
* [agents] allow running all the test-runner skill commands

* [agents] move linting into AGENTS.md

* [agents] double down on permissions and cwd

* [saas-e2e] add support for MOCHA_GREP

* [saas-e2e] fail fast by default outside CI

* [agents] avoid need for Codespace detection

* [agents] work around missing trust prompt in Codespaces

* [saas-e2e] e2e_test_setup: merge split-tests in dev-env

GitOrigin-RevId: f1c1cd2a732e98b2e6125ef86a2b2cda5d3aabb6
2026-09-17 11:20:53 +00:00
Kristina 1765f6be51 Merge pull request #35223 from overleaf/lg-linkify-it-security-upgrade
[Security upgrade] bump linkify-it to patched version via resolutions

GitOrigin-RevId: a3e689de7d4842c00b2d6d5ac7631224ce76ad1a
2026-09-17 11:20:41 +00:00
Tim Down 6ed39f18b7 Merge pull request #17214 from overleaf/td-latexqc-remove-babel-polyfill
Remove @babel/polyfill from latexqc service

GitOrigin-RevId: 5d649b14ade41fc2fce350419443f6db71e9d161
2026-09-17 11:20:38 +00:00
Lucie GermainandClaude Opus 4.8 cc741ec2f1 [Security upgrade] bump multer 2.1.1 -> 2.2.0 (web + clsi) (#34916)
GHSA-72gw-mp4g-v24j / CVE-2026-5079 — DoS via deeply nested field names,
patched in 2.2.0. multer is a direct dep of web and clsi (file uploads).

- bump multer to 2.2.0 in services/web and services/clsi
- re-target the Overleaf local patch (attach files with no filename as
  'undefined' instead of skipping) from 2.1.1 to 2.2.0, kept as a scoped
  root resolution to match the repo's patch convention

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
GitOrigin-RevId: 0d10137b521ebaacee71fc41adba32c4530a4041
2026-09-17 11:19:49 +00:00
Lucie GermainandClaude Sonnet 4.6 acdec8dd6b [Node 24.17.0][Core packages] Bump yauzl to ^3.4.0 in history-v1 and web for Node 24.17 (#35093)
* Bump yauzl to ^3.4.0 in history-v1 and web for Node 24.17

yauzl 3.x hangs extracting a large zip entry under Node 24.17 due to
stream backpressure changes. Fixes zip/project uploads, open-in-overleaf
template tests, and the SaaS-E2E "templates" test.

Also fix the open-in-overleaf acceptance test mock to serve the "too large"
fixture with a single res.end (Content-Length) instead of a backpressure-
ignoring res.write loop, which Node 24.17 surfaces as ECONNRESET (404)
instead of the expected 422.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Use plainTextResponse for large-file test fixture

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
GitOrigin-RevId: 55627b7c2c91959f0d1a7f3419467455edb06c9f
2026-09-17 11:19:46 +00:00
Jakob Ackermann 0354f03612 [eslint-plugin] integrate with build scripts (#35176)
GitOrigin-RevId: cc042f70981da3862f2660c695193190b0c62000
2026-09-17 11:19:04 +00:00
Lucie GermainandClaude Opus 4.8 d2c848320e [Security upgrade] bump js-yaml to 4.2.0 in root workspace (#34925)
* [Security upgrade] bump js-yaml 4.1.1 -> 4.2.0 in root workspace

GHSA-h67p-54hq-rp68, patched in 4.2.0. js-yaml 4.x is pulled at runtime via
the patched referer-parser (web) plus many dev/build consumers.

Bumped the existing scoped resolution referer-parser/js-yaml ^4.1.1 -> ^4.2.0
(security floor on the patched-parent path) and re-resolved all 4.x to 4.2.0
(yarn up -R). The js-yaml 3.x line (3.14.2) is a different major, unaffected.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Bump js-yaml range in referer-parser patch to ^4.2.0 for consistency

The referer-parser/js-yaml resolution override forces js-yaml to 4.2.0,
but the local patch still declared ^4.1.0. Align the patch's declared
range with the resolution. Addresses Jakob's review comment on #34695
(discussion_r3440549168).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Make patched-parent realignment a mandatory Type B step in yarn-security-update skill

The patch-realignment instruction was a soft 'for consistency' parenthetical;
a session reading the rule acted only on 'use a resolution' and dropped the
patch edit, leaving the resolution at ^4.2.0 while the referer-parser patch
still declared ^4.1.0 (PR #34925). Promote it to an explicit mandatory step.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Fully resolve js-yaml to 4.2.0 and stop patching its range in referer-parser

Add a scoped resolution for @istanbuljs/load-nyc-config/js-yaml so the last
sub-4.2.0 instance (3.14.2, GHSA-h67p-54hq-rp68) is forced to 4.2.0 too;
load-nyc-config uses js-yaml.load(), which is 4.x-compatible.

Drop the js-yaml and mocha dependency edits from the referer-parser patch:
editing a patched package's dependencies has no effect on resolution, so the
scoped resolution is the entire fix. Update the yarn-security-update skill to
match (patched parents route to Type B; do not edit the patch).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Combine js-yaml resolutions into a single global override

Replace the two scoped js-yaml resolutions (referer-parser/js-yaml and
@istanbuljs/load-nyc-config/js-yaml) with one global "js-yaml": "^4.2.0". Every
js-yaml consumer should reach the security floor and none needs an older major,
so the global override is equivalent and tidier (reviewer request).

Note the scoped-vs-global tradeoff in the yarn-security-update skill.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
GitOrigin-RevId: 1738cbc04f4cacbfb6880ba6f176a192aa4a03f7
2026-09-17 11:17:55 +00:00
Jakob Ackermann 966728d5a2 [clsi-lb] add health check and alerting for stalled poll loop (#35117)
* [clsi-lb] add settings entry for pollInterval

* [clsi-lb] add health check and alerting for stalled poll loop

* [k8s] clsi-lb: switch livenessProbe to config writer

* Revert "[k8s] clsi-lb: switch livenessProbe to config writer"

This reverts commit ae0c8624528db4bdf35a27fac836ffeecfc1682c.

* [clsi-lb] fix docker build

* [clsi-lb] throw when app.listen fails

* [clsi-lb] expose gc

* [clsi-lb] refactor lastPolledAt to Date

GitOrigin-RevId: 88542d9c10d5f63a4283ffab32badcdea1d3a95a
2026-09-17 11:16:48 +00:00
Lucie Germain a897780ca7 [Security upgrade] bump tmp to 0.2.7 in root yarn.lock (#34641)
GitOrigin-RevId: cc473f209393f9f44a1ef5ed6be1f840f22d6f07
2026-09-17 11:16:38 +00:00
Anna Claire Fields bdcb79c6fe third party code inventory changes (#34732)
GitOrigin-RevId: dc691ec60ade749b2fa9a14fac857840589d34ea
2026-09-17 11:16:31 +00:00
Chris Dryden 5778239fe2 Merge pull request #34953 from overleaf/cd-migrate-tpds-to-esm
Migrate `third-party-datastore` service from CommonJS to ESM syntax

GitOrigin-RevId: 5f1bbe827a0fd21c5ddb0be0e2cddce7d4f59a83
2026-09-17 11:16:19 +00:00
5dccf3b62c [Security upgrade] bump socket.io-client fork to ws@^8.21.0 (#35060)
* bump socket.io-client to overleaf fork 0.9.17-overleaf-6

Fixes GHSA-96hv-2xvq-fx4p (ws memory exhaustion DoS) by bumping the
overleaf/socket.io-client fork to a version that declares ws@^8.21.0
instead of ws@^1.1.5. The existing ws@npm:^8 resolution pins it to
8.21.0, removing ws@1.1.5 from yarn.lock entirely.

Depends on overleaf/socket.io-client#6.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* use 0.9.17-overleaf-6 tag for socket.io-client

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* use the socket.io-client-0.9.17-overleaf-6 release

* provide ws module for real-time acceptance tests

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Brian Gough <briangough@users.noreply.github.com>
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: 2d9a42f90bcf95a3a8f053df4c0092c4fbc26422
2026-09-17 11:15:42 +00:00
Lucie Germain 210ced0d31 Merge pull request #33361 from overleaf/copilot/remove-direct-use-of-body-parser
Remove direct use of body-parser in favour of express built-ins

GitOrigin-RevId: 656c5f216daf68e86d53ae07d272e080bd5ab27f
2026-09-17 11:14:46 +00:00
Andrew Rumble 6be5db7667 Merge pull request #34926 from overleaf/lg-otel-root-security
[Security upgrade] bump @opentelemetry/core to 2.8.0 (OTEL family)

GitOrigin-RevId: dd45fba9999de03b44ef6bd38ed4dedba0900a50
2026-09-17 11:14:42 +00:00
Andrew Rumble 834730d011 Merge pull request #34580 from overleaf/lg-security-grpc-grpc-js
[Security upgrade] bump @grpc/grpc-js from 1.14.3 to 1.14.4

GitOrigin-RevId: bda9e568e55f6e536cfd6d28a9453726aca2c39c
2026-09-17 11:14:37 +00:00
Brian Gough efaeb90e39 Merge pull request #34924 from overleaf/lg-tar-root-security
[Security upgrade] bump tar to 7.5.16 in root workspace

GitOrigin-RevId: 73ac951792ce3d8ac8e9c01508bd467932621f49
2026-09-17 11:14:33 +00:00
Mathias Jakobsen 60051a1c9f Merge pull request #34920 from overleaf/lg-form-data-security-upgrade-v2
[Security upgrade] bump form-data to patched versions in root workspace

GitOrigin-RevId: 77aa4482bee6c84ea71255817263b26023d8943f
2026-09-17 11:14:27 +00:00
Andrew Rumble 25d625d4ee Merge pull request #34918 from overleaf/lg-dev-tooling-security
[Security upgrade] bump webpack-dev-server, http-proxy-middleware, launch-editor (dev tooling)

GitOrigin-RevId: 50f2ffcf575beaf35d243f7059c82cb5210afbf8
2026-09-17 11:13:32 +00:00
Eric Mc Sween c645215afc Merge pull request #34907 from overleaf/em-promisify-github-sync
Promisify github-sync

GitOrigin-RevId: ac68f3f18ad211e204631d80bd5d4354ea23aaff
2026-06-26 08:07:30 +00:00
Eric Mc Sween 2c54574377 Merge pull request #34922 from overleaf/lg-vite-security-upgrade-v2
[Security upgrade] bump vite to 7.3.5 in root workspace

GitOrigin-RevId: 278475d98e23f0679ec45993e2a6816e9b93eb64
2026-06-26 08:07:25 +00:00
Andrew Rumble bbf5586935 Merge pull request #34919 from overleaf/lg-undici-security-upgrade
[Security upgrade] bump undici to 7.28.0 in root workspace

GitOrigin-RevId: 39a6fb92235c6453fbd6106c05af66fb1d089607
2026-06-26 08:06:49 +00:00
Brian Gough 29c8717b60 Merge pull request #33845 from overleaf/lg-ws-security-upgrade
[Security upgrade] pin ws@^8 to 8.21.0

GitOrigin-RevId: 40b839757122c1116debe8b7ebfa4eba9187bfa8
2026-06-24 08:06:51 +00:00
Andrew Rumble 255a6242cb Merge pull request #34340 from overleaf/ar-things-that-dont-need-to-be-pinned
[dependency-management] find unnecessary pins script

GitOrigin-RevId: b935ee7ae72c0339ea58f14d5f0a991ed4ae350c
2026-06-24 08:06:36 +00:00
Brian Gough c6a46fbdad Merge pull request #33961 from overleaf/lg-qs-security-upgrade
[Security upgrade] pin qs to 6.15.2 in root yarn.lock

GitOrigin-RevId: 4819f0a1f9b41821ccda354a309d190d8395ef56
2026-06-24 08:05:31 +00:00
Brian Gough 81f85293f2 Merge pull request #33656 from overleaf/lg-protobufjs-security-upgrade
[Security upgrade] Pin protobufjs to 7.6.3 and @protobufjs/utf8 to 1.1.1 via resolutions

GitOrigin-RevId: 7d71d564d7296af76f04fda8b35f178c5014a9b9
2026-06-24 08:05:26 +00:00
Jakob Ackermann 6b084424b5 [monorepo] fix running make lint from root (#33559)
* [monorepo] remove spurious package-name field from buildscript.txt

* [monorepo] align variables/paths across build script variants

* [monorepo] align linting/test setup for jobs/libraries

* [monorepo] fix "make lint/lint_fix" from root

* [wiki-algolia] integrate with yarn workspace

GitOrigin-RevId: a0954f2936d03cd4a69b3f2c8098d9ee2e361993
2026-06-23 08:06:37 +00:00