From 2dab5f2f8d7500c8ffa0bd6fac92541aa812ca49 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: Mon, 3 Aug 2026 15:06:13 +0300 Subject: [PATCH] =?UTF-8?q?docs,=D0=BF=D0=B8=D0=BB=D0=BE=D1=82:=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D0=B8=D1=81=D1=8C=20=D0=BE=20=D0=B2=D1=8B=D0=BA?= =?UTF-8?q?=D0=B0=D1=82=D0=B5=20=D0=BA=D0=BE=D1=88=D0=B5=D0=BB=D1=8C=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=82=D0=B5=D0=BB=D0=B5=D0=B3=D1=80=D0=B0=D0=BC=D0=B0?= =?UTF-8?q?=20=D0=B8=20=D0=BF=D0=BE=D1=87=D0=B8=D0=BD=D0=BA=D0=B5=20=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=BE=D0=B6=D0=B0=20=D0=B2=D0=B8=D1=80=D1=82?= =?UTF-8?q?=D1=83=D0=B0=D0=BB=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Три вещи на боевом: кошелёк и заморозка телеграм-рекламы, робот с потолком 1 000 ₽, сторож рендер-виртуалки научен читать ok. Замеры до и после, пути отката, грабли распаковки и приёмка вырезанием прямо на бою. Отдельно записан открытый хвост: боевой «Поиск клиентов» отстаёт от ветки на 9 файлов и представляет собой старую основу плюс точечную заплатку рендера — такого дерева нет ни в одной ветке. Прежняя запись «Finder совпадает с main» от 15.07 помечена как устаревшая. --- ПИЛОТ.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/ПИЛОТ.md b/ПИЛОТ.md index 12d55174..9f019c8a 100644 --- a/ПИЛОТ.md +++ b/ПИЛОТ.md @@ -16,6 +16,67 @@ --- +## 🆕 ОБНОВЛЕНИЕ 03.08.2026 (вечер) — кошелёк телеграм-рекламы и сторож виртуалки + +**Выкачено три вещи.** Разрешение владельца получено на каждый шаг отдельно. + +### 1. Кошелёк и заморозка телеграм-рекламы + +Порядок соблюдён: **сперва робот, потом портал** — иначе заморозка повисла бы навсегда. + +- **Робот** (машина владельца, `C:\liderra\mts-telegram-robot`): заменены `src/cabinet.js` + и `src/runner.js`, потолок траты снижен **5 000 → 1 000 ₽** по решению владельца на первый + боевой прогон. Опрос идёт: `GET /api/tg-robot/next` → 200 раз в минуту. Робот работает + **задачей Планировщика**, а не висящим процессом. Откат — `C:\liderra\_bak-koshelek-20260803`. +- **Портал**: миграция `mts_cost_rub` (под `crm_migrator`, роль проверена командой), затем + **29 файлов** и пересобранные экраны. Откат — `_deploy-bak-tgkoshelek-20260803.tgz`. + +🔴 **Промт называл 12 файлов, а разошлись 29** — не хватало трёх исходников экранов, +тринадцати тестов и `Pest.php`. Разницу считать **командой**, а не по списку из промта. + +**Замеры боевой базы ДО выката:** кампаний телеграма **0**, списаний `tg_ad` **0** — никто не +пострадал от прежней дыры, возвращать нечего. Рекламный кошелёк на бою **один** (tenant 2). + +### 2. Сторож рендер-виртуалки читает `ok` + +Виртуалка `51.250.1.97` — теперь **единственная точка отказа «Поиска клиентов»** (чужой xf4.ru +умер и снят). Сторож у неё был болен тем же: «ответ меньше 500 = жив», поле `ok` не читалось, +а прежний тест «зелёный при 404» этот изъян охранял. + +Теперь зелёный — только при `ok: true`; 200 без признака `ok` — красный; пустой адрес проверки +больше не подменяется ручкой рендера (она POST-only и на GET даёт 404). **Приёмка вырезанием +на самом бою:** на ручку рендера → красный, без адреса → серый, на живой ручке → зелёный +«занято 0 из 8, прокси 1». Откат — `_bak-storozh-vm-20260803.php`. + +🪤 Зелёный означает, что виртуалка **рассказала о себе**, а не что она отрисует страницу. + +### 3. Сверка после всего + +**Бой и рабочая ветка совпадают байт в байт: 2629 файлов, ноль расхождений.** + +🔴 **Пока шёл выкат, соседняя смена дважды тронула то же самое:** дописала две записи прямо в +рабочую ветку и в 07:11 UTC пересобрала и выложила экраны — через двадцать минут после меня. +Ничего не потеряно (проверено по существу: обслуживаемая сборка телеграма содержит карточку +денег, экраны СМС на месте), но повезло: собери они из дерева без моей работы, портал так же +отвечал бы 200, а экраны молча пропали бы. + +🪤 **На бою копятся по ДВЕ сборки каждого экрана** — распаковка старые не удаляет, решает +только `manifest.json`. Пока безвредно, но мусор растёт с каждым выкатом. + +### 🔴 Открытый хвост: боевой «Поиск клиентов» отстаёт от ветки + +Замер 03.08 вечером: из 35 рабочих файлов `/opt/sales-finder` **9 расходятся** с веткой +(`web/app.py`, `web/bulk.py`, `web/ui.py`, `salesfinder/rubrics.py`, `cities.py`, `models.py`, +`portal.py`, `bulkops.py`, `tools/crawl_rubricator.py`). Боевой — это **старая основа плюс +точечная заплатка рендера от 03.08**; такого дерева нет ни в одной ветке. Тесты туда не +кладут — их отсутствие не расхождение. + +Прежняя запись «Finder совпадает с `main`» (снимок 15.07) **устарела** — не опираться. +Догонять боевой поиск до ветки — отдельная работа и решение владельца: там лежит невыкаченный +«прогрев» от 22.07, и слепая перезапись может сломать поиск. + +--- + ## 🆕 ОБНОВЛЕНИЕ 03.08.2026 (день) — модуль СМС научился определять оператора и час номера **Что выкачено.** Две правки: `d4ccb5ac` — оператор и часовой пояс берутся из бесплатного