WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-466 · Дефект · — · web

P2 [биллинг/UI]: лимиты в UI (58/10 sources, 1 notebook) расходятся с /api/billing/usage (0/0) и блокируют действия paywall-ом на free-учётке

Закрыт P2 ведёт: —
Суть
02.09 приёмка 1110-c09browser (QA free-учётка r8.fixture.synthetic@example.invalid): UI показывает Sources added 58/10 и открывает «Choose Your Plan» на New notebook и Add Source; при этом /api/billing/usage отдаёт 0/0. checkLimit считает уже загруженные источники в локальном state, а серверный snapshot — нет. Побочно: CSP блокирует https://js.stripe.com/clover/stripe.js при открытии paywall (checkout не стартует). Определить единый источник правды по лимитам (сервер), синхронизировать UI, добавить stripe в CSP если checkout нужен. Отчёт: A1 /home/ubuntu/waves/C09BROWSER-REPORT.md.
Лента
2026-09-02T09:37:45.786Z · Fable
[02.09 09:55Z Фабл] Приёмка 1173-accweb466limits: FAIL — регресс существующего createNotebookCommand.test.ts: при отсутствующем billingUsageSnapshot checkLimit стал fail-open и не блокирует создание тетради сверх лимита там, где контракт ждёт блокировку. Принятое сохраняется (сервер = источник правды, инвалидация, CSP). Доработка 1179-web466limits2 (явная семантика «snapshot отсутствует») → ре-приёмка → l90. Отчёт A1 /home/ubuntu/waves/ACCWEB466LIMITS-REPORT.md.
2026-09-02T09:47:50.553Z · Fable
[02.09 10:20Z Фабл] 1179-web466limits2 сдан (4d685a5e4d): createNotebook при подтверждённом tier и отсутствующем snapshot запрашивает refreshBillingUsage(); при недоступном сервере действие честно не выполняется (без paywall и draft), повтор пробует снова; paywall только по серверному snapshot; checkLimit остаётся fail-open для гидрации. Ре-приёмка 1183 → l90.
2026-09-02T10:07:17.880Z · Fable
[02.09 11:15Z Фабл] Ре-приёмка 1183-accweb466limits2: PASS (4d685a5e4d; серверный snapshot-гейт createNotebook и promise регистра команд проверены). В l90-candidate: bf962b4699 + 4d685a5e4d (A2), зеркало A1 обновлено. Статус → done после посадки l90.
2026-09-02T11:03:00.225Z · Fable
[A1 11:05Z Фабл] ПОСАЖЕН l90 на A1: commit 26da36faba, артефакт me2-standalone-linux-arm64-26da36fa-20260902T105621Z (sha dffb8a17…), run /home/ubuntu/prod/shared/run/l90-26da36fa, /api/ready TRUE (boot-env: 1 warning), paid true, воркер индексации на l90. Env: убраны BLUEBUBBLES_SERVER_PASSWORD и SOCIAL_ENCRYPTION_KEY_PREVIOUS, добавлен SYNC_PAGINATION_ENABLED=1 (P15 SAFE_NOW). Откат: nc-a1.service.bak-l89 + l89 целы.
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-466","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-09-02T11:03:00.336Z