docs: единая сводка состояния — остатки + ключи от приложений (2026-06-22)

Новый сводный документ: что сделано (на проде / в gitea ждёт наката), какие
ключи нужны от владельца (Sentry DSN, Jivo widget ID, Slack webhook, ЮKassa,
Yandex SSO), решения владельца, ООО-блокеры, снятое. JivoSite-виджет отмечен
встроенным; Slack-ошибки — готовы в коде.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-06-22 19:25:57 +03:00
parent 6d943db936
commit 0a7523efe9
2 changed files with 93 additions and 15 deletions
+25 -15
View File
@@ -1,6 +1,6 @@
# Brain Status (auto-generated)
Last updated: 2026-06-22T04:26:29.315Z
Last updated: 2026-06-22T16:20:13.048Z
| Контролёр | Состояние | Детали |
|---|---|---|
@@ -33,28 +33,30 @@ Last updated: 2026-06-22T04:26:29.315Z
| enforce-coverage-verify.mjs | `enforce-coverage-verify.mjs` | 🔴 |
| enforce-todowrite-skill-verifier.mjs | `enforce-todowrite-skill-verifier.mjs` | 🔴 |
Недавние escape владельца: 1 · Недавние блоки: 10
Недавние escape владельца: 3 · Недавние блоки: 10
**Недавние escape владельца (детали):**
| Время | Действие | Причина |
|---|---|---|
| 2026-06-21T06:38:08.264Z | plan-done | escape владельца |
| 2026-06-22T15:17:16.099Z | gate3-arb:accept:0b0aca2de2baa82bb764634b463339cf993fe43c3c7df2171bed23fa9de0b6bd | escape владельца |
| 2026-06-22T15:15:32.983Z | gate3-arb:accept:0b0aca2de2baa82bb764634b463339cf993fe43c3c7df2171bed23fa9de0b6bd | escape владельца |
| 2026-06-22T05:21:06.824Z | owner-seal:63cfffa28978c4f017141cab7aeb36132774cd3e753e64fdf5d1c7b6e4b4d92d | escape владельца |
**Недавние блоки (детали):**
| Время | Действие | Причина |
|---|---|---|
| 2026-06-22T04:22:18.307Z | bash:cat "$TEMP/claude-economy-42e79641-ee05-4ee7-97ea-3a545ea2a538.json" 2>/dev/null \|\| echo "FILE_NOT_FOUND" | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:cat "$TEMP/claude-econ |
| 2026-06-22T04:17:15.434Z | write:c:/моя/проекты/claude-brain | разговорный режим: только думать/спрашивать (реализация — после печати артефакта и плана) |
| 2026-06-22T04:16:46.938Z | powershell:$tempPath = $env:TEMP; $file = "$tempPath\claude-economy-42e79641-ee05-4ee7-97ea-3a545ea2a538.json"; if (Test | разговорный режим: только думать/спрашивать (реализация — после печати артефакта и плана) |
| 2026-06-22T04:16:38.844Z | write:c:/users/administrator/.claude/projects/c--------------claude-brain/42e79641-ee05-4ee7-97ea-3a545ea2a538.jsonl | path «C:/Users/Administrator/.claude/projects/c--------------claude-brain/42e79641-ee05-4ee7-97ea-3a545ea2a538.jsonl» pr |
| 2026-06-22T04:16:24.368Z | bash:cat "$TEMP/claude-economy-42e79641-ee05-4ee7-97ea-3a545ea2a538.json" 2>/dev/null \|\| echo "FILE_NOT_FOUND" | разговорный режим: только думать/спрашивать (реализация — после печати артефакта и плана) |
| 2026-06-22T04:16:24.112Z | bash:cat "$TEMP/claude-economy-42e79641-ee05-4ee7-97ea-3a545ea2a538.json" 2>/dev/null \|\| echo "FILE_NOT_FOUND" | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:cat "$TEMP/claude-econ |
| 2026-06-22T04:15:42.934Z | write:c:/моя/проекты/claude-brain | разговорный режим: только думать/спрашивать (реализация — после печати артефакта и плана) |
| 2026-06-22T04:15:18.477Z | write:c:/users/administrator/.claude/projects/c--------------claude-brain/42e79641-ee05-4ee7-97ea-3a545ea2a538.jsonl | path «C:/Users/Administrator/.claude/projects/c--------------claude-brain/42e79641-ee05-4ee7-97ea-3a545ea2a538.jsonl» pr |
| 2026-06-22T04:15:11.140Z | bash:cat "$TEMP/claude-economy-42e79641-ee05-4ee7-97ea-3a545ea2a538.json" 2>/dev/null \|\| echo "FILE_NOT_FOUND" | разговорный режим: только думать/спрашивать (реализация — после печати артефакта и плана) |
| 2026-06-22T04:15:11.019Z | bash:cat "$TEMP/claude-economy-42e79641-ee05-4ee7-97ea-3a545ea2a538.json" 2>/dev/null \|\| echo "FILE_NOT_FOUND" | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:cat "$TEMP/claude-econ |
| 2026-06-22T16:19:05.841Z | bash:ls $TEMP/claude-economy-ae7348fc-4410-4d81-8546-4b57c2df3ad0.json 2>/dev/null && cat $TEMP/claude-economy-ae7348fc- | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:ls $TEMP/claude-econom |
| 2026-06-22T16:17:41.809Z | bash:ls $TEMP/claude-economy-ae7348fc-4410-4d81-8546-4b57c2df3ad0.json 2>/dev/null && cat $TEMP/claude-economy-ae7348fc- | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:ls $TEMP/claude-econom |
| 2026-06-22T16:17:18.508Z | bash:cat "$TEMP/claude-economy-c45f5b05-836d-48ba-bf47-ab3477fd20e5.json" 2>/dev/null \|\| echo "FILE_NOT_FOUND" | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:cat "$TEMP/claude-econ |
| 2026-06-22T16:15:37.030Z | bash:ls $TEMP/claude-economy-ae7348fc-4410-4d81-8546-4b57c2df3ad0.json 2>/dev/null && cat $TEMP/claude-economy-ae7348fc- | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:ls $TEMP/claude-econom |
| 2026-06-22T16:12:12.039Z | bash:ls $TEMP/claude-economy-ae7348fc-4410-4d81-8546-4b57c2df3ad0.json 2>/dev/null && cat $TEMP/claude-economy-ae7348fc- | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:ls $TEMP/claude-econom |
| 2026-06-22T16:10:29.400Z | bash:cat "$TEMP/claude-economy-c45f5b05-836d-48ba-bf47-ab3477fd20e5.json" 2>/dev/null \|\| echo "FILE_NOT_FOUND" | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:cat "$TEMP/claude-econ |
| 2026-06-22T16:07:20.953Z | bash:cat "$TEMP/claude-economy-c45f5b05-836d-48ba-bf47-ab3477fd20e5.json" 2>/dev/null \|\| echo "FILE_NOT_FOUND" | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:cat "$TEMP/claude-econ |
| 2026-06-22T15:58:15.793Z | bash:ls $TEMP/claude-economy-c45f5b05-836d-48ba-bf47-ab3477fd20e5.json 2>/dev/null && cat $TEMP/claude-economy-c45f5b05- | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:ls $TEMP/claude-econom |
| 2026-06-22T15:56:58.348Z | bash:tail -c 8000 "C:\Users\Administrator\.claude\projects\c--------------claude-brain\ae7348fc-4410-4d81-8546-4b57c2df3 | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:tail -c 8000 "C:\Users |
| 2026-06-22T15:56:46.709Z | bash:ls $TEMP/claude-economy-ae7348fc-4410-4d81-8546-4b57c2df3ad0.json 2>/dev/null && cat $TEMP/claude-economy-ae7348fc- | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:ls $TEMP/claude-econom |
## Метрики (информационные, не алерты)
@@ -134,7 +136,15 @@ Episodes since last run: 542 / threshold: 10
## System Health
Долго работающих процессов нет (порог CPU > 1ч).
Топ-3 процессов с CPU > 1ч:
| PID | Имя | CPU-время | Возраст |
|---|---|---|---|
| 6976 | Code | 2.59ч | 0.0ч |
| 3440 | MsMpEng | 2.57ч | NaNч |
| 14232 | msedge | 2.39ч | 0.0ч |
⚠️ Проверь, не «осиротевшие» ли это процессы от завершённых Claude-сессий.
## Очередь обучения роутера
@@ -148,7 +158,7 @@ Episodes since last run: 542 / threshold: 10
## Целостность журналов действий
🔴 Битые цепочки (3 из 104):
🔴 Битые цепочки (3 из 107):
| session | broken at seq |
|---|---|
@@ -0,0 +1,68 @@
# 📌 Лидерра — состояние, остатки и ключи (на 22.06.2026)
**Назначение:** единая сводка — что сделано, что ждёт наката, что нужно от владельца (ключи/решения), что ждёт ООО. Заменяет россыпь пометок по handoff-докам.
---
## ✅ Сделано
### На боевом liderra.ru (работает)
- M-1 (app-гейт админки fail-closed), M-2 (реальная капча Yandex SmartCaptcha).
- FN-RESET (сброс пароля), FN-LOGIN-ROUTE, FN-2, FN-3, FN-ENC.
- F-CSV (защита экспорта от инъекций), apiv1-rate (лимит API), N-4 (дайджест без дублей).
- F-T1 (SSRF-guard вебхуков), F-P1 (чистка ПДн), F-T2 (гейт `/api/admin/*`).
- Impersonation: письмо-код на init, письмо клиенту на end, реальная сессия.
- impersonation_tokens RLS = ON. F1 CVE — пакеты пропатчены.
- **failed_jobs очищены** (494 191 → 0). **tenant 24 удалён** (soft-delete). **rekey-orphans** проверен — сирот нет.
### В коде (gitea), ⏳ ЖДЁТ НАКАТА НА ПРОД
- **F-NEWPROJECT-1** — клиентская валидация формы нового проекта.
- **RLS на `tenants`** + **`created_at` → TIMESTAMPTZ** (schema v8.51). ⚠️ TZ-ALTER блокирует партиции → деплой в окно низкой нагрузки.
- **Минор**: зелёный тост после отмены отчёта.
- **#21** — карта разделов schema (убран stale `reminders`).
- **JivoSite-виджет** — встроен, спит без ключа.
- Техдолг линтеров `db/` вычищен (коммиты схемы идут без `LEFTHOOK=0`).
---
## 🔑 КЛЮЧИ ОТ ТЕБЯ (чтобы включить каналы)
| Сервис | Что это | Что дать мне | Куда впишу | Когда |
|---|---|---|---|---|
| **Sentry** | сигнализация об ошибках | **DSN** (строка-ключ из Sentry-инстанса) | `SENTRY_DSN` (+ фронт) | сейчас |
| **JivoSite** | онлайн-чат поддержки на сайте | **ID канала/виджета** (с jivo.ru) | `VITE_JIVO_WIDGET_ID` | сейчас |
| **Slack — ошибки** | техн. ошибки в чат (готово в коде) | **Incoming Webhook URL** | `LOG_SLACK_WEBHOOK_URL` | сейчас |
| **Slack — бизнес-события** | «новый клиент/пополнение/нет денег/поставщик молчит» | сначала **список событий**, потом тот же Webhook | — (надо встроить) | сейчас, после твоего списка |
| **Платёжка (ЮKassa)** | приём денег картой (G5) | **shopId + секретный ключ** | `YOOKASSA_*` | после ООО |
| **Yandex 360 SSO** | вход админов-сотрудников | **client_id + client_secret** + список сотрудников (DO-4) | OAuth-конфиг | после ООО |
**Коротко:** дай 3 ключа (Sentry DSN, Jivo ID, Slack Webhook) — включу Sentry/Jivo/Slack-ошибки сразу. Скажи список Slack-событий — соберу бизнес-уведомления. Платёжка и SSO — после ООО.
---
## 👤 Решения/действия владельца
- **Накат на прод** свежих коммитов из gitea (через prod-deploy-validator).
- **Slack-события** — подтвердить список (предложено: новый клиент / пополнение / кончились деньги / поставщик молчит).
> Пункт «online→batch» снят с обсуждения по запросу владельца (известен, не остаток).
---
## ⛔ Ждёт регистрации ООО (Б-1)
G5 (оплата картой) · Yandex 360 SSO · домен liderra.ru · контакты подвала · оферта/политика/уведомление РКН (юрист).
---
## 🚫 Снято (доделать пакетом с Yandex SSO после ООО)
Two-person approval · role-guard супер-админа · SupplierResolver fallback · обезличенный `admin_user_id` · настоящий saas-admin вход.
---
## Закрыто как «не остаток»
Раздел B (переоценка охвата тестов — реальные гапы уже покрыты +9 тестами) · техдолг линтеров `db/`.