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` слал по