WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-048 · Задача · billing · web

P0 РЕШЕНИЕ ВЛАДЕЛЬЦА: чат тетради и автотеги не входят в платную поверхность релиза 1

Закрыт P0 · горит ведёт: backup-opus
Суть
Найдено screensfix 19.08. В enforce-режиме authorizeAndReserve требует зарегистрированный callsite (spendReservation.ts:691-705 → paidEntrypointRegistry.ts:66-72). В src/lib/billing/paidEntrypointRegistry.json — 9 entrypoints / 46 callsites, и НЕТ НИ ОДНОГО для чата тетради и для /api/auto-tag; соседние провайдерские callsite имеют posture DENY_RELEASE1. Следствие на проде: чат тетради отвечает отказом, автотеги дают 400 на каждом вызове. Это НЕ баг реализации — это граница релиза: обе функции просто не разрешены как платные. ТРЕБУЕТСЯ РЕШЕНИЕ ВЛАДЕЛЬЦА: (а) зарегистрировать чат тетради и автотеги как платные callsite (расширяет платную поверхность и расход); (б) оставить как есть и честно показать пользователю, что функция недоступна в этом релизе; (в) сделать их бесплатными/локальными.

## 2026-08-23 BOARDSWEEP: VERIFIED-GREEN
- Evidence: Canonical static read: src/lib/billing/spendReservation.ts:691-705 and src/lib/billing/paidEntrypointRegistry.json show release-1 deny posture with no notebook-chat or /api/auto-tag paid callsite; description records the production refusal. buildFixed=v4-bb1186a is older than v4-081ff4fb5. Read-only API probes: GET /api/health=200, POST /api/chat-global unauth=401.
- buildFixed: v4-bb1186a; canonical: v4-081ff4fb5 / 081ff4fb5f6110f8001daec7ed910ccef2e395dc.
- Status preserved by sweep: review.
Чем закрывается (приёмка)
Владелец выбрал вариант; для (а) — callsite зарегистрированы, идемпотентность прокинута, чат и автотеги работают на проде; для (б) — UI честно сообщает о недоступности, без немого отказа.
Замечен в сборке
v4-80e8b5a
Починено в
v4-bb1186a
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-048","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-23T18:05:57.286Z