Commit Graph
28339 Commits
Author SHA1 Message Date
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
David cb5e36340b Merge pull request #35246 from overleaf/dp-34792-no-references-empty-state
[web] Show "No references found" empty state in import preview

GitOrigin-RevId: 5f8380863eb35235b0ef13d2138c8769e241d53f
2026-09-17 11:21:02 +00:00
Eric Mc Sween 6cea8580aa Merge pull request #34992 from overleaf/em-dropbox-rate-limits
[third-party-datastore] Handle Dropbox rate limits and per-project file-count limits during sync

GitOrigin-RevId: 0a3c4a06b6444a70394c35cb404c566ef7e25cef
2026-09-17 11:20:59 +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
Mathias Jakobsen 612a6302b4 Merge pull request #35219 from overleaf/mj-themed-select
[web] Add dark mode for Select and OLFormSelect

GitOrigin-RevId: f71b95ff31720e898b33b508c5948b3219b28046
2026-09-17 11:20:44 +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
Brian Gough 0dd69cb143 add clsi metrics for png2pdf (#35239)
* add clsi metrics for png2pdf

* update metrics to use png2pdf boolean

GitOrigin-RevId: 0d96020b659b31cdf16f5d26c128928dae45f8f9
2026-09-17 11:20:34 +00:00
Olzhas Askar 18b3bb7503 Merge pull request #35043 from overleaf/oa-babelfish-2
[web] Babelfish all language files

GitOrigin-RevId: 3889f38b80c511f3cda1f47b9ecf4d8b7d2cdfb6
2026-09-17 11:20:29 +00:00
Tim Down 6a7c91c8fa Merge pull request #35199 from overleaf/td-pricing-features-column-truncation-fix
Fix for pricing page features table column heading being truncated

GitOrigin-RevId: 9e1ffaa9b21add17cc2566e26ab92f526dffa9b5
2026-09-17 11:20:23 +00:00
Malik Glossop 794e813158 Merge pull request #35180 from overleaf/mg-remove-ai-setting
Remove floating menu setting from editor settings

GitOrigin-RevId: dd17a7fed607b65590a919f69b3c22e48f4cc0ec
2026-09-17 11:20:12 +00:00
Malik Glossop 11b9ff5ac8 Merge pull request #34772 from overleaf/mg-writefull-citations-button
Add a `Check citations` option to writefull ai menu

GitOrigin-RevId: c2204c663474a016085668fa708460b3db9517cb
2026-09-17 11:20:09 +00:00
Jakob AckermannandBrian Gough 84c6a68eae [web] enforce size limit on individual files when cloning project (#35211)
* [web] enforce size limit on individual files when cloning project

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [web] improve test coverage

* [agents] speed up running frontend tests

* [web] gracefully handle project too large error

---------

Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: c7b35a3a9688e15a9bb51c61816da82d39e0d29d
2026-09-17 11:20:03 +00:00
Jakob Ackermann f62bd990d4 [clsi-cache] add support for png2pdf (#35200)
GitOrigin-RevId: ebc505528f2a001923acf2d39e6dd43107f5f35e
2026-09-17 11:20:00 +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
Miguel Serrano a84257ff81 [web] AI Feature controls for managed groups (#35193)
* [web] AI Feature controls for managed groups

Adds a Feature Controls section to the group settings with a switch to control whether AI features are enabled or disabled

GitOrigin-RevId: c5d5ed80c0cc3435075bb2c58b43fc08192dd46b
2026-09-17 11:19:42 +00:00
Rebeka Dekany e2a8bf768b Merge intermediate component wrappers into OL-prefixed components (#34996)
* Merge intermediate component wrappers into OL-prefixed components

* Replace all intermediate wrapper consumers with OL-prefixed components directly

* Fix jsx/js files still importing deleted shim components

* Remove duplicate OLNotification imports left by first pass

* Rename OLTagIcon to TagIcon, remove OL prefix

* Rename OLDropdownMenuItem to DropdownMenuItem, remove OL prefix

* Remove OLNotification, use Notification directly

* Move Notification to the main shared component folder

* Update tag-icon import path out of ol/

* Move TagIcon to the main shared component folder

* Update dropdown-menu-item import path out of ol/

* Move DropdownMenuItem to the main shared component folder

* Fix dropdown-menu-item import path to dropdown/ subfolder

* Remove BS5 alias prefixes from shared components

* Restore notification-list wrapper in Notification component

* Add translation for loading button

* Remove redundant import aliasing

* Resolve conflicts

* Restore notification container `notification-list`

GitOrigin-RevId: 24a5af18599a3e02ac6fd61c09cf5a49ef6e0020
2026-09-17 11:19:34 +00:00
Alf Eaton 39e1447258 Use custom MathJax tag factory to avoid multiple label error (#34934)
GitOrigin-RevId: fcfae0d48f4f360f04a55d081b53bef9a4a5420e
2026-09-17 11:19:23 +00:00
Alf Eaton 5fec504ba9 Pass displayMode when rendering math preview (#35165)
GitOrigin-RevId: ea80dcdd6620ffbc3066aaa3f27b751b81d87ba6
2026-09-17 11:19:20 +00:00
Andrew Rumble e0d91517e8 Merge pull request #35225 from overleaf/copilot/set-globals-false-vitest
Set `globals: false` in web vitest configuration

GitOrigin-RevId: 3b809d0b5c47910f56ce81fa229292065b4527f0
2026-09-17 11:19:16 +00:00
Kate Crichton 3f8270e4f6 Merge pull request #35162 from overleaf/jel-domain-uncaptured
[web] Change `it` to `domain capture` in email notification to group admin

GitOrigin-RevId: 17ed6de60c3c7cd70a8c574185c3b328e5ca879c
2026-09-17 11:19:11 +00:00
Kate Crichton 2accb05426 Merge pull request #35063 from overleaf/jel-btn-txt-generate-token
[web] Update text for generate domain verification token button

GitOrigin-RevId: 27345f437d68d0fce7538869083a704ed1a22841
2026-09-17 11:19:07 +00:00
Jakob Ackermann 0354f03612 [eslint-plugin] integrate with build scripts (#35176)
GitOrigin-RevId: cc042f70981da3862f2660c695193190b0c62000
2026-09-17 11:19:04 +00:00
Maria Florencia Besteiro Gonzalez b93d180ee9 Merge pull request #34681 from overleaf/mfb-34187-move-editor-switch-to-right-hand
Introduce shared ToolbarLayout component and move editor switch to right in bibtex visual toolbar

GitOrigin-RevId: 5f61bf8144dc68dfb4adce8a03d43c2dd0de3369
2026-09-17 11:18:57 +00:00
Rebeka DekanyandCopilot Autofix powered by AI f30c23cacc Update in-product doc links to point to docs.overleaf.com (#35184)
* update doc links to point to docs.overleaf.com instead of the old learn wiki

* fix broken link to LaTeX positioning wiki article in figure modal help

* point figure positioning help link to the docs.overleaf.com page

* point figure/table label help links to specific anchors on the captioning-and-referencing-figures doc page

* point figure modal error-help link to the graphicx-loading doc page

* normalize target/rel on docs.overleaf.com links opened in a new tab

* open figure modal and SSO help links in a new tab now that they point off-site

* add eslint rule enforcing rel=noopener noreferrer on docs.overleaf.com links

* extend require-rel-for-docs-links to also check OLButton

* add lint script catching missing rel on docs.overleaf.com links in pug templates

* fix require-rel-for-docs-links autofix crash on valueless rel attribute

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

* add regression test for require-rel-for-docs-links valueless-rel autofix

* revert `target=_blank` on figure modal and SSO help links

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
GitOrigin-RevId: b6111341e1080fd7e4b42f6a1a18c27ea0fd7d8c
2026-09-17 11:18:47 +00:00
Antoine Clausse 5698ef16b3 [web] Fix pricing page table overflow (#35113)
Adding position:relative prevents the visually hidden elements from getting absolutely positioned outside of the scroll area

GitOrigin-RevId: abe9e0ff91f769be39ed39223ebbbe17420af111
2026-09-17 11:18:41 +00:00
Mathias Jakobsen 362b5b982e Merge pull request #35204 from overleaf/mj-command-palette-themed
[web] Make command palette explicitly themed

GitOrigin-RevId: 4fa7221698d46fc346ae59442ca70f857d9b8189
2026-09-17 11:18:27 +00:00
Mathias Jakobsen 1db2898241 Merge pull request #35192 from overleaf/mj-themed-variables-modals
[web] support themed variables in modals

GitOrigin-RevId: dd841f18b796226c2177dce3cdabf85b19d7f1c3
2026-09-17 11:18:24 +00:00
Mathias Jakobsen 8ae794cce3 Merge pull request #34940 from overleaf/mj-submit-button-cleanup
[web] Clean up submit buttons post-editor-redesign

GitOrigin-RevId: 3ad6d02038503294be28bcd4d8926261e12849ab
2026-09-17 11:18:18 +00:00
Rebeka Dekany e8e6bca16c Consistently use cursor: not-allowed for disabled buttons and dropdown items (#35171)
* consistently use cursor: not-allowed for disabled buttons and dropdown items

* fix: exclude anchor .btn.disabled from pointer-events override

* also handle li.dropdown-item and narrow fieldset selector to button.btn

GitOrigin-RevId: d94974370952bbefe74d971d39fa99802a6c3130
2026-09-17 11:18:02 +00:00
Jakob Ackermann 70a9069015 [web] add retries to history calls in compile from history (#35191)
* [web] add retries to history calls in compile from history

* [web] address review feedback

GitOrigin-RevId: f22e0d1515dd22a0a43a0faf28c370e4f196e1da
2026-09-17 11:17:58 +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
Domagoj Kriskovic a2712ce523 [web] Clean up boolean handling of track changes state in the frontend
GitOrigin-RevId: 640380219274e156d5bbac704d82e7ea75e1fee2
2026-09-17 11:17:51 +00:00
Miguel Serrano fa6eccf939 [CE/SP] Hotfix 6.2.1 (#35140)
GitOrigin-RevId: 015db4b74ac04398e0227775daf8aa8782195489
2026-09-17 11:17:47 +00:00
Miguel Serrano 9394f64c54 [web] Minor fixes for AI Disabled state (#34504)
* [web] Minor fixes for AI Disabled state

- Applies opacity to disabled spark icons
- Forces AI controls to be hidden on View state

* Removed redundant check

GitOrigin-RevId: a1389bec3e80a396c77a22294b1d921b4116a75c
2026-09-17 11:17:38 +00:00
Jakob AckermannandBrian Gough 69ccb3c316 [clsi] integrate png2pdf (#34796)
* Add png to pdf converter for optimising image loading in pdftex

* refactor

* move fixtures

* refactor and add unit tests

* Remove gamma correction from PNG processing and update related tests

* Add crc32fast dependency and enhance PNG processing tests

* Add fixture test cases for PNG processing

* fix alpha channel to match pdftex

pdftex always uses an 8 bit alpha channel in the output even for 16 bit images

* Refactor PNG processing to use Option for alpha stream and update related logic

* Enhance PDF writing by adding DecodeParms for alpha stream and optimize PNG encoding process

* Add pixel dimensions support in PNG processing and PDF writing

* [copybara] move clsi excludes

* [clsi] move gitignore rules

* [png2pdf] move into dockerfiles folder

* [png2pdf] use atomic writes

* [clsi] integrate png2pdf

* [saas-e2e] add coverage for png2pdf

* [png2pdf] make compatible with seccomp profile in clsi

* [copybara] remove exclude following move of png2pdf

* [copybara] remove spurious excludes

* fix broken detection of malformed chunk headers

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

* [project-history] add build script flag for depending on doc-updater types

* [png2pdf] run tests as part of clsi pipeline

* [png2pdf] fix calculation of PDF page size

* [web] put png2pdf behind feature flag and make it opt-in

* [web] fix ClsiManager.promises.sendRequest invocation after merge

* extend is_copy_safe function to follow pdftex

see the conditions in pdftex's writepng.c
https://svn.tug.org:8369/texlive/trunk/Build/source/texk/web2c/pdftexdir/writepng.c?revision=78081&view=markup#l575

the criteria are not an exact match because the png crate does not support all the
png chunk types
https://github.com/image-rs/image-png/issues/116

if the criteria result in a png being converted or skipped the final result should be the same.

in one case the conversion will be done by pdftex (at runtime)
in the other case the conversion will be done by png2pdf -

both conversions should give the same result.

* include tests in png2pdf Dockerfile

* [clsi] explicitly disable png2pdf conversion for project conversion

* [clsi] png2pdf: count converted files

* [png2pdf] bump date in docker image tag

* [web] make draft-setting option wider when png2pdf is available

---------

Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: d0d952ee009bf93c72bba2ffe763ae0160d396e4
2026-09-17 11:17:28 +00:00
Miguel Serrano 2b05a3c9df Revert "[git-bridge] Setup ArtifactRegistry for maven central proxy (#35167)" (#35178)
This reverts commit ae949219b2e19d969f74e103b502177e1a3743a2.

GitOrigin-RevId: 81be00d03c931f22993df2eb79640ce52205464a
2026-09-17 11:17:19 +00:00
Miguel Serrano ae47a39cdc [git-bridge] Setup ArtifactRegistry for maven central proxy (#35167)
* [git-bridge] Setup ArtifactRegistry for maven central proxy

GitOrigin-RevId: ae949219b2e19d969f74e103b502177e1a3743a2
2026-09-17 11:17:07 +00:00
Kristina c2ba7955dc [web] adjust styles in notifications settings (#35143)
GitOrigin-RevId: 5867072acd6e38c1a00a252b13e4ef4169ef7b79
2026-09-17 11:17:01 +00:00
Domagoj Kriskovic 74609f74ed Add Cmd+Shift+X strikeout shortcut to the visual markdown editor
GitOrigin-RevId: d76fce965c0bffd393f5ca5176d3b61453ac2f93
2026-09-17 11:16:55 +00:00
Domagoj Kriskovic a8d888ea0c Toggle bold/italic off on Cmd+B / Cmd+I when already applied
In the visual markdown editor, Cmd+B (bold) and Cmd+I (italic) now remove
the markdown delimiters when the cursor or selection is already inside a
bold/italic span, instead of always adding another wrapper. Mirrors the
toggle behavior of the visual LaTeX editor.

Issue #34826

GitOrigin-RevId: d9ced8493dfaa28b61f3f0d51479d95f62e0bc4a
2026-09-17 11:16:51 +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
Olzhas Askar dd48dfa093 Merge pull request #35158 from overleaf/oa-compile-timeout-final
[web] Compile timeout CTA

GitOrigin-RevId: f64c651332a32c293da1f3256cf9443413878d63
2026-09-17 11:16:42 +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
Copilot c15352a9d9 Silence "Request aborted" errors from multer when client disconnects mid-upload (#33662)
GitOrigin-RevId: 378358db1ef45746c1c7bfc08277e01d4a0720c6
2026-09-17 11:16:35 +00:00
Anna Claire Fields bdcb79c6fe third party code inventory changes (#34732)
GitOrigin-RevId: dc691ec60ade749b2fa9a14fac857840589d34ea
2026-09-17 11:16:31 +00:00
Mathias Jakobsen 68d540c2fa Merge pull request #35118 from overleaf/mj-survey-beta-options
[web] Add beta filtering to survey configuration

GitOrigin-RevId: b1d8f5266b48278ee775208bcaa68bb960be3250
2026-09-17 11:16:25 +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
John Lees-Miller aa97f5794c [git-bridge] fix symlink handling (#35133)
GitOrigin-RevId: 282823db63f64bfae950b00e77a6cdc2a048b0ce
2026-09-17 11:16:15 +00:00