Commit Graph

371 Commits

Author SHA1 Message Date
yu-i-i
8b41eaddb8 Track changes / comments: update backend to support frontend changes 2026-05-19 15:49:15 +02:00
yu-i-i
2f14135b95 Enable track changes and comments feature 2026-05-19 15:49:12 +02:00
Mathias Jakobsen
6538c00742 Merge pull request #33690 from overleaf/mj-prune-deleted-tabs
[web] Prune non-existent tabs when file tree changes

GitOrigin-RevId: 97e68a88a201acc2d1e582911ca64e1f72f9bfe1
2026-05-15 08:08:19 +00:00
Domagoj Kriskovic
ff53705bfa Refactor Python output pane toolbar for improved layout and styling
GitOrigin-RevId: b6d838e5c9bd8023bf12df976dad0c50564a0b2f
2026-05-14 08:06:22 +00:00
Mathias Jakobsen
6b28a4ee5a Merge pull request #33560 from overleaf/mj-conversion-cleanup
[clsi+web] Small cleanups and improvements to conversions / exports

GitOrigin-RevId: 300adfbb91e89f754ee7f835db792ccb50b27613
2026-05-12 08:06:17 +00:00
Mathias Jakobsen
62d92b70dd Merge pull request #33341 from overleaf/mj-two-step-export-web
[web] Add two-step pandoc conversion download

GitOrigin-RevId: 093f435a497a7583d2b4d23558415cc442f84553
2026-05-12 08:06:13 +00:00
Domagoj Kriskovic
5d171066c2 Add analytics events for Python script runner
GitOrigin-RevId: 53f0fec09fc2a4ccdf1a6f77345741bed29d8a8b
2026-05-11 08:05:34 +00:00
Mathias Jakobsen
5dc67db403 Merge pull request #33089 from overleaf/ds-export-md-files-pandoc
[WEB + CLSI] Download as markdown

GitOrigin-RevId: 181eddf2513e9c5edacbab37e93f9cac2191ee1a
2026-05-08 08:09:07 +00:00
Mathias Jakobsen
eddcc5a42e Merge pull request #32857 from overleaf/ds-pandoc-import-md
[WEB + CLSI] Import markdown files using pandoc

GitOrigin-RevId: adad7831ddb13a8fcb8063871166bde13cbbf1b6
2026-05-08 08:09:02 +00:00
Chris Dryden
df01c7e9e1 Merge pull request #33162 from overleaf/cd-upload-generated-files-to-filetree
Cd upload generated files to filetree

GitOrigin-RevId: 2d2774e57c42452fba3a2582fde7153ffcde59bf
2026-05-07 08:07:06 +00:00
Domagoj Kriskovic
672e01c703 Enforce output file count and size limits in the Pyodide worker
GitOrigin-RevId: 2cc61613381243d810a8cb9e1c2c32fa9e751da7
2026-05-07 08:06:46 +00:00
Davinder Singh
8b47dedbea [WEB] Update copy for docx import (#33239)
* removing link from translation weve_converted_your_content_to_latex

* adding the translations on choose document modal

* adding beta icon

GitOrigin-RevId: b734447474e41e57efacb589aadf67e4124d4924
2026-05-06 08:06:10 +00:00
Antoine Clausse
590c2ab2e2 [web] Fix AI quota paywall upgrade CTA to use interstitial page (#33376)
* Update hrefs

* Revert link on expired subscriptions

* Revert hrefs of other buttons

* Use `plans-2026-phase-1` feature flag

GitOrigin-RevId: 3fe489c6ec192adc2fb836b07429dc2a11f9a57f
2026-05-06 08:05:53 +00:00
Kristina
a6ac7bdd41 [web] catch failed requests to project/doc metadata endpoints (#33139)
Unhandled promise rejections from these fire-and-forget calls were
surfacing in Sentry. Add .catch(debugConsole.error) to suppress them.

GitOrigin-RevId: a14cd0a3956a2b551210723ad56e7ec5e354a7a7
2026-05-05 08:05:26 +00:00
Davinder Singh
30e0e6adaf adding side menu for download option (#33307)
* adding side menu for download option

* fixing the E2E tests to adapt the new behaviour

GitOrigin-RevId: d96df4906a40006d36ac0ea525d74a1644ec4085
2026-05-01 08:06:57 +00:00
Brian Gough
7f7556cf6a Merge pull request #33219 from overleaf/bg-fix-collapsible-panel-flicker
Fix flicker when switching between editor and PDF views

GitOrigin-RevId: 1f6543c0046dc458fa174aa9b54985934a7437fa
2026-05-01 08:05:56 +00:00
Domagoj Kriskovic
9e677a2c1e Use overleaf CDN for loading pyodide packages
GitOrigin-RevId: e17ff3387166421a546a9519786d77ba12cdffc4
2026-04-30 08:05:23 +00:00
Chris Dryden
6c9560cd4e Merge pull request #32943 from overleaf/cd-auto-install-python-packages
Auto-install python packages from the executing python script

GitOrigin-RevId: e343312d61e1804d927688bf4e0de00b2bdb5382
2026-04-30 08:05:14 +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
3a232c44eb Extract OutputStream type for python runner streams
GitOrigin-RevId: 9a26c847ec7daa4cd446e9fec0407e64e6f40916
2026-04-28 08:06:52 +00:00
Domagoj Kriskovic
09af91a936 info stream
GitOrigin-RevId: 5d4cb01c250768ca00e15368b9c616b467e4f9ba
2026-04-28 08:06:47 +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
Alf Eaton
ce4ca192ee Upgrade Storybook to v10 (#30442)
GitOrigin-RevId: 9f51624bc2b34b6746d1854969173b44c9c9cf9a
2026-04-22 08:06:26 +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
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
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
Mathias Jakobsen
2b77e92d5b Merge pull request #32840 from overleaf/mj-docx-copy
[web] Finalise copy for docx import

GitOrigin-RevId: de0331483752ca1f8e8f1ac78639820b7b738c15
2026-04-17 08:05:26 +00:00
Mathias Jakobsen
3bf3264cfe Merge pull request #32313 from overleaf/ae-tab-icon
Add icons to file tabs

GitOrigin-RevId: 7b032c694c4f81e868e5811673b465179e10bae7
2026-04-15 08:05:30 +00:00
Domagoj Kriskovic
cb0f87282b fix: ensure original write method is correctly restored after code execution
GitOrigin-RevId: 0c1d40bbde58d04de362586103a50b522dc14c2a
2026-04-14 08:04:17 +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
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
256532b13c Merge pull request #32640 from overleaf/ab-right-align-project-dropdown
[web] Right-align project title dropdown to the arrow button

GitOrigin-RevId: edf7ebb9077376535eec194e962f69e308fa8498
2026-04-10 08:04:33 +00:00
Davinder Singh
65ba7c8dd4 Adds a toast for docx import feedback form (#32695)
* adding a toast for import docx feedback form link

* renaming importDocxFeedbackToast to importDocxFeedbackToastGenerator

* fixing capital letter in translation

* adding noopener and shorter link

GitOrigin-RevId: fc1ea105f5d092e25bd2dc3966710a897959d944
2026-04-10 08:04:08 +00:00
Davinder Singh
470a05c23d Creating useProjectUploader hook for project upload modal & Display modal when a project is successfully converted from Docx (#32676)
* creating useProjectUploader hook

* removing a comment and polishing some code

* removing doc from the array

* rewording comments

* creating the modal that appears after docs conversion is completed

* moving the file

* renaming translations

* moving into modals

* adding content within a list

* removing the newUrl variable

* changing translation name

* adding a button in the test

GitOrigin-RevId: f08ec6b02874f93a79039b831afad820239e094c
2026-04-09 08:07:12 +00:00
Mathias Jakobsen
2d9fc99274 Merge pull request #32655 from overleaf/mj-preview-tabs-setting
[web] Add setting for temporary tab behaviour

GitOrigin-RevId: efef9e1db55d4498daadf13efad7fe12578cec21
2026-04-08 08:05:07 +00:00
Alexandre Bourdin
671df33da3 Merge pull request #32244 from overleaf/ab-labs-in-feature-flags
[web] Merge Labs programme into the Feature flags system

GitOrigin-RevId: db75e07bf3272becc11ef1eeda3850098b3daa9d
2026-03-26 09:06:51 +00:00
Mathias Jakobsen
6b01183bba Merge pull request #32330 from overleaf/mj-tabs-survey
[web] Tweaks for editor tabs

GitOrigin-RevId: fed9a500b871fa68a158c2e7ab42030117775161
2026-03-24 09:05:52 +00:00
Malik Glossop
504005aa74 Merge pull request #32264 from overleaf/mg-paste-blocked
Show toast when context menu paste fails due to blocked clipboard access

GitOrigin-RevId: fcbeaa17174288ba627b3988ef5149d54a33fd4f
2026-03-20 09:07:23 +00:00
Alexandre Bourdin
5d0498f89c Merge pull request #32312 from overleaf/ab-rename-editor-tabs-flag
[web] Rename editor tabs feature flag

GitOrigin-RevId: 3b9a0ea618d2f43edc108362d384a5b354d1b0e4
2026-03-20 09:07:01 +00:00
Mathias Jakobsen
9224197fb3 Merge pull request #32164 from overleaf/mj-tabs
[web] Add editor tabs experiment

GitOrigin-RevId: 8cef265a45dbd826ad8a4df7d98e38f9bb7ec1cd
2026-03-20 09:06:32 +00:00
Mathias Jakobsen
c9c129af40 Merge pull request #32280 from overleaf/mj-editor-redesign-tutorial
[web] Tear down new editor intro

GitOrigin-RevId: 40e1abef5983c3ab2c877520d0e8f92b82b834e5
2026-03-19 09:07:08 +00:00
Domagoj Kriskovic
a7621a99c4 Updated analytics event for visual bibtex editor
GitOrigin-RevId: ccca1ba7f60a7fa63a41866f780fbb73441b0c9a
2026-03-16 11:56:43 +00:00
Domagoj Kriskovic
684bbe9186 loadPyodide per run, use package types
GitOrigin-RevId: 0c2384ce676fde09459fbd8244c9ed675b30c954
2026-03-09 09:05:43 +00:00
Domagoj Kriskovic
3b17b0a46a feat: implement Overleaf Code experiment with Python execution support
GitOrigin-RevId: 54ca98525b2ae056fb34b3713320e868b8c19613
2026-03-09 09:05:39 +00:00
Domagoj Kriskovic
138f7f8023 feat: add Python support with Pyodide integration
GitOrigin-RevId: 382ce102c43050aace691dd89d825a94abf347a8
2026-03-09 09:05:34 +00:00
Jimmy Domagala-Tang
bb5d90a332 Add usage quota to Workbench (#31782)
* feat: adding usage rate limiting to workbench and aligning editor context values for suggestionsLeft

* feat: prepend word token to headers of token rate limiter to prevent confusion with usage rate limiter

* Shared AI paywalls (#31948)

* feat: renaming hasPremiumSuggestion and adding token limits to editor context and project load

* feat: adding new ai features paywall component

* feat: rename getRemainingFeatureUses to token based naming for token based limiter, removed checking for feature usage on anonymous users, and removed guard on null userId since we shouldnt be calling getRemainingFeatureUses on a nonexistent user

* feat: using token rate limit headers to set token rate values in editor context

* feat: update workbench to be available without refreshing if rate limit reset occurs within session

* fix: move paywall out of inert section

* Hide new paywalls behind FF and open plans page on upgrade attempt (#32023)

* feat: hide new paywalls behind FF

* feat: update ai paywall buttons to navigate to plans page post quota plans change release

* feat: showing a fair limit notificaiton pre-quota change, and updating paywall to not fire if user has premium already (#32056)

GitOrigin-RevId: 565fb128d55543fea34c383bc4abeaa3dd148d09
2026-03-06 09:17:52 +00:00
Davinder Singh
7daaba5af7 Merge pull request #31957 from overleaf/ds-removing-useIsNewEditorEnabled-5
[Part 5] Removing the usage of `useIsNewEditorEnabled` for editor tear down

GitOrigin-RevId: 086183b196a44b393dc0c0f60f7bfbc5738901fc
2026-03-06 09:17:25 +00:00
Mathias Jakobsen
ada0922988 Merge pull request #31950 from overleaf/mj-themed-project-load
[web] Add themed project loading screen

GitOrigin-RevId: b73d8c825b5ab04ede1c9dde10a6891be63758a4
2026-03-06 09:15:55 +00:00
Davinder Singh
281dc16a6d removing the usage of useIsNewEditorEnabled from first set of files (#31800)
GitOrigin-RevId: 821885295f4dab046d9abf552d7fbd7a21d86fb5
2026-03-06 09:14:55 +00:00