docs: обновление состояния — фича на проде, флаг ВКЛ, тумблер; ПИЛОТ снимок 26.06; CLAUDE §6
Accessibility (Pa11y live) / a11y (push) Has been cancelled
Accessibility (Pa11y live) / a11y (push) Has been cancelled
ПИЛОТ.md — снимки выката source-edit + включения флага и тумблера. findings tails-doc — статус ВЫКАЧЕНО НА БОЕВОЙ. CLAUDE.md §6 последняя продуктовая фича обновлена, снята устаревшая ремарка про синк квинтета (закрыто в PSR/Tooling), плюс досессионная правка Б-1 ИП/ЮKassa. Нормативный квинтет Pravila/PSR/Tooling без изменений (агент normative-sync подтвердил). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
|
||||
# CLAUDE.md — техконтекст Лидерры
|
||||
|
||||
**Версия:** 2.47 от 15.06.2026 — структурная компактизация: история версий и журнал фаз вынесены в [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md); разделы про «мозг» (router / наставник / observer / enforcement / разработка реестра инструментов) убраны — управляющий слой выделен в отдельный репозиторий **claude-brain** (ADR-020). Правила, нормативка и состав продукта **не изменены** — только структура файла. Полная история — в CHANGELOG. **NB:** cross-ref версии CLAUDE.md в Pravila/PSR/Tooling указывают 2.46 — синхронизация квинтета на 2.47 — отдельный follow-up.
|
||||
**Версия:** 2.47 от 15.06.2026 — структурная компактизация: история версий и журнал фаз вынесены в [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md); разделы про «мозг» (router / наставник / observer / enforcement / разработка реестра инструментов) убраны — управляющий слой выделен в отдельный репозиторий **claude-brain** (ADR-020). Правила, нормативка и состав продукта **не изменены** — только структура файла. Полная история — в CHANGELOG. (Прежняя ремарка про рассинхрон cross-ref квинтета на 2.47 снята — закрыто в PSR v3.24 / Tooling v2.25 от 14.06.2026.)
|
||||
|
||||
**Назначение:** оперативная карта для Claude Code. Не первоисточник — первоисточники указаны в §0.
|
||||
**Владелец и режим правок:** все изменения этого файла — **только** через плагин `claude-md-management` (skills `/claude-md-management:claude-md-improver` для audit/targeted-updates и `/claude-md-management:revise-claude-md` для capture session-learnings). Прямые правки запрещены — см. §5 п.11.
|
||||
@@ -241,11 +241,11 @@ trivy image liderra:latest
|
||||
- `ЭТАЛОН.md` (корень репо) — локальная dev-версия (git/окружение/временное/демо).
|
||||
- `ПИЛОТ.md` (корень репо) — боевая интернет-версия liderra.ru (доступ/HTTPS/сервер/БД/безопасность/YC Lockbox).
|
||||
|
||||
**Последняя продуктовая фича:** определение региона лида по телефону + каскадная маршрутизация (DaData → реестр Россвязи → tag-fallback) — на проде, включена на 100%.
|
||||
**Последняя продуктовая фича:** разблокировка смены источника проекта без потери лидов — матч поставщиковых лидов по слепку `project_routing_snapshots` (флаг `routing_match_by_snapshot`), Эпик 4 онлайн-заморозка 18:00→00:00 + `FlushDeferredOnlineSyncJob` (00:05 МСК), экран «Вечерняя заливка» (`supplier_sync_runs`) и дружелюбный тумблер управления флагом в админке «Интеграция с поставщиком». На проде liderra.ru (26.06.2026), флаг **ВКЛЮЧЁН**, идёт суточное наблюдение. Откат — тумблер в ВЫКЛ.
|
||||
|
||||
**Полный журнал фаз и работ** (что и когда делалось, включая историю «мозга») — в [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md).
|
||||
|
||||
**P0-блокер:** **Б-1** (реквизиты юр. лица, ждут регистрации ООО). От него зависят Диз-3, DO-2, DO-4.
|
||||
**Б-1 (юр. лицо) — закрыт:** ИП **зарегистрирован** (НЕ ООО), договор с **ЮKassa** готов — осталось только подписать; после подписи включается онлайн-оплата (флаг `billing_yookassa_enabled`). Зависевшие Диз-3, DO-2, DO-4 — разблокированы. Источник истины — память `project-legal-entity-ip-yookassa-2026-06-25` (25.06.2026).
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Хвосты сессии — разблокировка смены источника (Эпики 1–6)
|
||||
|
||||
**Дата:** 25–26.06.2026. **Ветка:** `feat/source-edit-snapshot-routing` (20 коммитов, **НЕ запушено**).
|
||||
**Флаг:** `system_settings.routing_match_by_snapshot` — **ВЫКЛ** (прод не меняется до включения).
|
||||
> ✅ **СТАТУС 26.06.2026: ВЫКАЧЕНО НА БОЕВОЙ liderra.ru, ФЛАГ ВКЛЮЧЁН, ТУМБЛЕР В АДМИНКЕ.** Ветка влита в gitea `main` (`3cedf28f..f9f86ca0`, 24 коммита), выкачена скриптом `bin/deploy-source-edit.sh`. Флаг `routing_match_by_snapshot=true` (фича боевая активна). Дружелюбный тумблер ВКЛ/ВЫКЛ на экране «Интеграция с поставщиком» (коммит `f9f86ca0`). Идёт сутки наблюдения (drift=0, сверять «Вечерней заливкой»). Деньги клиента целы (1 838 400 ₽ / 1013). Детали выката — `ПИЛОТ.md` (снимки 26.06 ~01:00 и ~01:25). Откат — тумблер в ВЫКЛ или флаг `false`. Хвосты ниже — историческая хроника до выката.
|
||||
|
||||
**Дата:** 25–26.06.2026. **Ветка:** `feat/source-edit-snapshot-routing` (выкачена в main 26.06).
|
||||
**План:** [docs/superpowers/plans/2026-06-25-source-edit-unblock-snapshot-routing.md](../plans/2026-06-25-source-edit-unblock-snapshot-routing.md).
|
||||
|
||||
## Что СДЕЛАНО и закоммичено (все эпики 1–6 закрыты)
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
|
||||
> 🟢 **АКТУАЛЬНО (25.06.2026, со слов владельца) — перебивает любые упоминания «ждут ООО / Б-1» в снимках ниже:** юр. лицо — **ИП, зарегистрировано** (НЕ ООО). Договор с **ЮKassa готов, осталось только подписать**; после подписи включается флаг `billing_yookassa_enabled` и приём онлайн-оплаты. «Регистрация ООО» как блокер — **снято, не актуально.**
|
||||
|
||||
**Снимок снят:** 26.06.2026 (~01:25 UTC) — **🟢 ФЛАГ `routing_match_by_snapshot` ВКЛЮЧЁН + ТУМБЛЕР В АДМИНКЕ (по команде владельца «включай и выведи в админку»).** Фича «разблокировка смены источника» теперь **боевая активна**: маршрутизация поставщиковых лидов по слепку, замок смены источника снят. Флаг в `system_settings` = `true` (type=bool, понятное рус. описание для админки). **Добавлен дружелюбный тумблер ВКЛ/ВЫКЛ** на экране админки «Интеграция с поставщиком» (карточка «Разблокировка смены источника»): `GET/POST /api/admin/supplier-integration/source-edit-flag` (`AdminSupplierIntegrationController` → пишет `system_settings` + `saas_admin_audit_log`, без 30-симв. основания), VSwitch + диалог подтверждения. Коммит `f9f86ca0` (TDD: 5 эндпоинт-тестов + фронт-спек; larastan чист; проверено глазами через Playwright), выкачен тем же скриптом `bin/deploy-source-edit.sh` (миграции no-op — таблицы уже есть). **Verify:** HTTP 200, роут тумблера зарегистрирован на проде, флаг читается `true` → тумблер показывает «Включена». **💰 Деньги клиента ЦЕЛЫ** (правки только код/настройка): tenant 2 = 1 838 400 ₽ / 1013 сделок. **Откат:** тумблер в ВЫКЛ (или флаг `false`) — мгновенно. **ИДЁТ сутки наблюдения** (drift=0, лиды доезжают, сверять экраном «Вечерняя заливка»). После чистых суток — можно спокойно показывать клиентам снятие замка. Кодовая фраза стены — «роутер-наставник».
|
||||
|
||||
**Снимок снят:** 26.06.2026 (~01:00 UTC) — **🚀 ВЫКАЧЕНА фича «разблокировка смены источника проекта без потери лидов» (Эпики 1–6) на боевой liderra.ru (gitea/main `3cedf28f..e8434231`, 23 коммита).** Метод — рунбук `docs/superpowers/runbooks/2026-06-18-gitea-prod-deploy-pipeline.md` через скрипт `bin/deploy-source-edit.sh`: бэкап кода + дамп БД `/tmp/liderra-pre-deploy-2026-06-26-0052.dump` → клон gitea main → npm build → maintenance → rsync overlay → composer/optimize (www-data) → **миграции через `sudo -u postgres psql`** (2 таблицы `supplier_deferred_sync` v8.54 + `supplier_sync_runs` v8.55, GRANT для `crm_supplier_worker`, отмечены в `migrations` batch 22) → up. **Что теперь живёт:** матч источника по слепку `project_routing_snapshots` (Путь A, **за флагом `routing_match_by_snapshot` = ВЫКЛ** — снятие замка клиентам пока НЕ видно), UX редактирования источника + баннер applies-from (Эпик 3, тоже за флагом по факту замка), **Эпик 4 онлайн-заморозка 18:00→00:00 АКТИВЕН** (прод в `supplier_export_mode=online`): вечерние правки откладываются в `supplier_deferred_sync`, `FlushDeferredOnlineSyncJob` досылает в 00:05 МСК (в расписании, `/etc/cron.d/liderra-scheduler` schedule:run ежеминутно www-data, `scheduler_heartbeats` свежие 0 fail), экран «Вечерняя заливка» в админке (Эпик 5). **Также в этом выкате — фикс реального прод-бага:** смена только лимита/региона/дней на защищённом поставщиком проекте больше не блокируется ложным 422 «нельзя сменить источник» (`ProjectService::sourceValueChanged` сравнивает значение, а не присутствие ключа). **Verify после:** HTTP **200**, обе таблицы + grants на месте, `migrate:status` оба `[22] Ran`, флаг ВЫКЛ подтверждён, планировщик жив. **💰 Деньги клиента ЦЕЛЫ** (выкат добавил лишь 2 пустые таблицы, балансы/сделки не трогал): tenant 2 = **1 838 400.00 ₽ / 1013 сделок** (+2000₽ к снимку 25.06 — обычное пополнение за день, сделок столько же). **Откат:** бэкап кода `/tmp/app-backup-2026-06-26-0052.tgz` + дамп БД (см. выше) на проде; БД-откат = `DROP TABLE supplier_deferred_sync, supplier_sync_runs CASCADE` + удалить 2 строки из `migrations`. **СЛЕДУЮЩЕЕ (за владельцем):** включить флаг `routing_match_by_snapshot` → сутки наблюдать (drift=0, лиды доезжают, сверять экраном «Вечерняя заливка») → потом показывать клиентам снятие замка (Эпик 3). GitHub `origin` мёртв (suspended, 403) — бэкап только gitea. Кодовая фраза стены — «роутер-наставник».
|
||||
|
||||
**Снимок снят:** 25.06.2026 (~07:00 UTC) — **🚀 ВЫКАЧЕН ВЕСЬ main на боевой liderra.ru (gitea/main, поверх состояния 23.06).** По команде владельца «выкатывай» накатан весь накопившийся с 23.06 стек (15 коммитов), не только U1+B1. **Что теперь живёт:** U1 (понятные подписи источника проекта вместо «домен конкурента/донор»), B1 (счётчик «хватит на N дней» от дневного заказа `requiredLeadsForTomorrow`), онбординг-фиксы косяк 03–07 (реквизиты первым шагом визарда, «Вся РФ» одной галочкой, неподтверждённая почта зовёт подтвердить, окно перегрузки на «вы» + кнопка пополнения, мелочи 07), нормализация телефона-источника, почта поддержки `support@liderra.ru`, биллинг-фикс «префлайт/блок берут действующую версию тарифа по дате» (`116b0aaa`), **публичные юр-страницы оферта/политика/возврат + страница цен** (готовились под ЮKassa-модерацию). **Метод (по `deploy/README.md`):** `git archive HEAD app/ db/` + локальная Vite-сборка (sitekey SmartCaptcha `ysc1_XhLB…` совпал с прод-бандлом) → `cat | ssh` через бастион → `sudo tar` overlay в `/var/www/liderra/` (+`app/public/build`) → `chown www-data` → `redeploy.sh`. **Миграций НЕТ** (`migrate --force` = «Nothing to migrate»); **БД не менялась**, schema-канон v8.53 (тело функции, не DDL). **💰 Деньги клиента ЦЕЛЫ:** tenant 2 = **1 836 400.00 ₽ / 1013 сделок** (БД не тронута). **Verify после:** HTTP **200** (главная+`/login`), queue перезапущен (PID активен), 0 ошибок в свежем логе, `config.php` = **`www-data:www-data 664` READABLE** (квирк 107 чисто), `migrate:status` 0 pending. **Бэкап отката на проде:** `/home/ubuntu/pre-deploy-u1b1-20260625-064928-code.tar.gz` (2.95М, код без vendor) + `-env.bak`. **`redeploy.sh` дополнительно усилен** (`rm` старых кэшей перед `optimize` → config.php владелец www-data; синкнут на прод, sha совпал). **⚠️ Онлайн-оплата ЮKassa ПО-ПРЕЖНЕМУ OFF** (флаг `billing_yookassa_enabled` отсутствует/false) — юр-страницы и цены теперь публичны (для модерации), но приём платежей выключен **до подписания договора с ЮKassa** (ИП зарегистрирован; ООО не требуется — см. пометку «АКТУАЛЬНО» вверху файла). Кодовая фраза стены — «роутер-наставник».
|
||||
|
||||
Reference in New Issue
Block a user