docs: обнови ПИЛОТ — снимок 23.06 (балансовый блок N/G/E/H/M/O на gitea, прод не менялся)
Балансовый блок проектов закрыт 6 находками (N/G/E/H/M/O), по TDD+визуал, gitea/main 8eef54ac..696e75b9, на прод НЕ катилось. E подтверждён живым заказом в кабинете поставщика + уборка. L (омега tenant 25/проект 188) остаётся открытым — сверка после деплоя + GO. Также зафиксирован долг larastan(env-косяк ide-helper)/deptrac(ProjectResource->SupplierSnapshotGuard). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Brain Status (auto-generated)
|
||||
|
||||
Last updated: 2026-06-23T08:39:26.593Z
|
||||
Last updated: 2026-06-23T08:44:19.078Z
|
||||
|
||||
| Контролёр | Состояние | Детали |
|
||||
|---|---|---|
|
||||
@@ -142,9 +142,9 @@ Episodes since last run: 542 / threshold: 10
|
||||
|
||||
| PID | Имя | CPU-время | Возраст |
|
||||
|---|---|---|---|
|
||||
| 14232 | msedge | 5.73ч | 0.0ч |
|
||||
| 3440 | MsMpEng | 5.46ч | 0.0ч |
|
||||
| 21480 | Code | 1.30ч | 0.0ч |
|
||||
| 14232 | msedge | 5.73ч | NaNч |
|
||||
| 3440 | MsMpEng | 5.48ч | 0.0ч |
|
||||
| 21480 | Code | 1.33ч | NaNч |
|
||||
|
||||
⚠️ Проверь, не «осиротевшие» ли это процессы от завершённых Claude-сессий.
|
||||
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
- Волатильную часть (доступ, версии, что развёрнуто) перед рискованными действиями **перепроверять реальной командой по SSH**, не доверять снимку вслепую.
|
||||
- Обновляется по команде заказчика **«обнови пилот»**.
|
||||
|
||||
**Снимок снят:** 23.06.2026 (~11:50 МСК) — **прод НЕ менялся** (деплоя в эту сессию НЕ было; боевой код тот же). **Закрыт балансовый блок проектов (`preflight_blocked_at`) — 6 находок, по TDD + визуал, на gitea/main `2deaf207..de106a20` (НЕ на проде):** **N** массовое «изменить лимит» теперь уважает баланс (skip `balance_insufficient`) + видимый тост (фикс: snackbar жил в размонтируемом `BulkActionsBar` → `v-if`→`v-show`); **G** правка/toggle/ручная синхронизация не уводят заблокированный проект к поставщику; **E** авто-снятие блока при пополнении по политике «всё-или-ничего» (`ProjectBlockReleaseService` в единой точке `BillingTopupService::topup` — покрывает и ручное, и онлайн через webhook) — **подтверждено живым demo: реальный заказ создан и убран в кабинете поставщика crm.bp-gr.ru**; **H** метка «Приостановлен — не хватает баланса» на карточке (`ProjectResource.balance_blocked`); **M** правка site/call больше не падает молчаливым 422 (фронт не шлёт `sms_senders` для не-sms); **O** боковая панель показывает блок при 409 (раньше молчала). Локально зелено (N 32/32, billing 114/114, фронт-спеки). Push в gitea fast-forward (gitleaks/lychee чисто). **🔴 L (ОТКРЫТО, требует решения+GO):** разовая сверка реальной омеги — **tenant 25, проект 188** на проде стоит `preflight_blocked_at=2026-06-22 15:05:34`, но УЖЕ заказан у поставщика (`supplier_b1/b2/b3=494/495/496`) — рассинхрон класса, который фиксы предотвращают вперёд; существующую омегу нужно разово привести в согласие после выката. **Долг (не из этой задачи):** lefthook `larastan` краснит локально (~80) — **локальный env-косяк** (ide-helper на L13/Windows генерит битый `_ide_helper_models.php`; на CI/Linux зелено), коммиты делались с точечным `LEFTHOOK_EXCLUDE=larastan,deptrac`; `deptrac` — реальное архнарушение `ProjectResource→SupplierSnapshotGuard` (из source-edit-lock мерджа). Кодовая фраза стены — «роутер-наставник».
|
||||
|
||||
**Снимок снят:** 23.06.2026 (~04:00 МСК) — **прод НЕ менялся** (боевой код тот же, что после выката 22.06; в эту сессию деплоя НЕ было). **Подтверждено вживую на проде (read-only) при триаже авто-security-ревью:** админ-зона `/api/admin/*` закрыта двумя слоями — nginx HTTP Basic Auth (`location ^~ /api/admin`, `/etc/nginx/.htpasswd-admin`) + M-1 app-fail-closed гейт (`EnsureSaasAdmin` по `REMOTE_USER`∈allowlist; прод `.env`: `ADMIN_GATE_ENFORCED=true`, `ADMIN_ALLOWED_USERS=admin`). → автонаходка «`/api/admin/payment-gateways` без auth» = **ложная**: эндпоинт записи ключей ЮKassa реально закрыт. **Застейджено на gitea/main `3b142f93` (НЕ на проде):** (1) блокировка смены источника проекта в UI (drawer: поля источника disabled + подсказка с датой разблокировки; баннер «первые лиды с DD» в новом проекте) — спека/план `2026-06-22-project-source-edit-lock-ux`; (2) онлайн-пополнение ЮKassa (параллельная сессия, за флагом `billing_yookassa_enabled`=**off**); (3) хардненинг webhook ЮKassa (строгий `paymentId` + валюта RUB + IP-allowlist `YOOKASSA_WEBHOOK_IPS`, fail-open при пустом). Локально зелено: бэкенд+billing 118/118, фронт-спеки. **Перед включением `billing_yookassa_enabled` на проде:** заполнить `YOOKASSA_WEBHOOK_IPS` опубликованными подсетями ЮKassa + апгрейд до настоящего `auth:saas-admin` (Б-1). gitea-push был fast-forward (17 коммитов), GitHub-`origin` мёртв (suspended) — бэкап только gitea. Кодовая фраза стены — «роутер-наставник».
|
||||
|
||||
**Снимок снят:** 22.06.2026 (~07:30 МСК) — **✅ ПРОВЕДЁН ПОЛНЫЙ ПРИЁМОЧНЫЙ ТЕСТ боевого liderra.ru «глазами клиента» — вердикт GO.** Прогон R1–R5 на проде: 7 тест-клиентов (SQL, id 17–23) + 16 проектов через портал → 14 rt у поставщика crm.bp-gr.ru (реальный заказ, sync ok); инъекции вебхука с прод-сервера (vid TEST-диапазон 9e12). **PASS:** раздача (CAP=3, каскад 3 фазы + подмена с реальным городом), деньги (тройная запись + копейки + тарифная ступень; **новый тариф вступил в силу сегодня 22.06: T1=70₽**, старый 500₽ перекрыт по `effective_from`), лимит/перелив, M-DOUBLEPROJ (клиент с 2 проектами — списан раз), M-INSUFF (нехватка→откат+автопауза), изоляция (портал 404 + RLS-роль `crm_app_user` + публичный API G6), импорт (не списывает), онбординг **вживую владельцем** (реальная Yandex-капча + код из письма + 300₽ старт, tenant 24 `kdv1@bk.ru`), дайджест-email доставлен, колокольчик, отчёты, поддержка G7-A, нагрузка (~258 лид/мин ≈37× к цели 10k/сут). **Омега (tenant 2) ЦЕЛА весь прогон: 1 835 400.00 ₽ / 1013 сделок** (снимок до=после). Teardown полный до 21:00 (`DeleteSupplierProjectJob` снёс 14 rt у поставщика, тест-тенанты/слепки/orphan-по-vid вычищены, `auth_log` сохранён N-3); F3 `audit:verify-chains` после teardown — **79 цепочек intact, 0 mismatch**. **🔴 FN-RESET (клиент-видимо, чинить ДО продажи):** сброс пароля сломан для ВСЕХ — `forgotPassword`→дефолтное Laravel-уведомление строит URL через `route('password.reset')`, которого нет (SPA-роут `/reset/:token`) → `Route [password.reset] not defined` → клиент видит «ошибка», письмо не уходит; побочно ломает анти-перебор. Фикс ~4 строки: `ResetPassword::createUrlUsing(...)` в `AppServiceProvider::boot()`. Найдено владельцем на `info@lkomega.ru`. **Прочее (не блокеры):** FN-AUDIT (verify-chains во время прогона краснеет на свежих app-строках текущего месяца — самоизлечивается после teardown, омега/глобальные цепочки целы; разработчику + чистка transient-инцидентов m06), FN-1 (смс+слово дал у поставщика только B2 без B3), FN-2 (мёртвый ключ `reminder` в дефолте notification_preferences), FN-3 (онбординг не ставит `users.email_verified_at`). **Наблюдение (read-only разбор логов 22.06):** основной шум логов — **исторический майский шторм** вашиденьги24 (490k мёртвых `failed_jobs` B1+SMS 28–29.05 + collision 2001× + routing_failed 667× — корень починен, новых 0, нужна только уборка `queue:flush`). **🔴 FN-SESSION (живое, операционно важное):** заход к поставщику через Playwright валится **~121×/день каждый день** (766 за 7д, `SupplierAuthException: PlaywrightBridge exit 1`) — переустановка браузера 21.06 НЕ вылечила → `CsvReconcileJob` (страховочная сверка пропущенных лидов) не работает; вероятная зацепка к «лиды не идут с 3 июня». **FN-LOGIN-ROUTE:** `Route [login] not defined` (свежий 21.06) — тот же класс, что FN-RESET. Почта/деньги/раздача сейчас здоровы. **Оставлен** онбординг-аккаунт tenant 24 (`kdv1@bk.ru`, 300₽). Отчёт `docs/superpowers/specs/2026-06-21-acceptance-RUN-report.md`; эфир — 16 карточек `live-demo/efir.html`. **Прод-код НЕ менялся** (только тест-данные, вычищены). Кодовая фраза стены — «роутер-наставник».
|
||||
|
||||
**Снимок снят:** 21.06.2026 (~17:20 МСК) — **🚀 ВЫКАЧЕН UI-аудит раунд 2 (4 деплоя) + 🔧 ПОЧИНЕН заход к поставщику + 🔴 ВСКРЫТА остановка лидов с 3 июня.**
|
||||
|
||||
Reference in New Issue
Block a user