Commit Graph
18912 Commits
Author SHA1 Message Date
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
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
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
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 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
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
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
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
David de429e18d8 Merge pull request #35115 from overleaf/dp-library-no-results-state
Library: "No results" state
GitOrigin-RevId: 9c6e8d88abfa7372ca70826101ecd4e7b8fb0ae5
2026-09-17 11:16:09 +00:00
Tim Down 3f26afcb8b Merge pull request #35124 from overleaf/td-dropbox-logo-rename
Rename Dropbox icon file to refresh cache in staging and production

GitOrigin-RevId: 4538892d8db227af3861e88da8e021936db0447d
2026-09-17 11:15:56 +00:00
Tim Down f7ab3d2b1f Merge pull request #34888 from overleaf/td-onboarding-split-test
Implement onboarding split test

GitOrigin-RevId: bf3675437d7fbbffc9374ffb7c0ba95bbb5ec3b8
2026-09-17 11:15:48 +00:00
Jakob Ackermann 9f1a2e058a [web] avoid sending empty sharejs op (#35066)
* [web] add frontend tests for sharejs transform

* [web] extend tests for sharejs transform to flush eventually

* [web] full coverage for sharejs transform

* [web] add tests for sharejs events

* [web] add tests for sharejs callbacks

* [web] avoid sending empty sharejs op

* [web] add tests for resending after reconnecting

* [web] avoid resending of empty sharejs op after reconnecting

GitOrigin-RevId: 226fe47a7069cb877fd5a60454f86cc5855d9a0e
2026-09-17 11:15:33 +00:00
Mathias Jakobsen 3c3dd0fb37 Merge pull request #35037 from overleaf/mj-themed-modals-again
[web] Add support for dark mode modals

GitOrigin-RevId: 34770a6f91d6a331cfaccf86c7dc1a5d151ad25b
2026-09-17 11:15:24 +00:00
Mathias Jakobsen ef8fce67f1 Merge pull request #35033 from overleaf/mj-drop-dark-mode-components-opt-in
[web] Remove explicit dark mode component opt-in

GitOrigin-RevId: b28603a9989bd046039c247ee2cf9f740c9feac0
2026-09-17 11:15:18 +00:00
Mathias Jakobsen e9127933e6 Merge pull request #35079 from overleaf/mj-select-portal-container
[web] Pass container ref for writefull model select component

GitOrigin-RevId: 51a685a0f53df5b1be51dfcbebb144f413dee15e
2026-09-17 11:15:15 +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
roo hutton e5c815129b Merge pull request #34976 from overleaf/rh-cio-beta-program
Expose beta program participation to Customer.io

GitOrigin-RevId: e28d9b41afb2e50e62b7e06c94482f4240c6becc
2026-09-17 11:14:06 +00:00
Mathias Jakobsen 8282519406 Merge pull request #35022 from overleaf/mj-review-styles-fix
[web] Fix review panel styles

GitOrigin-RevId: ceb252e494adfbeef770be2f7e55510a96c93377
2026-09-17 11:13:44 +00:00
Mathias Jakobsen cfb92c3b8f Merge pull request #34938 from overleaf/mj-icon-type-from-name
[web] Tidy iconTypeFromName

GitOrigin-RevId: e597e2ac6cdc8a6c82a3849dbcfcffb659310c45
2026-09-17 11:13:40 +00:00
Mathias Jakobsen 3a3adf5e5a Merge pull request #34980 from overleaf/mj-ide-settings-feature
[web] Consolidate ide settings in `features/ide-settings`

GitOrigin-RevId: cbf0ff069399f418d8cb0d8165628df190046ea9
2026-09-17 11:13:11 +00:00
Jakob Ackermann 8e2edc4d8d [web] remove limit when fetching split-tests (#35010)
GitOrigin-RevId: aa166d28359da83385b632ba2077a85384d08c36
2026-09-17 11:13:03 +00:00
Kristina 4622848a19 [web] optimize process notifications and add monitoring metrics (#34699)
GitOrigin-RevId: 411355cbdbb25d871b9cfb2afbb0ad235041337f
2026-09-17 11:12:59 +00:00
Kristina 28ad3b03b7 [web] add email notifications dry run split test (#34653)
GitOrigin-RevId: 62f73ce3850b994bf2a4a054edd6fa62134213a9
2026-06-26 08:08:18 +00:00
Alexandre Bourdin 33b8f27097 Merge pull request #34489 from overleaf/ab-keydown-event-logging
[web] Trigger full project search / focus mode on lowercase key matching for keyboard shortcuts

GitOrigin-RevId: a1786050c205ed46229b939c6325a3130c6fbcd3
2026-06-26 08:08:14 +00:00
Jakob Ackermann a6c98365d9 [web] use client-side filtering for split tests in admin panel (#34975)
* [web] use client-side filtering for split tests in admin panel

Filtering on non-indexed fields is not allowed with notablescan.

* [web] add initial value for DEFAULT_FILTERS.active

* [web] unset error before fetching split tests

GitOrigin-RevId: 0813873c5a90d57c4fdbfd0043fcc325f00408aa
2026-06-26 08:08:10 +00:00
Jakob Ackermann 1b553c0455 [migrations] only apply non-blocking migrations in CI (#34665)
* [migrations] only apply non-blocking migrations in CI

* [migrations] use "yarn run migrations" instead of "npm run migrations"

GitOrigin-RevId: d9f96db398adf2febcd82333295fb8d5eab741bb
2026-06-26 08:08:05 +00:00
Jakob Ackermann 9fd0d644cf [agents] refine guidance for running tests (#34977)
* [monorepo] fix handling of quoted MOCHA_GREP

* [agents] refine guidance for running tests

- nudge it towards scoped module targets
- nudge it to really run e2e tests when changed
- nudge it towards a11y cypress matchers
- recommend quoting for MOCHA_GREP

* [web] fix forwarding of mocha args from module Makefile

* [monorepo] use BRANCH_NAME_TAG_SAFE for building the ci image name

* [web] also make BRANCH_NAME_TAG_SAFE available in module Makefile

(It's not really needed, but will make copilot happy.)

GitOrigin-RevId: bfda3c8fe2b4f857ef111ac63f94b35a82ad75f8
2026-06-26 08:07:37 +00:00
Eric Mc Sween 4fb8608908 Merge pull request #34884 from overleaf/em-already-in-your-library
Library import: flag entries that are already in the user's library

GitOrigin-RevId: f3c92fb59283631e1a9e78d2e08a3a365981df45
2026-06-26 08:07:21 +00:00
Mathias Jakobsen 75f7f82a3f Merge pull request #34923 from overleaf/mj-left-menu-field
[web] Clean up "left menu" concepts in new editor

GitOrigin-RevId: 9597c1c53af15f3a1587e62176bca36cd7c9069c
2026-06-26 08:07:10 +00:00
Mathias Jakobsen 5dd2c425ac Merge pull request #34912 from overleaf/mj-file-tree-style-cleanup
[web] Clean up file tree scss post editor redesign

GitOrigin-RevId: de2c5f3bd2979600897ffbbdcaead7ef72fa6ae1
2026-06-26 08:07:05 +00:00