* Revert "Revert "Adding More Ai Quota Tiers (#32128)" (#32431)"
This reverts commit f0ea19b418da6096c84b42024aea643807347649.
* fix: dont block workbench from users who have access via WF
* fix: simplify workbench access rules and ensure wf premium users can use workbench
GitOrigin-RevId: 7927248eadd906d7f802d55fa5c6bc7df162b141
* Migrating reference settings to mongo and exposing them through code mirror context
* removing undefined optional for reference manager type settings
* allowing partial updates to user settings objects, and remove repeated cypress intercepts
* Zod schema parsing for user reference manager settings
* Splitting ref provider mongoose schema into const
* Persisting local storage reference settings to mongo and deleting from local
* Enforcing ref provider group id to always be type string
* Fixing test and format errors
* Migrated flag for settings to only migrate once
* fixing cypress tests adding migrated flag
* persisting local storage to allow for easy rollback
GitOrigin-RevId: f59522bdee6f0e56efb7d98b9d9373a743619ec8
* feat: adding tiers for free and standard
* feat: updating feature calculation to account for more quota tiers
* feat: rename freeTrialQuota to freeQuota
* feat: add hasAiFreeTier and hasUnlimitedAi to editor, block free tier from using workbench
* fix: updating tests
* fix: updating ordering precedence for quota tiers
* feat: bump unlimited ai fair usage to 300 uses
* fix: update workbench quota usage for unlimited plans
* feat: bump features version for ai quota split
* feat: popover should only show for relevant users on workbench, and adding upgrade notification to ineligible users
GitOrigin-RevId: e3ef38797f267677cad51d7273272623027ca330
* feat: migrate from aiErrorAssist naming for disabling AI features to aiFeatures.enabled to avoid confusion
feat: keep aiErrorAssistant as setting on user object until migration is run
* feat: migrate writefull.enabled unset to instead use promotionSet false
* feat: updating to use quota based system for AI usage
* feat: hide relevant sections of quota system behind split test
* feat: ship onAiFreeTrial instead of free quota amount to project meta
* fix: renaming splitTestEnabledForUser to featureFlagEnabledForUser
* fix: v1_personal should have free trial amount of ai quota
* fix: onAiFreeTrial in projectController should account for anonymous users with no features
* feat: fixing marketing exports for ai quotas
* feat: update features epoch
* feat: move to quota tiers, and map tier to numeric allowance within rateLimiters
GitOrigin-RevId: 17763447965aae5777053b783d2601517bfe6b12
* [monorepo] remove PII and variables from error messages
Exclusions:
- scripts
- tests
- fuzzing
- SplitTestManager (messages are sent to admin frontend)
- Group setup (we may want an error per unique tuple)
- sharejs (unused types; text type errors are shadowed already)
- history-v1 error messages that are used by the ErrorRecorder
- errors that flag issues with configuration/call signatures
I've used these search terms for finding unwanted error messages:
- new Error(`
- new Error\(\n\s+` (regex search)
- new OError(`
- new OError\(\n\s+` (regex search)
* [web] throw NotFoundError from ProjectLocator
* [github-sync] fix OError.tag call in script
Co-authored-by: Jessica Lawshe <jessica.lawshe@overleaf.com>
* [templates] revert changes to test client
---------
Co-authored-by: Jessica Lawshe <jessica.lawshe@overleaf.com>
GitOrigin-RevId: 736857a4fc5d9bfb0f8cb03e0f004eda87e5a220
* [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
* Revert "Revert "[web] Add User logs to Group Audit Logs view (#29155)" (#29479)"
This reverts commit 40a1516ab9cec690d0487a0a870b9fab17598d60.
* Fix `managedUsersEnabled` flag in frontend
GitOrigin-RevId: ae3edf5bcbc01ec46bc18028e758d3364072c307
* Add `clearThirdPartyLogins`
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* Add a confirmation modal
* Show provider name from settings
* Replace "logins" by "identifiers" for consistency with current terminology
* Hide button if user has no third-party identifiers
* Update tests
* Add test "unlinks Google account"
---------
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: 45b9b5ce6fa2cbeba9d4daeda97cd6e500c8266c
* Rename `sendExistingSecondaryEmailConfirmationCode` to `sendExistingEmailConfirmationCode`
* Deduplicate error handling into `throwIfErrorResponse`
* Update `userHelper.confirmEmail` to use the 6-digits flow
GitOrigin-RevId: 91bdf7b185407b58520ca6b2aa1a7c71bdd23bc8
This is slightly different than done because done would resolve but I
think it is safer for the purpose done was being used in these changes.
GitOrigin-RevId: e60a912b82a8e544444a2776ea6aab7d2ea83bdb