Commit Graph

4670 Commits

Author SHA1 Message Date
Copilot 35906b4018 Deduplicate users in checkUserListPermissions to avoid redundant permission checks (#29461)
* Fix duplicate permission checks for same user

Deduplicate user list in checkUserListPermissions before running expensive checks.
Handles ObjectId vs string comparison by converting to string.
Adds tests to verify deduplication works correctly.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: thomas- <2176518+thomas-@users.noreply.github.com>
GitOrigin-RevId: 96eede1cbeb18b807deaca7d4c370aef5c48c4bc
2026-02-05 09:06:17 +00:00
Rebeka Dekany a648015db8 Centralize prettier configuration to root level (#30501)
* Merge all .prettierignore files into top-level config

* Merge all .prettierrc files into top-level config

* Replace service-specific glob patterns in package.json format scripts with `prettier .`

* Add template files with Jinja2, Go template, envsubst, and Handlebars syntax to .prettierignore

* Ignore GitHub templates

* Ignore PUG templates to format them separately with `format:pug`

* Encourage double quotes for YAML, YML files

* Move prettier for PUG source format script to the root

* Move prettier for styles source format script to the root

* Remove prettier for jenkins files from web

* Remove prettier source format script from all services

* Make .prettierrc more readable

* Update format scripts by file type

* Organise `.prettierignore`

* Add `--cache` flag to prettier scripts for faster runs

* Format all files with prettier

* Format all or format services

* Remove `format`/`format:fix` scripts from services since now it runs from root `package.json`

* Avoid conlficts with yamllint configuration

* Remove `--cache` flag from prettier scripts

* Update all service Makefiles to use root-level prettier configuration

* Update all Jenkinsfile to use root-level prettier configuration

* Ignore auto-generated files by build_scripts

* Update package-lock.json

* Update root Makefile format targets

* Update SP Jenkinsfile format target

* Update E2E Makefile format script

* Udpate `format_js` to work in both local and CI env

* Add docker-mailtrap to .prettierignore

docker-mailtrap is a third-party git-ignored directory used for testing

* Added Docker env detection to prevent nested Docker spawning

* Ignore handlebars templates

* Add cryptographic files and test output to `.prettierignore`

* Add terraform modules to `.gitignore`

* Remove prettier-plugin-groovy

* Use npx directly instead of Docker for local formatting for faster formatting

* Auto-generate Makefiles

* Revert "Remove prettier-plugin-groovy"

This reverts commit 194a33589a2e1e4d2225d10c67e9f025e4222025.

* Mount monorepo root in RUN_LINT_FORMAT for prettier config access

* Prettier ignores all `node_modules` by default regardless of location

* Show only changed files in format output

* Ignore LICENSE files

* Enable prettier on rendered build_scripts outputs

* Ignoring all the template folders by prettier

* Remove the public/minjs entry since it does not exist

* Remove all non-existent paths

* Sync `.prettierignore` with ignored files by `.gitignore` and `.dockerignore` files

* Revert "Auto-generate Makefiles"

This reverts commit c0233e490de1bc95fe437219d65e0b66e0331ec9.

* Revert "Use npx directly instead of Docker for local formatting for faster formatting"

This reverts commit 1d2b2cf1a6c6974c76885852a90dd55e84167e41.

* Ignore dashboard JSON files

* Ignore files generated by bin/update_build_scripts

* Remove unsupported file types from `.prettierignore`

* Ignore test fixture generated files

* Ignore README file types by prettier

* Ignore generate snapshots by prettier

* Allow to format generated bin/update_build_scripts by prettier

* Ensure build script outputs prettier-compatible tsconfig.json

* Fix build script output to match prettier formatting
- Fix Jinja2 whitespace in docker-compose templates
- Change YAML quotes from single to double

* Don't read cryptographic files by prettier

* Ignore google verification files by prettier

* Revert npx prettier formatting

* Ignore domain verification files

* Show only changed files in format output

* Make `.github` prettier

* Allow all files to be formatted in jobs by prettier

* Allow server-ce/server-pro files to be formatted by prettier

* Ignore more folders in clsi, filestory, git-bridge by prettier

* Update build script with `RUN_LINTING_CI_MONOREPO`

* Ignore docker-mailtrap and downloads in server-ce by prettier

* Restore prettier configs and prettierignore for V1 since it has its own prettier (an older version)

* Source format

GitOrigin-RevId: 637adc3cc422d1f20c86d6ebc8ec514d60758287
2026-02-04 09:08:22 +00:00
Maria Florencia Besteiro Gonzalez a76f0ee9f4 Merge pull request #31247 from overleaf/revert-31216-revert-30418-mfb-improve-handling-of-debug-copies-of-user-projects
Revert "Revert "Add isDebugCopyOf property to project, add Debug tag to debug project.""

GitOrigin-RevId: 2ed41ec4504ccd8b6ec9cb1d23a9d217079d4347
2026-02-04 09:06:44 +00:00
Chris Dryden fa4a8a0333 Merge pull request #31141 from overleaf/cd-adjust-githubworkflow-error-message-for-non-project-owners
Add GitHub error message for non-project owners

GitOrigin-RevId: 954c5ae45cee9de22df20acfe26867d50b049100
2026-02-04 09:06:39 +00:00
Kristina 0cabc81d46 Merge pull request #31218 from overleaf/kh-update-assistant-prices
* update Stripe AI assist prices
* add soft archive option to the archiving prices script

GitOrigin-RevId: 3f0b66cf227e31e03fb3337b3cb4c1b6a82bd1db
2026-02-04 09:06:34 +00:00
roo hutton a0a621f727 Merge pull request #30788 from overleaf/rh-cio-sub-topics
Replace Mailchimp newsletter subscriptions with customer.io topic subscriptions

GitOrigin-RevId: de536fb7ef24ff44c494659b2ef5ede5b33cc977
2026-02-04 09:06:24 +00:00
ilkin-overleaf c516ffd476 Merge pull request #31214 from overleaf/ii-domain-capture-error-when-email-not-on-account
[web] Error message change when email not on account

GitOrigin-RevId: 25cd57819fc82818189d9c1b5bd2924250af729a
2026-02-04 09:06:09 +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
Maria Florencia Besteiro Gonzalez c790449196 Merge pull request #31216 from overleaf/revert-30418-mfb-improve-handling-of-debug-copies-of-user-projects
Revert "Add isDebugCopyOf property to project, add Debug tag to debug project."

GitOrigin-RevId: f0cf3f040ebe9b19d0836130df3df974ddef11f9
2026-02-03 09:06:31 +00:00
Kristina 4c5cdecffa [web] fix bug where pending downgrades are removed when subscriptions change (#30420)
* preserve pending changes when generating change requests
* re-apply pending term_end changes after immediate updates
* block changes when Stripe subscription has multiple phases
* handle MultiplePendingChangesError & rm PendingChangeError

GitOrigin-RevId: 0af11044766ff48e683d684ad6d62b732d17290c
2026-02-03 09:05:55 +00:00
Maria Florencia Besteiro Gonzalez a591f2eb7a Merge pull request #30418 from overleaf/mfb-improve-handling-of-debug-copies-of-user-projects
Add isDebugCopyOf property to project, add Debug tag to debug project.

GitOrigin-RevId: e3d17de05c6f31db16b861d1adae333211dff018
2026-02-03 09:05:40 +00:00
Jakob Ackermann 5829a7fe43 [web] integrate clsi-cache into download pdf from project dashboard (#31138)
* [monorepo] fix downloads from non-sharded clsi-cache

* [web] check some compile from cache options server-side

* [web] integrate clsi-cache into download pdf from project dashboard

* [web] remove frontend tests for server-side validation

* [web] remove unused fetch mock

* [web] use helper that adds polyfill for AbortSignal.any()

* [web] upgrade fetch-mock to fix leaking AbortSignal

* [web] do not add an extra timeout to clsi-cache request

The web backend service has a low timeout already.

GitOrigin-RevId: a90984b92f5d4f24005db5a09f2c5d2424436886
2026-02-02 09:06:13 +00:00
Anna Claire Fields e80ce42896 Upgrade Node.js from 22.18 to 24.13 (#30509)
GitOrigin-RevId: c2405a0583e68c61351f52b32ba28faec994fbc0
2026-01-30 09:05:28 +00:00
Chris Dryden a054938414 Merge pull request #30983 from overleaf/cd-close-modal-select-menus-on-click
Ensure select menus in Modals close on modal click

GitOrigin-RevId: 4a07f16146ac99e6fb1fdf09d222e6832cc93079
2026-01-30 09:05:19 +00:00
Andrew Rumble 610398d099 Merge pull request #30323 from overleaf/ar/promisify-DocstoreManager
[web] promisify DocstoreManager

GitOrigin-RevId: 351b9868a1c29066b6c98d92e5b513e10f4f6764
2026-01-30 09:05:09 +00:00
Jessica Lawshe 9d625fc834 Merge pull request #30964 from overleaf/jel-commons-migrate-email-not-primary
[web] Check all emails instead of just primary on group SSO callbacks

GitOrigin-RevId: 52ac46e04134772025ca1812d25aad2e68fa44ea
2026-01-29 09:06:26 +00:00
roo hutton 77c66132b0 Merge pull request #29838 from overleaf/rh-cio-remove-limits
Enable customer.io for all users

GitOrigin-RevId: 74d8424924ec30ad3a6cb48c15e285cc696186fd
2026-01-29 09:05:59 +00:00
Alf Eaton 461acef756 [workbench] Add voice input to the prompt form (#30086)
GitOrigin-RevId: cecb613f8d204a68287e93deb6c62d071a039a8d
2026-01-28 09:07:19 +00:00
Alf Eaton 3b027a2b08 Prevent "Remove access" text being cut off in Share model (#30976)
GitOrigin-RevId: ed577d83afd150d64c99bd6577d7543d9297f91a
2026-01-28 09:06:59 +00:00
Mathias Jakobsen 2259c915e8 [web+ops+references] Remove references service code (#29699)
GitOrigin-RevId: 76656abe2e7b012355438d053a05e157bb719b0a
2026-01-28 09:06:34 +00:00
Mathias Jakobsen 9223515705 Merge pull request #30908 from overleaf/mj-remove-opt-out
[web] Tear down editor-redesign-opt-out

GitOrigin-RevId: c826691f3fdd4ad31403abae8adb353bd8c34897
2026-01-27 09:06:08 +00:00
Malik Glossop 5d47879865 Merge pull request #30884 from overleaf/mg-upgrade-modal-tracked-changes
Show modal when user initiates tracked changes from context menu

GitOrigin-RevId: 09ce0aef3eea113cc0b8fc83db00cb8607a6ef9a
2026-01-26 09:06:07 +00:00
Jessica Lawshe 59dc237e53 Merge pull request #30835 from overleaf/ii-domain-capture-invite-token
[web] Create invite token when domain capture is disabled

GitOrigin-RevId: 193b5b8567c3b593c98f432568b47cc4e9e17339
2026-01-23 09:06:24 +00:00
Jessica Lawshe a116175698 Merge pull request #30520 from overleaf/ii-flexible-group-licensing-upgrade-message
[web] Plan upgrade error message when subscription is manually collected

GitOrigin-RevId: 76bda80c81a5f934cbddfb6f24d29c4dd3d6da56
2026-01-23 09:06:19 +00:00
Andrew Rumble 2dfcfd1804 Merge pull request #30916 from overleaf/ar-allow-read-only-institution-access-for-admins-with-no-modify-capability
[web] Add view-only version of institution managers page

GitOrigin-RevId: 65d19e42220932fe268d595ea13d0ba0b18c4398
2026-01-22 09:06:49 +00:00
Olzhas Askar a5b56c7579 Merge pull request #30826 from overleaf/oa-filter-out-once-coupons
[web] Filter out once coupons for Stripe

GitOrigin-RevId: 60aad9c557632c3a3a4b5e6d578d786feaa9508f
2026-01-21 09:05:46 +00:00
Malik Glossop 8f38dd3997 Merge pull request #30848 from overleaf/mg-fix-context-text
[web] fix test selectors for editor context menu test

GitOrigin-RevId: 2d07c9d0416543ab1d9498c69a13809a801708fd
2026-01-20 09:06:56 +00:00
Davinder Singh 187ffbf108 Recurly Pending subscription bug fixes and display Notification Banner (#29811)
GitOrigin-RevId: 4eb6bb445f9911fcf74ff2f9bdcc01b420c7afaf
2026-01-20 09:06:42 +00:00
Malik Glossop ae5e3543c5 Merge pull request #30596 from overleaf/mg-context-menu-hide-others
Hide other menus when right-click context menu opens

GitOrigin-RevId: c7a2126ec58ed69520f31ba20fa450a6f1524a3f
2026-01-20 09:06:37 +00:00
Malik Glossop 723da5c28a Merge pull request #30490 from overleaf/mg-context-menu-a11y
[web] Add a11y support for context menu

GitOrigin-RevId: 3cbe66ee3ee8345dd0e89f89561928889832a50d
2026-01-20 09:06:32 +00:00
Kristina 1228eac81e [web] ensure Stripe & Recurly webhooks can handle a migrating subscription (#30787)
* return early from various event handlers if the subscription isn't controlled by the payment provider sending the event
* update `Subscription` type for webhook events

GitOrigin-RevId: f3fc345c37bbe134b7696ccde9d6d8c7608f8f12
2026-01-20 09:05:36 +00:00
Brian Gough dbff5ae559 Merge pull request #30813 from overleaf/bg-fix-compile-from-redis
exclude buildId from project state hash

GitOrigin-RevId: da7424378422bec348adeaa5da0fe2d3581744d9
2026-01-19 09:07:04 +00:00
Anna Claire Fields ff8f77d85c replace staff access with role based sytem (#30004)
- remove references to staff access

GitOrigin-RevId: 5d7df3ae8bc78aa02b65ec0dac0a323520c3df15
2026-01-19 09:06:59 +00:00
roo hutton 0315b79f9e Merge pull request #30745 from overleaf/rh-cio-rollout-props
Expose additional user properties to customer.io

GitOrigin-RevId: 109c2dab13613d590ebcf70d685b7f4fb2e8f4af
2026-01-19 09:06:39 +00:00
Antoine Clausse 379788a8a6 [web] Promisify RegistrationTests and SessionTests (#30646)
* Promisify RegistrationTests.mjs

* Re-add `await this.user.request.get('/login')` and remove comment

* Promisify SessionTests.mjs

* Remove callback versions of RedisHelper

* Re-add `await this.user.request.get('/login')`

GitOrigin-RevId: 9d0e21336f348c6aff99cb262738163e611f5712
2026-01-19 09:06:06 +00:00
Antoine Clausse 9619ad52ea [web] Reapply: Promisify ProjectLocator again (#30319) (#30582)
* [web] Promisify ProjectLocator (#30319)

* Promisify ProjectLocator

* Update ProjectLocator unit tests

* Update unit test:

Add a subfolder to reproduce issue where `endOfBranch` is called before the search has ended.

* Add missing `else` to prevent additional call to `endOfBranch`

* Simplify conditions by moving `if (element != null)` higher

* Replace `endOfBranch` by check at end of `startSearch`

GitOrigin-RevId: 95dfb47bb549698a406315db1a4b58bce5de791e
2026-01-19 09:06:01 +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
Jessica Lawshe ca1a78163b Merge pull request #30760 from overleaf/ii-domain-capture-page-content-updates
[web] Update domain capture page content

GitOrigin-RevId: b70b82bcfca4db8e55ddcc961c0ec2d32af130e6
2026-01-16 09:05:21 +00:00
Jakob Ackermann 14a7e935b8 [web] override timeout for a specific template (#30711)
* [web] override timeout for a specific template

* [web] fix junit integration for vitest

* [web] consolidate on JUNIT_ROOT_SUITE_NAME

* [web] fix unit test

GitOrigin-RevId: 3ba865e4b9c090c7bf8e07dc3d81e9bcee20d821
2026-01-15 14:19:33 +00:00
Alf Eaton 23255fe264 Downgrade @codemirror/view to 6.38.6 (#30776)
GitOrigin-RevId: bb123c35674b0c21959e1532adc5cdb957f9aa89
2026-01-15 14:19:15 +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
Alf Eaton 5d16fa207a Upgrade CodeMirror and Lezer dependencies (#30615)
* Upgrade CodeMirror and Lezer dependencies
* Ensure that BraceWidget and IconBraceWidget always have string content
* Add updateDOM to BraceWidget
* Use pinned versions
* Fix description list decoration

GitOrigin-RevId: 5306f7f09290eb9a2c375e97d33509537f3c5e5f
2026-01-15 09:06:05 +00:00
Jessica Lawshe 0b83bbba25 Merge pull request #30698 from overleaf/jel-account-linking-managed-users
[web] Do not show option to add email on account linking page for groups with managed users

GitOrigin-RevId: cb36ad1afd4c1bd84009a871adfbb01703227376
2026-01-15 09:05:45 +00:00
Simon Gardner bb7b8ee227 [web] Add audit log entries for project-history-version-restore and project-history-version-download
GitOrigin-RevId: 8cfe1fee733aa886cd6518d352abd95bd9da6f77
2026-01-14 10:17:40 +00:00
Tim Down 2b39beab80 Merge pull request #29697 from overleaf/ac-td-user-audit-log-index
Add migration to improve index on userAuditLogEntries

GitOrigin-RevId: c4a606e1ab7299008baa3b05ac1fb8ca18036fae
2026-01-14 09:05:31 +00:00
Jakob Ackermann 9cc2a7f1e0 [clsi-cache] cache templates in GCS and create entries on-demand (#30614)
* [clsi-cache] cache templates in GCS and create entries on-demand

* [clsi-cache] add missing return

Co-authored-by: Daniel Kontsek <daniel.kontsek@overleaf.com>

* [clsi-cache] update build scripts

* [web] fix unit tests

* [web] run prettier (again)

* [clsi-cache] drop 1xx prefix from submissionId

* [clsi-cache] add bestEffortRmDir helper

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

---------

Co-authored-by: Daniel Kontsek <daniel.kontsek@overleaf.com>
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: e4bd7dca5611f16d9a6e76f2e7cf83e5819fa610
2026-01-13 09:07:17 +00:00
Jakob Ackermann 292230b1db [web] inline trivial mongo queries when creating project from template (#30601)
GitOrigin-RevId: 7aefee892d491b1ec191d07bf1871317b897dec8
2026-01-13 09:06:47 +00:00
Jakob Ackermann 72ad614b25 [web] remove fallback for old clsi-server-id persistence (#30528)
GitOrigin-RevId: bd29aa1f77d61b5ff0c2c0a7d6fa893509c89e37
2026-01-13 09:06:43 +00:00
Jakob Ackermann 425e7b1e5b [web] enable mongo notablescan in CI (#29501)
* [monorepo] record ERROR/FATAL log messages in junit report

* [web] put SaaS specific code behind feature flag

* [web] use split test cache for getting user assignments

The unit tests needed updating as they did not replicate any of the
 mongo filtering. The acceptance tests cover this logic.

* [web] make better use of existing indexes

* [web] avoid col-scan in tests of notifications module

* [web] remove cleanup of empty feedbacks collection

* [web] add assertion for reason of rejected request in launchpad test

* [web] add missing indexes

* [web] enable mongo notablescan

* [web] make emailNotifications tests compatible with notablescan

GitOrigin-RevId: b888f2feeb3a0e915f068ae1c4ea23ec17821221
2026-01-13 09:06:38 +00:00