WEB-095 · Задача · Инфраструктура · web
[ARCH-P0.2] Гонка в видео-квоте: read→SUM→create без блокировки — два параллельных запуска пройдут на остаток одного
Закрыт
P0 · горит
ведёт: backup-opus
Суть
Сейчас: `src/lib/videoByok/quota.ts:289-330` читает и суммирует, потом создаёт; unique есть только на run (`prisma/schema.prisma:1070-1090`).
СДЕЛАТЬ: атомарный резерв под блокировкой (scopeKey, month); тест «два параллельных запуска, остаток на один» — проходит ровно один.
ОЦЕНКА: малая кровь, 1-2 дня.
Источник: аудит архитектуры (волна archaudit, sol/xhigh, 21.08), отчёт M4 `/Users/milamarty/work/ARCHAUDIT-REPORT.md`, снимок кода `a9b2440d`. Вердикт аудита: годимся для роста 25→1000 после короткого P0/P1-hardening; переписывать не надо.
**Документы эпика (обогащение по требованию owner 21.08):**
- Первичный аудит (ОТДАН РЕВИЗОРУ owner-ом): ~/Downloads/АУДИТ-АРХИТЕКТУРЫ-20260821.md на ноутбуке; оригинал M4 /Users/milamarty/work/ARCHAUDIT-REPORT.md (365 строк, снимок кода a9b2440d, каждое утверждение со ссылкой file:line).
- Раздел с полной таблицей чеклиста — §1; детальный разбор базового слоя — §2; 10 массовых запросов и минимальный индексный пакет — §3; распределённость и гонки — §4; observability — §5; выкатка/rollback/health — §6; ТОП-5 рисков — §7; ЧТО НЕ ДЕЛАТЬ — §8; backlog по риску — §9; rollout по когортам — §10.
- Смежные документы: план переезда ~/Downloads/prodplan-20260810/PROD-MIGRATION-PLAN-R4.md (Intel), аудит миграции M4 MIGAUDIT-REPORT.md, репетиция переезда A1 ~/waves/GATE514-REPORT.md (измеренные RTO), эпик миграции WEB-282.
- Ветка работ: archp0 (worktree A1 wt-archp0, от посадки-30 23e0b944).
## 21.08 ~12:40 СДЕЛАНО: коммит 9d5ba34c — приём заявок квоты сериализован по (scopeKey, month), гонка read→SUM→create устранена.
Ветка archp0/fcsrc2/migfix от посадки-30 (23e0b944), worktree на A1. Отчёты: ~/waves/ARCHP0-REPORT.md, FCSRC2-REPORT.md, MIGFIX-REPORT.md.
## 2026-08-23 BOARDSWEEP: STALE-NOT-DEPLOYED
- Evidence: buildFixed is empty. Canonical inspection found the affected quota path at src/lib/videoByok/quota.ts:289-330 and the concurrency test, but no deployed build pointer in the ticket. No video/paid run sent.
- buildFixed: <empty>; canonical: v4-081ff4fb5 / 081ff4fb5f6110f8001daec7ed910ccef2e395dc.
- Status preserved by sweep: review.
Доказательства
[2026-08-24 STALEREV против 61bc04462; в проде с посадки 45 v4-5a4edbac3] Вердикт SERVED: реализация+тесты доказаны в target tree; принято по приёмке 45-тикетного разбора. Отчёт: A1 /home/ubuntu/waves/STALEREVIEW-REPORT.md (STALEREVIEW_DONE).
Починено в
v4-5a4edbac3
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-095","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-24T14:28:58.583Z