* changing to pug conditional format for admin page conditional render
* feat: update notifications settings page and open BE route
feat: adding new page for notification prefs on user settings, along with updating saving prefs for global preferences
adding error handling and disabling when request is inflight
formatting and adding split test for viewing notification ettings
fix: updating to levels of preferences, and removing global type for preferences as we will now share the same backing settings between global and project preferences
feat: add global mute to user settings for notifications
making params in preferences schema optional
feat: update global settings to only set mute, and remove optional settings
fix: store userId as objectId, and filter based on global mute setting
GitOrigin-RevId: 947a95dc02d12b4a2d8e3cc29bd04c23af2aef25
* Include valid couponCode and promotionCode in `payment-page-view` and `payment-page-form-submit` analytics events
* Update payment event types
* Remove obsolete comment
* fix: only send validated coupon and promotion codes in analytics event
* Add coupon name for the analytics events
* Update test to include the coupon name for analytics
* Remove coupon code from analytics
* Simplify promotion code validation using coupon.code
* Remove undefined
* Allow access to promotion code
* Remove `lastValidatedPromotionCode` and compare against coupon code from the preview response
* Fix test setup to initialize coupon code
* Keep the submit button enabled only when the coupon code is either empty or successfully validated by the backend
* Update test coupon code value to TEST_COUPON
GitOrigin-RevId: b12fa147d91fd3b90b59bc77868a0786ddb633b7
* update pricing settings for Nov 2025 update
* update `StripeLookupKeyVersion` type
* update unit tests to match new Stripe version
GitOrigin-RevId: f5df5167b605b6667cc19edad09fb2c0f72a293b
* [web] add clsi-cache prompts
* [web] add new editor variant to segmentation
* [web] add tests for useNewEditorVariant
* [web] adjust start of using clsi-cache in split-test
GitOrigin-RevId: c9c5b1eff2ceefb65ef82516d9074cb971cb4c48
* Add `delete-project` and `modify-admin` admin capabilities
* Add `isSuperAdmin` check
* Replace frontend checks
* Add requireAdminPermission middleware on disable2FA
* Remove `isSuperAdmin` tag
* Fix tests on admin capabilities
* Replace isSuperAdmin tests by tests in admin-roles
* Replace superadmin tests by admin-capabilities
* Update tests: server-pro admins are superadmins
* Remove "In Server Pro, all Admin users are also Super Admins"
* Update tests after revert "server-pro admins are superadmins"
* Create capability "delete-2fa"
* Add special privileges for admins in Server Pro to preserve the existing behaviour
* Reorder definitions to avoid future eslint error
* Add super_admins admin-role
* Add some sensible capabilityDependencies
* Fix inconsistency: super_admins -> super_admin
* In tests, await controller methods instead of using manual promises
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
---------
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
GitOrigin-RevId: ca1fff3ead5b2001cb5d5d25de15970d55fb2c1b
* Add notifications web module
* implement getThreadMessage in chat
* Save comment mention notification
* check if recipient is a real user
* move commentMentionDelay
* use module-hooks types
* remove router
* updated collection name
GitOrigin-RevId: cf8240c88aac7d7e4de4bf51cfe2608b6b7e7918
[web] Do not show notification to link to Commons SSO when domain is also for group with domain capture
GitOrigin-RevId: 6779e2db02d5d9cc4e7a60789a620403a4e4aa11
* adding new translations
* removing the .
* adding the correft quote ’
* changing an e2e test
* changing translation key
GitOrigin-RevId: 099a633dca177ea1d14d055109a24eaa71ba0994
* do not emit subscription-started when status is incomplete
* emit subscription-started when incomplete subscription transitions to active
* do not emit subscription-expired when status is incomplete_expired
* do not sync incomplete or incomplete_expired Stripe subscriptions
* allow `incomplete*` status to better guard against syncing
GitOrigin-RevId: 4e851f654dcb4bf356280197dd158e834175df12
* feat: allow for monthly tl builds experiment
* feat: show correct image when user doesnt have access to current image in compiler settings (#28282)
* adding packer space for extra rolling image
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
GitOrigin-RevId: db909e1a85f36f1567236a2c4d5790b565dda76d