From a2a22b34a2bca39d9d19b096352fcc43950f2a5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Thu, 9 Jul 2026 11:05:15 +0300 Subject: [PATCH] =?UTF-8?q?docs(pilot):=20=D0=B2=D1=8B=D0=BA=D0=B0=D1=82?= =?UTF-8?q?=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D1=81=D0=B1=D0=BE=D1=80=D0=B0=20(=D1=88=D0=B0=D0=B3=202)=20+?= =?UTF-8?q?=20=D0=BC=D0=BE=D0=BD=D0=B8=D1=82=D0=BE=D1=80=20=D1=81=D0=B2?= =?UTF-8?q?=D0=B5=D0=B6=D0=B5=D1=81=D1=82=D0=B8=20YC-=D0=B1=D1=8D=D0=BA?= =?UTF-8?q?=D0=B0=D0=BF=D0=B0=2009.07?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- ПИЛОТ.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/ПИЛОТ.md b/ПИЛОТ.md index 72710d20..3144385d 100644 --- a/ПИЛОТ.md +++ b/ПИЛОТ.md @@ -16,6 +16,43 @@ --- +## 🆕 ОБНОВЛЕНИЕ 09.07.2026 — пакетный сбор источников (шаг 2) на боевом + монитор свежести бэкапа + +**Фича «пакетный сбор + честная очередь» выкачена на `lk.liderra.ru`.** Кнопка «Собрать +источники (N)» в подвале «Конкурентного поля», бюджет-гейт с резервом активных лид-проектов, +распорядитель `AutopodborStudyScheduler` (одна дорожка + round-robin между тенантами), крон +`autopodbor:study-tick` (everyMinute). Спека/план/handoff: +`docs/superpowers/{specs,plans}/2026-07-08-autopodbor-step2-batch-*` + +`docs/superpowers/2026-07-09-HANDOFF-autopodbor-step2-batch-STATE.md`. + +- **🔑 Боевой — СКЛЕЙКА, единой «боевой ветки» НЕТ.** Фронт собран из + `gitea/deploy/tariff-range-fix-20260708` (тариф+колонки+мобильный+Метрика; исходник + `pricingTiers.ts` только тут, в `main` НЕТ), бэкенд = `gitea/main` (пауза/сторож). Прод + `app/` без `.git` (rsync-оверлеи). Чтобы не потереть чужое — собрал **интеграцию-надмножество** + `deploy/autopodbor-batch-integrated`: от прод-фронта → cherry-pick свежих бэк-фиксов из `main` + → cherry-pick фичи; доказал `git diff` vs прод-фронт = **только 2 файла фичи**; катил + **хирургически** (`rsync --files-from`, 12 бэк-файлов + замена `public/build` бандл `app-BJ6waEiX.js`), + НЕ всю папку. Файлы поставщика/тарифа не тронуты (md5 сверены до и после). +- **Миграции на ЖИВОЙ Managed** `c9q2cvtjpq3hgq6l0r96` (config закэширован → env-override artisan + не работает): DDL напрямую `psql` как **crm_migrator** (владелец таблиц; пароль crm_migrator + из Lockbox — ID секрета в памяти сессии, `sslmode=require`), одной транзакцией + + ручной `INSERT INTO migrations`. `batch_id` (ADD COLUMN nullable + 2 индекса) + RLS-политика + `autopodbor_runs_supplier_read` (SELECT для `crm_supplier_worker`). +- **Проверено:** сайт 200, маршрут `POST api/autopodbor/study/batch`, ручной тик EXIT 0 (RLS + читается), логи чисты, 0 failed jobs. **Откат:** `/tmp/app-backup-20260709-batch.tgz` + + `public/build.bak-batch-20260709` + обратные миграции. + +**Монитор свежести облачного бэкапа (заменил фальшивый локальный дамп).** Выяснилось: ночной +`liderra-backup.sh` **отключён намеренно 06.07** (дампил мёртвую копию 127.0.0.1; логический +дамп живого кластера невозможен из-за FORCE RLS). Живую базу защищают штатные YC-автобэкапы +(ежедневно ~22:15 UTC, 7 дней + PITR) — проверил напрямую, свежие. Поставлен +`/usr/local/bin/liderra-backup-monitor.sh` + крон `/etc/cron.d/liderra-backup-monitor` (04:00 UTC): +раз в день через `yc` смотрит возраст последней копии, шлёт письмо на `kdv1@bk.ru`, только если +> 27ч. `yc` на VM = `/home/ubuntu/yandex-cloud/bin/yc` (не в PATH, авторизован). `prod-deploy-validator` +П4 «свежесть бэкапа» для managed-схемы — ложная тревога (видит лишь мёртвый локальный дамп). + +--- + ## 🆕 ОБНОВЛЕНИЕ 07.07.2026 (вечер) — сторож поставщиковых тревог понимает режим (потоп писем на ops@ убран) **Контекст:** после дневного переезда в пакетном (batch) режиме `FailoverProjectChannel` слал по