Andrew Rumble
bb7643f697
Merge pull request #33482 from overleaf/ar-mixpanel-labs-project
...
[web/analytics] Send labs user's events to separate mixpanel project
GitOrigin-RevId: 42612b71d2d7a082ffbe1ff614499a0b94553b90
2026-05-29 08:05:57 +00:00
Mathias Jakobsen
51ca5c0156
Merge pull request #33972 from overleaf/mj-web-show-pandoc-error
...
[web] Expose conversion errors during project exports
GitOrigin-RevId: 2e808bd65f03e81405db4727f2f5773d3b14cbe7
2026-05-28 08:08:14 +00:00
Jakob Ackermann
7e4820f0b0
[clsi] migrate convert project to document to compile from history ( #33985 )
...
* [clsi] add request flag for isCompileFromHistory
* [clsi] derive cacheKey for history snapshot from compile dir
* [clsi] migrate convert project to document to compile from history
* [clsi] address review feedback
* [web] determine root doc at the time of converting the project
* [web] wait for flush before starting document conversion
* [saas-e2e] add tests for root doc override when converting project
GitOrigin-RevId: 71c578030949b89f3a74e7f7ab882dfa9c98c17a
2026-05-28 08:08:06 +00:00
Copilot
016296cc07
web: add info/cause support to BackwardCompatibleError (OError-compatible) ( #33766 )
...
GitOrigin-RevId: 736ca3245f85f14df5a01e5c4a342b99742118e8
2026-05-28 08:07:29 +00:00
roo hutton
4f192564f2
Merge pull request #33345 from overleaf/rh-split-group-role
...
Update group_role in customer.io when changed
GitOrigin-RevId: d21866a9fe324a0468de74a45b6932dda27de8a1
2026-05-28 08:06:43 +00:00
roo hutton
5d0becf76b
Merge pull request #33572 from overleaf/rh-cio-past-due
...
Expose past_due status to customer.io
GitOrigin-RevId: 5b1b03db0e1068f1ae444585e4a9e732470f0ffa
2026-05-28 08:06:39 +00:00
Malik Glossop
a47f6443f8
Merge pull request #33932 from overleaf/mg-select-style
...
Replace text label with icon in "Select style" toolbar button
GitOrigin-RevId: 52b93a29db47e99609a90294e53abe1057a6c71d
2026-05-28 08:06:15 +00:00
Kristina
78dd0a8681
[web] update email base templates ( #33791 )
...
* update email template design
* gate email template on split test
GitOrigin-RevId: 2e0a1d9abf11a0c3f16e103511191d43d542b8a4
2026-05-28 08:05:59 +00:00
Malik Glossop
fa26367aa9
Merge pull request #33805 from overleaf/mg-ai-paywall-analytics
...
Add paywall-prompt and paywall-click events to ai paywalls
GitOrigin-RevId: aa7de15a990ad1833e3dda65d5fb50f60bb7c9e3
2026-05-28 08:05:52 +00:00
Malik Glossop
8af5c2c346
Merge pull request #33600 from overleaf/worktree-mg-bullet-list-compact
...
Combine toolbar list controls and render indentation controls conditionally
GitOrigin-RevId: 48d7c52983449566bfa21b5572915d79e595c704
2026-05-28 08:05:48 +00:00
Tom Wells
0565a778d8
Library: Design Changes ( #33933 )
...
GitOrigin-RevId: b45ea92adc424e2864e952cd7f157509e10ffb7d
2026-05-27 08:07:47 +00:00
Jakob Ackermann
c7b56ff295
[monorepo] remove contacts service ( #33550 )
...
GitOrigin-RevId: 15478243e4d6a56b81eee28f76f9ef7dc54a45d7
2026-05-27 08:07:19 +00:00
Antoine Clausse
09f03381fd
[web] Fix preview next-invoice date for cadence-change upgrades ( #33697 )
...
* [web] Fix preview next-invoice date for cadence-change upgrades
When upgrading from a monthly plan to an annual plan (or vice versa) the
user pays for a full new-cadence term today, so the next payment is one
new-term-length from now — not the current cycle's period end. Previously
we always echoed subscription.periodEnd in the preview, which surfaced
the stale current-cycle date and misled the user into thinking they'd
be charged again ~25 days later.
makeChangePreview now compares the current and next plans' annual flag:
on a cadence flip it returns now + 1 year or now + 1 month; otherwise it
keeps the existing behaviour.
Closes #33283 .
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
* Format
* Fix next invoice date using priceincents
* Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
GitOrigin-RevId: 05b660ecb518c04b60e88f2ddc7531733245bdde
2026-05-25 08:05:49 +00:00
Tim Down
ab4f23ab86
Merge pull request #33788 from overleaf/td-payment-preview-ai
...
Add AI to features list on upgrade checkout page
GitOrigin-RevId: 0b5b94fc4961ac2e8e2d2812bb80c1041f4c8c24
2026-05-25 08:05:41 +00:00
Malik Glossop
9ae5663423
Merge pull request #33160 from overleaf/copilot/fix-typeerror-out-of-memory
...
fix: normalize string errors at pdf-caching call sites before passing to OError.tag()
GitOrigin-RevId: 0259de81cca72e3b9c304f68b087a627db8f1980
2026-05-25 08:05:33 +00:00
Malik Glossop
eb9d586bdb
Merge pull request #32968 from overleaf/worktree-labs-feature-preview
...
Add labs preview modal to editor
GitOrigin-RevId: 0df33135febc8e94129bcdfdfb5c4981326dfab0
2026-05-25 08:05:28 +00:00
Domagoj Kriskovic
803ba735ca
Show toast when Python script saves output files to project
...
GitOrigin-RevId: 9ca5201645953f86c3ac8e83f545dfbcdac2b35c
2026-05-22 08:05:55 +00:00
Olzhas Askar
793d5c79fb
Merge pull request #33775 from overleaf/oa-remove-addon-section
...
[web] Remove Add-ons section
GitOrigin-RevId: 82009dd6aeb3588f46cabacdb7313c01f3afc27e
2026-05-22 08:05:46 +00:00
Miguel Serrano
ad651a22fa
Revert "[web] Add SVG support to file-view panel ( #32155 )" ( #33832 )
...
This reverts commit e80c491a10db6f5757c568430e17d9cbb613c5b4.
GitOrigin-RevId: dbe0de698bc7349e5b8f9712d1d13998e41ab528
2026-05-21 08:06:28 +00:00
Miguel Serrano
35681dd3b2
[web] Add SVG support to file-view panel ( #32155 )
...
* [web] Add SVG support to file-view panel
Adds support by reading the content of the downloaded SVG, then creating a blob and rendering it as native HTML.
GitOrigin-RevId: e80c491a10db6f5757c568430e17d9cbb613c5b4
2026-05-21 08:06:16 +00:00
Miguel Serrano
f9c53fe147
[web] Added DEFAULT_LATEX_COMPILER env ( #32455 )
...
This is mainly intended to be used in CE/Server Pro
GitOrigin-RevId: 277f9afca389a1e7b00db2d987129432fb1707b5
2026-05-21 08:06:12 +00:00
Jessica Lawshe
9acf3b8e7f
Merge pull request #33610 from overleaf/jel-hostname-capturedByGroup
...
[web] Check `capturedByGroup` when adding new email
GitOrigin-RevId: f9ef3d4cc7387dc0139a70aecd6cfcb20170abc6
2026-05-20 08:07:18 +00:00
Alf Eaton
1d959af16e
Process zip import entries in parallel ( #33176 )
...
GitOrigin-RevId: f77c2b08d4c085b51a8608d2621dd5bbe1134258
2026-05-20 08:06:48 +00:00
Alf Eaton
7eed283b11
Ignore entries in __MACOSX folder when importing zip archive ( #33147 )
...
GitOrigin-RevId: e990d593d96085e13a209d4155823097b0814276
2026-05-20 08:06:40 +00:00
Jakob Ackermann
293d89a4cb
[web] inline contacts service into web ( #33546 )
...
GitOrigin-RevId: d5e84d4f80f5ad4e951934d6dcdc332b0d26f3d0
2026-05-19 08:04:34 +00:00
Brian Gough
60860aa202
Merge pull request #33576 from overleaf/bg-jpa-convert-document-to-file
...
Modify convertDocToFile to bypass docstore
GitOrigin-RevId: 3ec789034a369d39d223450462394c8f303caa07
2026-05-19 08:04:13 +00:00
Kristina
2f5d838e0f
Merge pull request #33704 from overleaf/kh-add-reject-change-preference-check
...
[web] add reject tracked change preference check
GitOrigin-RevId: b55dba21b3d4f42e68528d2b5906862c57794cd1
2026-05-18 08:06:57 +00:00
Eric Mc Sween
a3682af6e4
Merge pull request #33710 from overleaf/em-tpds-config
...
Clean up tpdsworker config from web and third-party-datastore
GitOrigin-RevId: 3856126d9dc856fea4bc4133b11402c35b10630b
2026-05-18 08:06:25 +00:00
Olzhas Askar
d388e48a99
Merge pull request #33679 from overleaf/oa-plan-names
...
[web] Get plan names from the settings
GitOrigin-RevId: 1e61975c3306c025f33e05686f9d2b57964b4f65
2026-05-18 08:05:52 +00:00
Mathias Jakobsen
ac961f1d40
Merge pull request #33687 from overleaf/mj-temporary-tabs-fix
...
[web] Only consider real key presses to make tab permanent
GitOrigin-RevId: 50ab453445e111de2b317f50470f9f4eec39a66f
2026-05-15 08:08:28 +00: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
Copilot
3980b9e580
Fix IDOR in exports by adding token verification (Issue #31637 ) ( #32883 )
...
* Fix IDOR in exports by adding token verification
Implement jdleesmiller's suggested fix for Issue #31637 :
- V1: Return export token in create response
- V1: Verify token in get_export using secure_compare
- Web: Pass token through fetchExport and fetchDownload
- Web: Return token from exportProject to frontend
- Frontend: Pass token as query param on status/download requests
- Add tests for both services
Agent-Logs-Url: https://github.com/overleaf/internal/sessions/7ba5f535-fba2-49a8-91d4-c87bd332d3a0
Co-authored-by: briangough <7457354+briangough@users.noreply.github.com >
Fix window.location.pathname to .href to preserve query params
Code review correctly identified that window.location.pathname strips
query parameters. Switch to window.location.href so the token query
parameter is preserved in download URLs.
Agent-Logs-Url: https://github.com/overleaf/internal/sessions/7ba5f535-fba2-49a8-91d4-c87bd332d3a0
Co-authored-by: briangough <7457354+briangough@users.noreply.github.com >
Fix test mocks to include token in POST responses
Agent-Logs-Url: https://github.com/overleaf/internal/sessions/0350c6ef-0fff-4e98-8464-812cd92c523f
Co-authored-by: briangough <7457354+briangough@users.noreply.github.com >
fix formatting
Fix token assignment in initiateExport to use pollResponse token if available
Add requireExportToken config setting and tests for invalid/missing token cases
Agent-Logs-Url: https://github.com/overleaf/internal/sessions/059bdba2-4f7a-4407-a5a5-cfcffd888739
Co-authored-by: briangough <7457354+briangough@users.noreply.github.com >
fix formatting
Add tests for export status and token validation in ExportsController and MockV1Api
Co-authored-by: Copilot <copilot@github.com >
* Update services/v1/main/app/controllers/api/v1/overleaf/exports_controller.rb
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix linting
* fix fetchString response handling in ExportsHandler tests
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Copilot <copilot@github.com >
Co-authored-by: Brian Gough <briangough@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Brian Gough <brian.gough@overleaf.com >
GitOrigin-RevId: 399aef8eaa15ab3655f0905482f3a31fe94e2251
2026-05-15 08:08:04 +00:00
Miguel Serrano
5a886aa9fb
[web] Add extra details to flexible license sales email ( #32929 )
...
* [web] Add extra details to flexible license sales email
GitOrigin-RevId: fbd41adae21c55c5e97f9531565100e1ae911808
2026-05-15 08:07:56 +00:00
Davinder Singh
a3a508d193
[WEB] Add analytics events for importing and exporting to different file types ( #33614 )
...
* adding events for success and failure for import and export from latex
* adding the operation property to capture the import/export keyword
GitOrigin-RevId: 2e5482b3c7517b402fc151966975ca8718729683
2026-05-14 08:06:30 +00:00
Alf Eaton
6776f82952
Wait for parsing and syntax highlighting in autocomplete Cypress tests ( #33667 )
...
* Wait for parsing and syntax highlighting in autocomplete Cypress tests
* Wait for syntax highlighting in write-and-cite Cypress tests
GitOrigin-RevId: d48f10c864b0a170b4a02e95e3a989fdc4137dbb
2026-05-14 08:05:55 +00:00
Jakob Ackermann
7c50dc9990
[history-v1] add endpoint for downloading latest zip ( #33181 )
...
* [history-v1] add endpoint for downloading latest zip
* [web] address review feedback
* [web] tests: do not overwrite db.projects.overleaf, extend it
* [web] set includeReferer flag from downloading zip
GitOrigin-RevId: e63e549f004230086f82eccf03b43fd62bde6071
2026-05-13 08:06:53 +00:00
Jakob Ackermann
b1931d0b3b
[web] cleanup archived split-test assignments from user record on login ( #33365 )
...
* [web] cleanup archived split-test assignments from user record on login
Co-authored-by: Anna Claire Fields <anna.fields@overleaf.com >
* [migrations] purge archived split tests from all users
Co-authored-by: Anna Claire Fields <anna.fields@overleaf.com >
* [web] add missing mock and update snapshot test
* [web] gracefully access db.users.splitTests
---------
Co-authored-by: Anna Claire Fields <anna.fields@overleaf.com >
GitOrigin-RevId: bd185074a402556d7b7c812208cf834dd52b27a5
2026-05-13 08:06:49 +00:00
Eric Mc Sween
aca60c02c0
Merge pull request #33391 from overleaf/em-bibtex-projection-32449
...
Use a projected state field for BibTeX entries in the editor
GitOrigin-RevId: 5034be8bdc0cb4b9d854135ac117046c1b3750e7
2026-05-12 08:06:47 +00:00
Jessica Lawshe
0f3ae5ac5b
Merge pull request #33335 from overleaf/jel-add-email-captured-by-group
...
[web] Group with domain capture takes priority over Commons when adding new email
GitOrigin-RevId: 40eb561018f4be0badf9f3885d24553c5f8bbde7
2026-05-12 08:06:37 +00:00
Jessica Lawshe
ba13ccdb11
Merge pull request #33202 from overleaf/jel-domain-captured-by-group-settings-page
...
[Domain capture] Check `domainCapturedByGroup` for existing emails on user settings
GitOrigin-RevId: 5ac86b89969b186cce0cac410c2957e5aa1b9703
2026-05-12 08:06:33 +00:00
Jakob Ackermann
1df98c028d
[web] add includeReferer flag to SplitTestHandler.getAssignment ( #33235 )
...
* [web] add includeReferer flag to SplitTestHandler.getAssignment
* [web] tests: migrate User.getSplitTestAssignment to async/await
I don't want to fight with callbacks and optional arguments. Just move
it to async/await. New tests should use async/await, so there is no
point in making this work in callback-hell.
* [web] remove unused URL import
GitOrigin-RevId: 6251001e6ba7354f704fa663be8ef365ca0b9d23
2026-05-12 08:06:21 +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
Alf Eaton
b906de86db
Add info to NotFoundError ( #33440 )
...
* Add info to errors in ProjectLocator
* Update ProjectLocator.test.mjs
* Add info to errors in SSOConfigManager
* Update SSOConfigManager.test.mjs
GitOrigin-RevId: 5a13350af1808f3a16a4bc8a9946cbe8f15e6b3a
2026-05-12 08:05:49 +00:00
Alf Eaton
8be321fd73
Add @modules alias to frontend test module resolver ( #33491 )
...
GitOrigin-RevId: 929180b0887695b0d04456cfa66ccf87b4cd51c0
2026-05-12 08:05:45 +00:00
Eric Mc Sween
e0488a8d3b
Merge pull request #33534 from overleaf/em-fix-autocomplete-32913
...
Fix autocomplete dropdown closing on blur and input re-click
GitOrigin-RevId: 82f45f0f1ae9e2b3846906d962a3f16e5b2963e4
2026-05-11 08:06:11 +00:00
Malik Glossop
893005cb88
Merge pull request #33281 from overleaf/jd-back-to-pdf-button
...
Change the "close logs" icon button to a "Back to PDF" button with a label
GitOrigin-RevId: 30b8d3e314fb9b8c901b90055832b88687827e62
2026-05-11 08:05:55 +00:00
Brian Gough
3940f8c2a7
Merge pull request #33504 from overleaf/bg-upgrade-yauzl
...
Upgrade yauzl library in web to version 3.3.0
GitOrigin-RevId: 82b4158db7a432f4257bd48402840f07801c6d07
2026-05-11 08:05:47 +00:00
Domagoj Kriskovic
11d35bd065
Test that pyodide package.json version matches fetch script
...
GitOrigin-RevId: e04ae191d2b1e5a08ba2e27518e61899d0e2d490
2026-05-11 08:05:39 +00:00
Domagoj Kriskovic
5d171066c2
Add analytics events for Python script runner
...
GitOrigin-RevId: 53f0fec09fc2a4ccdf1a6f77345741bed29d8a8b
2026-05-11 08:05:34 +00:00
Jimmy Domagala-Tang
c37e46e1ad
Add audit log entries when users max out their AI usage ( #32886 )
...
* feat: adding audit log entries when users max out their AI usage
* feat: also log when user hits quota exactly, since support wants to know that
* feat: moving audit logging to the rate limiters themselves
* feat: moving to single quota breach event with tool in info
* feat: adding audit log for ai quota tests
GitOrigin-RevId: 64056632f142a9ea22a703b7621234f93e9f6ec7
2026-05-08 08:10:23 +00:00