diff --git a/docs/superpowers/2026-08-02-PROMT-ostalos-vladelcu.md b/docs/superpowers/2026-08-02-PROMT-ostalos-vladelcu.md index afe6d81d..6ae97d1b 100644 --- a/docs/superpowers/2026-08-02-PROMT-ostalos-vladelcu.md +++ b/docs/superpowers/2026-08-02-PROMT-ostalos-vladelcu.md @@ -93,10 +93,20 @@ 🔴 **Не сводить эту ветку в main, пока телефоны не вычищены** — иначе ПДн уедут в общую историю, и вычистить их будет уже переписыванием истории. -### 🟡 №3. Четыре старых английских сообщения в ленте клиента +### ⬛ №3. Английские сообщения в ленте клиента — **вычищены 01.08.2026** -«Rejected at moderation.» от 30.07 никуда не делись — новые сообщения просто легли поверх. -Вреда нет, кроме вида. Убрать — правка боевой базы, только с «да» владельца. +🔴 **Их было 17, а не 4.** Прежняя цифра в промте — ошибка, взятая на веру и не проверенная: +`id 1–15` («Accepted at moderation.», среди них два «Rejected») от 30.07 15:00 плюс +`id 18, 19` (повтор «Rejected») от 17:00. Датчик, которым считать: тело сообщения целиком +из ASCII — `where body ~ '^[[:ascii:]]+$'`. + +Удалены по явному «да» владельца, ровно по списку id, с проверкой перед стиранием: +под удаление отбирается ровно 17 строк и каждая обязана дословно совпасть с +«Accepted at moderation.» / «Rejected at moderation.», иначе скрипт отменяется. + +**Замер после:** в ленте осталось **15** сообщений, английских **0**, баннеров без единого +сообщения **0** — русская причина есть у каждого из 15. Копия удалённых строк лежит на бою: +`/var/www/liderra/app/storage/app/udalennye-soobshcheniya-2026-08-01.json`. ### ⬛ №4. Три сбойных задания на заливку картинок — **разобран 01.08.2026, вреда нет** @@ -200,6 +210,15 @@ 🪤 **Файл, созданный от `www-data`, обычным пользователем не удаляется** — убирать `sudo rm -f`, иначе останется мусор в `/tmp`. +🔴🪤 **Страховку перед необратимым — ПРОВЕРЯТЬ, а не надеяться.** 01.08 при чистке ленты +скрипт сперва писал копию удаляемых строк, потом удалял. Копия не записалась (папки по +указанному пути не было), `file_put_contents` вернул `false` **предупреждением, а не +исключением**, скрипт спокойно поехал дальше — и удалил, оставшись без страховки. Спасло +только то, что полный список строк был снят отдельным чтением ДО удаления. +Лечение: `if ($ok === false) { прекратить }` перед любым `delete`, и путь проверять +`is_dir()` заранее. NB: приложение лежит в `/var/www/liderra/app`, значит storage — +`/var/www/liderra/app/storage/app`, а не `/var/www/liderra/storage/app`. + Полезные таблицы: `ad_campaign_messages` (лента клиента), `ad_campaign_banners` (статус и причина по объявлению), `ad_creative_jobs` (задания роботу), `ad_campaigns`. @@ -255,8 +274,12 @@ Реклама Яндекса **закрыта**: робот обучен, кампания была учебной, документов не будет и они не нужны (см. №1). Возвращаться к ней не надо. -Хвост №4 разобран и закрыт 01.08: вреда нет, мусор в кабинете оставлен намеренно. -Дальше — либо «да» владельца на мелочь №3, либо телеграм по порядку Г1 → Г2. -Телеграм — единственное направление, где осталась настоящая работа. +Хвосты №1, №3 и №4 закрыты 01.08. Осталось **только №5 — телеграм**, и это единственное +направление, где есть настоящая работа. + +🔴 Уточнение к Г1, замер живой 01.08: на боевом **нет ни одной таблицы телеграма** +и робота МТС на сервере нет. Значит Г1 упирается не в кампанию владельца, а в **выкат +модуля** — отдельная работа и отдельное разрешение. Порядок: выкат → кампания владельца +→ приёмка глазами в кабинете МТС. Если владелец молчит — не выдумывать себе работу на боевом и не «дожимать» уже закрытое.