Commit Graph

4806 Commits

Author SHA1 Message Date
Andrew Rumble
2f51ad5180 Merge pull request #32782 from overleaf/ar-allow-types-to-pass-through-for-parseReq
[web] fix typing of parseReq

GitOrigin-RevId: 6f10ed8682af7c999497e3a9fbd77a9d25bd7c28
2026-04-29 08:06:04 +00:00
Jakob Ackermann
da11cf2669 [monorepo] fix running tests locally (#33186)
* [monorepo] fix running tests locally

* [web] fix east invocation

* [web] move corepack into entrypoint

* [web] fix running module acceptance tests locally

* [web] fix merged module targets

* [web] remove spurious change

GitOrigin-RevId: 84cf7f8d768d3429c8a98c789acf76f6cecd6e3e
2026-04-29 08:05:42 +00:00
Olzhas Askar
396e158ecd Merge pull request #31991 from overleaf/oa-rename-student-plans
[web] Rename Individual plan names

GitOrigin-RevId: f0133fc4e06542d7c68e0a0211a2ecc32afa733d
2026-04-29 08:05:37 +00:00
Brian Gough
18b2308887 Merge pull request #32835 from overleaf/bg-fix-potential-race-condition-in-archive-manager
fix potential race condition in extractZipArchive

GitOrigin-RevId: 6dc77443e8a58172825d2b03645da05a9887e468
2026-04-28 08:07:26 +00:00
l-obrien-overleaf
6b78b42469 visual updates to optional fields in manual bib entry (#33102)
* visual updates to optional fields in manual bib entry

* omitting onClose from button auto complete props

GitOrigin-RevId: 922695e8eaec83702b482123dc4b4483fe957b78
2026-04-28 08:07:21 +00:00
Domagoj Kriskovic
7eee5809bb [pyodide] collect output files from worker and include in RunCodeResult
GitOrigin-RevId: fa9d501933ee32729e3d083183cd2a14ff969e95
2026-04-28 08:07:16 +00:00
Domagoj Kriskovic
e3a1bce113 Add tests for stderr output handling and execution interruption in PythonOutputPane
GitOrigin-RevId: d383e90dffbabbb597a9cf793a6fabeeff9d6b1a
2026-04-28 08:06:57 +00:00
Domagoj Kriskovic
09af91a936 info stream
GitOrigin-RevId: 5d4cb01c250768ca00e15368b9c616b467e4f9ba
2026-04-28 08:06:47 +00:00
Simon Gardner
8a331bc943 fix: [web] managed group admins unable to re-subscribe (#29634)
GitOrigin-RevId: 5e3d46c39f4657fcc737403a80093b870bc42240
2026-04-28 08:06:27 +00:00
Tom Wells
73cc1b571b Add DS nav page switcher behind overleaf-library flag (#33112)
* Add DS nav page switcher behind overleaf-library flag

- Add shared DsNavPageSwitcher component (Library/Projects nav links + logo)
- Show page switcher in projects sidebar when overleaf-library flag enabled
- Hide 'All projects' filter and sidebar New Project button behind flag
- Move New Project button to content area header when flag enabled
- Prevent full page reload when clicking active nav item
- Change Upgrade button to premium variant when flag enabled
- Add overleaf-library split test to ProjectListController
- Add library-page class to remove rounded corner on /library
- Add Cypress component tests for DsNavPageSwitcher

Closes #33092

GitOrigin-RevId: 2e348da8307bf944d481b54b3a2bcc2eb319e18e
2026-04-28 08:06:22 +00:00
ilkin-overleaf
5d3d58e8f4 Merge pull request #32801 from overleaf/ii-fix-mobile-trash-delete
[web] Fix Delete/Leave dropdown items not working on mobile trashed projects list

GitOrigin-RevId: ce7c79f0c77bb1f0df023159ee6c463c577e26e1
2026-04-28 08:06:07 +00:00
Kristina
b556fd40b5 [web] support email sender customization for email notifications (#33035)
GitOrigin-RevId: 9aa298c233c1f314ef3bdb381c20692bd0d4e212
2026-04-27 08:06:35 +00:00
Kristina
4db3982c08 [web] rename BaseWithHeaderEmailLayout -> BaseEmailLayout (#33026)
GitOrigin-RevId: 16967d34d5128a34ec9ddf382eb664e5a8e45065
2026-04-27 08:06:31 +00:00
Antoine Clausse
e8ea298ee4 [web] Update paywall copy for plans-2026 AI tiers (#33070)
* [web] Update paywall copy for plans-2026 AI tiers

Replace AI-related strings in upgrade/paywall UI when the
plans-2026-phase-1 flag is enabled:

- Add `higher_ai_allowance` ("Higher AI allowance") for paywall bullet
  lists and body text; keep `higher_ai_limits` ("Higher AI limits") for
  the subscriptions dashboard, which uses different wording per spec
- Update three locale strings to use "allowance" instead of "limits":
  `access_all_premium_features_ai`, `plus_additional_collaborators_and_more`,
  `upgrade_to_add_more_collaborators_and_more`
- Fix casing: `upgrade_to_review` "Upgrade to Review" → "Upgrade to review"
- Switch upgrade-benefits and onboarding prompt from `higher_ai_limits`
  to `higher_ai_allowance`
- Fix subscriptions free-plan to show `higher_ai_limits` instead of
  `get_unlimited_ai` under the plans2026 flag
- Fix compile-timeout button to show "Start free trial" under plans2026
  instead of "Start a free trial"
- Update two Cypress assertions for the new track-changes modal title

* Update extracted translations for higher AI allowance

* Remove "start a free trial" with exclamation

* Remove "get unlimited ai" translation entries

GitOrigin-RevId: 12300d94dc81c5407a21d4682d5714d7284c31b0
2026-04-27 08:06:13 +00:00
Mathias Jakobsen
c46fba951e [web] Re-introduce orphan detection in detached PDF (#32994)
GitOrigin-RevId: 07a58d6f7e3c6db8465c62b390e34270c2b4fd67
2026-04-27 08:05:42 +00:00
Mathias Jakobsen
5e675664c6 [web] Cleanup PDFjs instances in visual editor (#33022)
GitOrigin-RevId: 2aa9ab01f88196fb56dc41749977ca33295c964f
2026-04-27 08:05:38 +00:00
Olzhas Askar
d3b60bcb46 Merge pull request #31750 from overleaf/oa-update-student-features
[web] Update student collaborators

GitOrigin-RevId: fa4631c4d6e95eaa4823d1d5db125231c6cd0c00
2026-04-24 08:06:58 +00:00
Jessica Lawshe
7ff114bbef Merge pull request #32396 from overleaf/jel-unlink-sso
[web] Add button so user can unlink Commons SSO

GitOrigin-RevId: 46e0607549341a98beca3873ea63bf091a883e85
2026-04-24 08:06:48 +00:00
Davinder Singh
be5a7b56c8 [WEB + CLSI] Download as docx file feature (#32851)
* using CLSI logic for fetching the project contents and skip the .zip export

* Use unique conversion directory for project-to-docx export to avoid corrupting the shared compile
  directory when a compile runs concurrently

* Remove X-Accel-Buffering header — not needed as CLSI does not run behind nginx

* moving log before sending the data

* Return CLSI stream directly instead of buffering to disk on web

  Previously convertProjectToDocx wrote the CLSI response to a temp file
  on disk, then the controller read it back to stream to the client.
  Now the stream is returned directly and piped to the response,
  avoiding unnecessary disk I/O on the web server.

* Use href redirect for docx export instead of fetching blob into memory

* making functions and files more generic so they can be used in future for other documents exports as well

* adding export-docx split test

* adding unit tests

* adding cypress E2E test

* format:fix

* renaming the route to download from convert

* adding new icon for export docx button

* format:fix

* remove unused showExportDocumentErrorToast export and adding guard against invalid Content-Length header from CLSI

* format:fix

* refactor(clsi): move promisify(parse) into RequestParser

* refactor: generic conversion endpoint with type as route
  param

* refactor: use type→extension map for validated conversion types

* refactor(clsi): remove --standalone flag and fix rejection test

* fixing the href in cypress test

* renaming function

* adding type to Metrics.inc

* fix: rename exportProjectDocument, add WithLock wrapper and metrics type label

* format:fix

* fix: hide docx export from anonymous users and add WithLock wrapper

* format fix

* remove redundant Content-Length validation from DocumentConversionManager

* format:fix

* removing trailing icon

GitOrigin-RevId: e9764fefac2c4b625d23be9e942ea4a8b283c70d
2026-04-24 08:06:10 +00:00
Kristina
b6ec7945f4 [web] update copy in email notifications (#32912)
* add footerMessage to base email template
* add customized subject line and CTA
* add _getBundledActivityList

GitOrigin-RevId: e70c0955485b0892f31e20daa0430faef80b0d64
2026-04-23 08:07:01 +00:00
Kristina
a64d1bbb6a [web] display global off treatment in settings modal (#32942)
* display global disabled state
* show loading indicator while project notification preferences load

GitOrigin-RevId: d7e905aaa3fc7b15b54bf99caeabf60c1e5d8050
2026-04-23 08:06:56 +00:00
roo hutton
dece22ba92 Merge pull request #32871 from overleaf/rh-cio-comms-attributes
Expose remaining marketing properties to customer.io

GitOrigin-RevId: 6956e1faf90ecc650108404fe13b2f6de2eb4d0c
2026-04-23 08:06:04 +00:00
Mathias Jakobsen
2e5d7675ba Merge pull request #32983 from overleaf/mj-change-layout-button-tests
[web] Add tests for ChangeLayoutButton

GitOrigin-RevId: 30299625fc7f3977eedcb86a99937e3a9321bd2c
2026-04-22 08:06:54 +00:00
Alf Eaton
f45eec25f4 Upgrade Cypress (#28858)
GitOrigin-RevId: a5bb02d4f13e5d1aa4426debd4861205d51597f3
2026-04-22 08:06:21 +00:00
Mathias Jakobsen
32255a4e6f Merge pull request #32936 from overleaf/mj-ce-themes
[web] Enable changing overall themes in SP/CE

GitOrigin-RevId: a6aa35e40826faec1001b658603b9f1cc8b0a50d
2026-04-21 08:06:31 +00:00
Eric Mc Sween
628e05a278 Merge pull request #32884 from overleaf/em-editor-switch-by-filetype
[web] Split editor mode preference by file type

GitOrigin-RevId: 2574623c9c1c88cc66de72c19cffb4428a632e96
2026-04-21 08:06:23 +00:00
Malik Glossop
99f1551e4b Merge pull request #32754 from overleaf/mg-native-context-shortcut
Allow Shift+right-click to use native browser context menu

GitOrigin-RevId: 0455283e47511e6e770d389c5cc6994018766f74
2026-04-21 08:06:19 +00:00
Mathias Jakobsen
1110172597 Merge pull request #32927 from overleaf/mj-themed-project-page-teardown
[web] Tear down new-user-system-overall-theme split test and themed-project-dashboard feature flag

GitOrigin-RevId: fe947a603266166332b73a5707bb6cbc9e3d03b9
2026-04-21 08:06:08 +00:00
Domagoj Kriskovic
415db24ba4 [web] Add PythonExecutionContext with per-file output buffers (#32737)
* [web] extract PythonExecutionContext and PythonRunner to manage pyodide execution per file

* [web] define worker URL in python execution context in order to avoid breaking cjs-based tests

* [web] use null check for doc contents to allow running empty python files

* [web] flush buffered editor ops before refreshing snapshot for python execution

* [web] catch getExecutionContext errors in python runner to prevent unhandled rejections

* [web] add PythonRunner unit tests and extract shared WorkerMock

* refactor: rename snapshot to state in PythonRunner

* fix: remove unnecessary path normalization in PythonExecutionProvider

* fix cypress tests

GitOrigin-RevId: 9c55586d982fe8df5b90374227005c6b83e94d1f
2026-04-21 08:05:50 +00:00
Mathias Jakobsen
1ac1410b3b Merge pull request #32901 from overleaf/mj-tabs-context-menu
[web] Add custom context menu for tabs

GitOrigin-RevId: 5ca997bde0c881ad3ba80092915d341f03c609a8
2026-04-21 08:05:35 +00:00
Jakob Ackermann
4ce5620b1d [web] add metrics for mongo access in split test system (#32920)
GitOrigin-RevId: cd93401bace60c003a63914e2898cf1f0defdabc
2026-04-21 08:05:14 +00:00
Jakob Ackermann
ad79c85cea [web] collect mongo stats on native client (#32909)
* [metrics] mongo: fail when command monitoring is not available

* [metrics] mongo: add optional client label to pool metrics

* [web] collect mongo stats on native client

* [metrics] mongo: record namespace of find commands

* [metrics] mongo: add counter for all the commands with collection label

* [web] add missing mock

GitOrigin-RevId: 9f378d8aa8d7167f56cf512681d63ef115c6dd98
2026-04-20 08:05:44 +00:00
Malik Glossop
99c8bd2e1c Merge pull request #32877 from overleaf/mg-fix-bom-applyerror
Preserve UTF-8 BOM when fetching blobs in ProjectSnapshot

GitOrigin-RevId: 758156f8c9ac1d02b5ea06447f759012118e1905
2026-04-20 08:05:06 +00:00
Jakob Ackermann
d56477565c [web] deduplicate getting the project when loading the editor (#32762)
* [web] enable async local storage on all the endpoints

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

* [web] deduplicate getting the project when loading the editor

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

* [web] use ProjectAccess state for computing analytics segmentation

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

* [web] restore ownership of active flag and deferredTpdsFlushCounter

* [web] add missing await

* [web] update unit tests

* [web] add metrics for project access caching

* [web] add missing test mock

* [web] invalidate async local storage when changing project access

* [web] deduplicate project lookup when checking for token access

* [web] add helper function for getting cached ProjectAccess

* [web] add acceptance test for caching of ProjectAccess

* [web] account for saas-only project access in tests

* Revert "[web] enable async local storage on all the endpoints"

This reverts commit 1b82f3b935040e8cfd180d1f6bf4183a655580e2.

* [web] add async local storage to project endpoints in top-50

* [web] invalidate async local storage for project access from modules

Co-authored-by: Jessica Lawshe <jessica.lawshe@overleaf.com>

---------

Co-authored-by: Brian Gough <brian.gough@overleaf.com>
Co-authored-by: Jessica Lawshe <jessica.lawshe@overleaf.com>
GitOrigin-RevId: 3eea7956b24e6f937dc1c17948681063d4dca3ea
2026-04-17 08:07:08 +00:00
roo hutton
c02ba36b83 Merge pull request #32594 from overleaf/rh-cio-migration-mapping
Add customer.io fields for migration comms and marketing initiatives

GitOrigin-RevId: f11ffee255d9582cbfd4c7e285bd6690c0cf1e3c
2026-04-17 08:05:47 +00:00
Chris Dryden
e3ebc52334 Merge pull request #32781 from overleaf/cd-expose-project-files-to-python-output
Cd expose project files to python output

GitOrigin-RevId: 410964cc27dd87e795ccb77365dda8344d72f8bf
2026-04-17 08:05:38 +00:00
Kristina
21ea6ab989 [web] open project notification settings from URL (#32689)
GitOrigin-RevId: 8d6e1c2d7cb63c1597d952d546121f030b79d126
2026-04-16 08:05:36 +00:00
Jakob Ackermann
917d2700c8 [web] use a global shared mock for the metrics module (#32799)
GitOrigin-RevId: 72874ba6c06c2a602b01cc029bc9c71ce3ce8892
2026-04-15 08:05:38 +00:00
Brian Gough
e9b50b08bf Merge pull request #32776 from overleaf/bg-record-file-source-in-filenames
record upload type in temporary filenames

GitOrigin-RevId: 83232be85ad58e03b1ce9da4bb7de54f7a7cfdb0
2026-04-15 08:05:34 +00:00
Mathias Jakobsen
d1ce54b513 Merge pull request #32794 from overleaf/mj-tab-scroll
[web] Allow scrolling with wheel in tab container

GitOrigin-RevId: af81825288387675bdac5d734041299126d3b44c
2026-04-15 08:05:26 +00:00
Antoine Clausse
0b99e8e029 Merge pull request #32545 from overleaf/ii-tooltip-flickering
[web] Fix tooltip show and hide

GitOrigin-RevId: 3dfb7189adc5339b635696c9e84bf714a9a353dd
2026-04-14 08:05:12 +00:00
Jessica Lawshe
2758952781 Merge pull request #32401 from overleaf/jel-sso-unable-to-reconfirm
[web] Return error when user is reconfirming but no user found

GitOrigin-RevId: 4c7b626b0c6ea6a7e883f90d16c5fb1330ffbbc6
2026-04-14 08:04:53 +00:00
Brian Gough
3f75f35a8e Merge pull request #32766 from overleaf/bg-add-missing-unit-test-mocks
add missing mocks for @overleaf/metrics in unit tests

GitOrigin-RevId: 0903c3e26f88f92ef816a64f14ad053f159b31ed
2026-04-14 08:04:46 +00:00
Anna Claire Fields
2487b73962 Implement sanitization of control characters in user input for hackerone (#32521)
GitOrigin-RevId: 859299da44b1c60220592c8f71a90536a5aa34a3
2026-04-14 08:04:36 +00:00
Domagoj Kriskovic
7d032e73d6 [web] include output tracking in run-finished lifecycle event in pyodide
GitOrigin-RevId: 5c72abc35ea4045f9c6aa374a2c51490f8f6cd38
2026-04-14 08:04:13 +00:00
roo hutton
24b16c1304 Merge pull request #32611 from overleaf/rh-cio-email-sdk
Add identifiers to cio calls to avoid profile splits

GitOrigin-RevId: fec8cad4e87f8df910d729bd00acbf26d0931102
2026-04-13 08:04:18 +00:00
Mathias Jakobsen
78c81cd0d5 Merge pull request #32730 from overleaf/mj-conversion-compiler-luatex
[web] Use LuaLaTeX compiler for converted documents

GitOrigin-RevId: e9a0d2020ce40a0ada16eb9afae8b1a08933db49
2026-04-13 08:04:14 +00:00
Domagoj Kriskovic
19c8434653 [web] Add stop button for Python code execution via worker termination
GitOrigin-RevId: f44b429a1d85e66ce89719817efd7acbfc7c4540
2026-04-13 08:04:07 +00:00
Alexandre Bourdin
50db96878d Merge pull request #32642 from overleaf/ab-non-blinking-cursor-editor-setting
[web] Add non-blinking cursor editor setting

GitOrigin-RevId: 078efca21c1e87905894aadc1430c1728a38685d
2026-04-13 08:04:03 +00:00
Jakob Ackermann
3f62eac181 [web] add button for removing collaborator via project admin page (#32585)
* [web] useAsync: clear previous error on retry

* [web] add button for removing collaborator via project admin page

GitOrigin-RevId: c5efaef81600787265d669b5919fb9b1cfdd3ef3
2026-04-10 08:04:44 +00:00