diff --git a/tradein-mvp/backend/app/core/config.py b/tradein-mvp/backend/app/core/config.py index f88a5570..820144bf 100644 --- a/tradein-mvp/backend/app/core/config.py +++ b/tradein-mvp/backend/app/core/config.py @@ -751,7 +751,13 @@ class Settings(BaseSettings): # чистка cookie обходит этот лимит — цель поднять стоимость злоупотребления, # а не сделать его невозможным (тот же принцип, что и account_estimate_usage # для пилотов). ENV: ANON_ESTIMATE_QUOTA_LIMIT. - anon_estimate_quota_limit: int = Field(default=3, validation_alias="ANON_ESTIMATE_QUOTA_LIMIT") + # + # Значение 5 выбрано владельцем 16.08.2026 при разборе PR #2546 (в первой + # редакции стояло 3). Компромисс продуктовый, а не технический: пять проб — + # это больше шансов, что человек дойдёт до ценности и купит платный отчёт за + # 150 ₽, ценой чуть более высокого потолка злоупотребления. Число легко + # пересматривается переменной окружения без выкатки кода. + anon_estimate_quota_limit: int = Field(default=5, validation_alias="ANON_ESTIMATE_QUOTA_LIMIT") # anon_session_secret: ключ HMAC-подписи анонимного session-cookie (см. # app/core/anon_session.py). Пусто (дефолт) → используется process-local diff --git a/tradein-mvp/backend/tests/test_account_quota.py b/tradein-mvp/backend/tests/test_account_quota.py index 292ed19f..083fe7dc 100644 --- a/tradein-mvp/backend/tests/test_account_quota.py +++ b/tradein-mvp/backend/tests/test_account_quota.py @@ -993,7 +993,10 @@ def test_estimate_real_result_still_increments_quota(estimate_app_ok: FastAPI) - _ANON_KEY = "anon:fake-session-id:203.0.113.7" -_ANON_DEFAULT = 3 # существенно строже MONTHLY_LIMIT (15) — см. settings.anon_estimate_quota_limit +# Произвольное число, намеренно НЕ равное ни MONTHLY_LIMIT (15), ни текущему +# settings.anon_estimate_quota_limit (5) — тест проверяет, что переданный +# default доходит до результата, а не что совпал с какой-то настройкой. +_ANON_DEFAULT = 3 def test_user_limit_anon_key_falls_back_to_custom_default() -> None: