* feat: remove old assist split test
* feat: moving featue rate limiters to main shared directory for use in multiple modules
* feat: base workbench rate limiter on a token specific base class
* feat: rename aiErrorAssistRateLimiter to AiFeatureUsageRateLimiter to better reflect its for our shared ai usage quota
GitOrigin-RevId: 89464d115b5904f6274756a7169e2b35945e2fc9
* adding debug option for web acceptance tests
fix: improving acceptance debug make target and removing duplicate service from docker-compose
* Switching debug mode to use DEBUG=true in test command
---------
Co-authored-by: Liam O'Brien <l.obrien@digital-science.com>
GitOrigin-RevId: 42a2ef53db08eccbf2a52f829a2fb7af997f911e
* Adding types to github sync export handler and up the stack
* promsifying file and addressing review comments
* reverting tsconfig and updating response type
* importing correct type
* reverting Jenkinsfile to main
GitOrigin-RevId: 96496920b8faf38fc32ffedb6fc4b8d6596d4112
Update the toggle behaviour to target all group subscription users,
regardless of whether they are in Recurly or Stripe.
GitOrigin-RevId: a3e72d93e440a8941472f868e387a654b8908d1f
* [clsi] initial implementation of compile from history
* [clsi] copy changes
* [saas-e2e] extend test case with nested folder
* [saas-e2e] add test case for tracked changes
* [web] fix accumulating changes from multiple chunks
* [web] optimize size check for compile request payload
* [clsi] deduplicate globalBlobs
* [clsi] add validation for request body details
* [clsi] add metrics for compile from history
* [clsi] download binary files concurrently
* [clsi] skip download of empty file blob
* [clsi] break down e2e compile time metric by compileFromHistory
GitOrigin-RevId: 0dadef93e89d8a172c35cb130a1042d9d1bec42a
* Add Overleaf AI row in the Plans pages
* Show "Overleaf AI" row only with plans-2026-phase-1
* Hide AI-Assist add-on with plans-2026-phase-1
* Update tests
GitOrigin-RevId: 905a8eede1fc460edd6da76a0988d5e8e57880fb
* handle billingInfo / account discrepancies
* fix rate limiting behaviour of fetchRecurlyActiveSubscription
* make force-invalid-tax aware of stripe tax validation errors
* clear taxInfoPending if vatNumber is now valid or not present on second runs
* re-instate pre-validation of tax ids in dry-run mode
* handle tax exemption
* fix tax pre-validation tests
* fix comment typos
* remove redundant hadConflict
* re-use normalizeName function
* throw if more than 1 active recurly subscription when resolving conflict
---------
Co-authored-by: Simon Gardner <simon.gardner@overleaf.com>
GitOrigin-RevId: a88cad87887bd9e043fb457091e999c1d555f546
* [web] increase timeout for downloads from clsi
* [web] detach request timeout from streaming timeout
* [web] align timeout for clsi-cache downloads with clsi downloads
* [web] destroy stream when bailing out early from aborted requests
GitOrigin-RevId: cc4cad9d684214b2eee0f5fc43513e430ceb0977
* Compute student discount from prices
* Add presentational discount in the checkout page
* Put student discount row behind feature flag
* Update code and tests to clarify that `currency` is always defined
* Introduce `usePlanPriceItems` to normalize the list
* Simplify `usePlanPriceItems`
Co-authored-by: Olzhas Askar <olzhas.askar@overleaf.com>
* Remove student discount percent
* Update Standard Monthly/Annual names in the checkout page
* Simplify `getRecommendedCurrency` mock
* Fix testid: price-summary-plan
* Add test on stripe-price-summary
* Add `Math.abs` on accessibility discounted info (!)
---------
Co-authored-by: Olzhas Askar <olzhas.askar@overleaf.com>
GitOrigin-RevId: f297eab4b6abd6a84842054667a3734cb33866fe
* [web] extract card comparison function
* [web] throw if more than 1 duplicate customer account
* [web] attempt to pick the pre-existing account
* [web] overwrite email of duplicate account
* Update services/web/scripts/helpers/migrate_recurly_customers_to_stripe.helpers.mjs
* [web] handle setting being undefined
* [web] allow other account to be reused if migrating account is using paypal
* [web] allow matching for customers with no payment method
GitOrigin-RevId: 7d8eeb4734a20c09ce3e0d73095e28696e212549