Commit Graph

353 Commits

Author SHA1 Message Date
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
Davinder Singh
f27c99ea4b Tearing down of old Editor (File tree) (#31784)
* merging ide-redesign/components/file-tree into features/file-tree

* moving ide-redesign/contexts/settings-modal-context   to features/settings/contexts

* use-collapsible-file-tree.tsx → features/file-tree/hooks

* use-focus-on-setting.tsx → features/settings/hooks

* use-project-notification-preferences.ts → features/settings/hooks

* use-rail-overflow.tsx→ features/ide-react/hooks

* deleting use-switch-enable-new-editor-state.ts

* use-toolbar-menu-editor-commands.tsx → features/source-editor/hooks

* npm run extract-translations

* modifying the test to target correct buttons and removing a test for old component

* adding a test back and modifying it

* changing the test

GitOrigin-RevId: baa1e9a992c88b84313eea82161354d4958cf1ef
2026-03-06 09:14:01 +00:00
Mathias Jakobsen
7a59db5f9e Merge pull request #31938 from overleaf/mj-loading-pane-light-in-system
[web] Fix bright loading pane in system theme

GitOrigin-RevId: 280044f7accc453187d1edd55f9baff1d9aa4280
2026-03-06 09:12:38 +00:00
Mathias Jakobsen
a6ba9c1016 Merge pull request #31881 from overleaf/mj-ux-lite-editor-march-26
[web] Prepare re-run of UX lite survey

GitOrigin-RevId: e73249bd43dccfc6a40ee01d58bf01f6c6cf7f79
2026-03-06 09:10:51 +00:00
Davinder Singh
b7f5344859 Tearing down of old Editor (Integrations panel) and other files (#31701)
* moving files from ide-redesign/components/editor-tour to features/editor-tour

moving files from ide-redesign/components/integrations-panel to features/integrations-panel

fixing imports

Revert "moving files from ide-redesign/components/editor-tour to features/editor-tour"

This reverts commit 9e4dcd4e001ffa4bfdb1053fb8824c1e8521ab10.

* moving files from ide-redesign/components/help -> ide-react/components/rail

* ide-redesign/components/breadcrumbs → features/source-editor/extensions

* ide-redesign/components/editor.tsx → ide-react/components/layout

* ide-redesign/components/full-project-search-panel.tsx → ide-react/components/rail/full-project-search-panel.tsx

* removing old-editor-warning-tooltip

* ide-redesign/components/tooltip-promo.tsx → shared/components/tooltip-promo.tsx

make cleanup_unused_locales

* extract-translations

GitOrigin-RevId: b9f44c4820bb4e0a7eef4f6f9a58ff96fd007bf9
2026-03-06 09:06:48 +00:00
Davinder Singh
d03ae68294 Merge pull request #31606 from overleaf/ds-editor-settings-tear-down
Tearing down of old Editor (Settings)

GitOrigin-RevId: d9e23e61a8e34eb22e9c9e3453a157fb275f68f0
2026-03-06 09:06:43 +00:00
Mathias Jakobsen
08f2597948 Merge pull request #31372 from overleaf/mj-tutorial-cleanup
[web] Stop manually checking inactiveTutorials

GitOrigin-RevId: c2d14d8633ff58c1dc0b0544c890090d8beb64e2
2026-02-16 09:06:15 +00:00
Mathias Jakobsen
6890f1bb3c Merge pull request #31038 from overleaf/jdt-mj-rm-chat-ide-redesign
Editor Redesign Cleanup: Chat

GitOrigin-RevId: 98f969ee84a86761466de182787443b8c9bacefd
2026-02-16 09:06:05 +00:00
Miguel Serrano
860f77a06c [web] Remove new editor elements for CE/SP (#31004)
* [web] Remove new editor elements for CE/SP

Makes rendering of elements conditional or completely removes them from CE/SP:

- Subscription link is removed from settings modal
- Documentation link is present on `proxyLearn === true`
- Contact us link is present when `support` module is available (not the case for CE/SP)

* Using hidden instead of conditional rendering in settings

GitOrigin-RevId: 562563d0bc4d0ca919e336f0c13cf6b476c6cf31
2026-02-13 09:05:39 +00:00
Mathias Jakobsen
498c89c6ed Merge pull request #31329 from overleaf/mj-dark-mode-notification
[web] Introduce notification for dashboard dark mode

GitOrigin-RevId: da5045d412ddc87a4b18823a4a5fa3192fe15c89
2026-02-12 09:05:36 +00:00
Mathias Jakobsen
cc1dedca7d Merge pull request #31397 from overleaf/mj-old-editor-toolbar-teardown
[web] Tear down old editor toolbar

GitOrigin-RevId: 8ba74abcc56e7bd476a9d6cae72f38486168c2ed
2026-02-11 09:07:14 +00:00
Alf Eaton
9b10da6eaf Use buttons for rail tabs (#31133)
GitOrigin-RevId: 9f251969ed0f88a32f8bf706a6320c4c81c6d000
2026-02-04 09:08:00 +00:00
Mathias Jakobsen
78640e2a9a Merge pull request #31131 from overleaf/mj-restore-view-only-access-modal
[web] Restore ViewOnlyAccessModal in new editor

GitOrigin-RevId: 23a28ac96c13e6e398f6d2bd1e650b7684e9bed1
2026-02-04 09:06:14 +00:00
Jimmy Domagala-Tang
fc8d564320 Editor Redesign Cleanup: main layout, toolbar, and rail (#31031)
* feat: integrate  main layout, toolbar, and rail from redesign into main ide-react folder

* feat: remove additional files no longer used after ide redesign

GitOrigin-RevId: 8fd77f63cb9c67be91995a9dde13b0fe2376d80f
2026-02-03 09:06:37 +00:00
Mathias Jakobsen
2259c915e8 [web+ops+references] Remove references service code (#29699)
GitOrigin-RevId: 76656abe2e7b012355438d053a05e157bb719b0a
2026-01-28 09:06:34 +00:00
Alf Eaton
03a3518aae Merge pull request #30703 from overleaf/ae-prettier
Upgrade Prettier to v3.7.4

GitOrigin-RevId: 0f4434019bc7d12f2d5b7ecbb833ee20570d0706
2026-01-16 09:56:07 +00:00
Malik Glossop
a0fc14b367 Merge pull request #30495 from overleaf/mg-context-menu-paste
[web] Support paste with formatting in context menu

GitOrigin-RevId: 551ed1d49ca423395bd9bfc756e10e8d59d71ecd
2026-01-15 14:19:03 +00:00
Malik Glossop
f087d125c1 Merge pull request #30168 from overleaf/mg-context-menu
Add context menu (right click) to editor

GitOrigin-RevId: f2e567b51b04170ba1a46b0ab4659f3481b05bfe
2026-01-15 14:18:58 +00:00
Mathias Jakobsen
5e49f421c2 Merge pull request #30405 from overleaf/dp-cleanup-editor-redesign-opt-out-2
(Re)Cleanup editor-redesign-opt-out feature flag

GitOrigin-RevId: afefced1f77de2b8b27e1333ffa647ac41561e31
2026-01-09 09:05:29 +00:00