From 469409308062972edeaaa4e8db16613eae3758ae Mon Sep 17 00:00:00 2001 From: Aleksei Pavlov Date: Wed, 24 Jun 2026 20:19:11 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20HANDOFF=202026-06-24=20=E2=80=94=20Zero?= =?UTF-8?q?Post=20+=20PostCast=20session=20summary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HANDOFF_2026-06-24.md | 106 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 HANDOFF_2026-06-24.md diff --git a/HANDOFF_2026-06-24.md b/HANDOFF_2026-06-24.md new file mode 100644 index 0000000..e524b97 --- /dev/null +++ b/HANDOFF_2026-06-24.md @@ -0,0 +1,106 @@ +# HANDOFF — ZeroPost + PostCast сессия 2026-06-19..24 + +## Состояние на момент завершения + +### Серверы +- **prod2** (80.93.52.241): ZeroPost + PostCast + Fermiq + CRM4Auto + Gitea +- **Диск prod2**: 37GB used / 59GB (66%) — норма +- **newvps** (80.93.60.231): AgroTO production + +--- + +## ZeroPost (zeropost.ru) + +### Git commits финальные +- **zeropost-engine**: `e1f2f44` (fix MAX platform API) +- **zeropost-web**: `6f7c47a` (hero + metadata + OG для всех категорий) + +### Что работает +- ✅ Автогенерация: 8 категорий, ротация 4 из 8 каждый день (dayOfYear % 8) +- ✅ Слоты публикации: 08:11/12:11/16:11/20:11 синхронны сайт ↔ ТГ +- ✅ Заметки Зеро: генерация 13:00 → подтверждение → публикация след. день 13:00 +- ✅ tgSend.js — единый модуль отправки в TG (multipart для локальных файлов) +- ✅ Volume uploads примонтирован в engine (23+ позы Зеро видны) +- ✅ draftAutoApprove: только вчерашние черновики LIMIT 4, catch-up при старте +- ✅ pg_advisory_lock в autogen — нет дублей статей +- ✅ Защита от залпа: skip posts > 3ч, 1 пост за тик + +### 8 категорий ZeroPost +| slug | name | генерация | +|------|------|-----------| +| ai-tools | ИИ-инструменты | 17:00 | +| cybersec | Кибербезопасность | 17:05 | +| automation | Автоматизация | 17:10 | +| ai-dev | Разработка с ИИ | 17:15 | +| comparisons | Сравнения | 17:20 | +| tutorials | Туториалы | 17:25 | +| opinions | Мнения | 17:30 | +| digest | Дайджест | 17:35 | + +### Банк тем ZeroPost +- ai-tools: 23 свободных, ai-dev: 26, automation: 22, cybersec: 21 +- comparisons/tutorials/opinions/digest: ~15 каждый +- Жанровые маркеры: [ТУТОРИАЛ][СРАВНЕНИЕ][МНЕНИЕ][ДАЙДЖЕСТ] + +### Настройки в app_settings (ZeroPost БД) +- SITE_PUBLISH_SLOTS: 08:11,12:11,16:11,20:11 +- ZERO_SITE_URL_BASE: https://zeropost.ru/zero +- ZERO_NOTES_APPROVE_HOUR: 9 +- ZERO_NOTES_GENERATE_HOUR: 13 +- ZERO_NOTES_PUBLISH_HOUR: 13 + +--- + +## PostCast (postcast.ru) + +### Git commits финальные +- **postcast-engine**: `4ec3239` — система категорий + банк тем + ротация +- **postcast-tool**: `cdd507f` — AutogenTab UI + +### Что сделано в эту сессию +- ✅ Новые таблицы в БД: channel_categories, category_topics, channel_autogen_settings, best_time_stats +- ✅ posts: +source_topic, +source_category_id, +genre +- ✅ Engine: новый autogenNew.js с ротацией + pg_advisory_lock +- ✅ Engine routes: /api/channels/:id/categories + /api/channels/:id/autogen +- ✅ Tool: AutogenTab.js — полноценная вкладка «Автогенерация» +- ✅ Tool: /api/engine/channels/[channelId]/[[...path]] — catch-all proxy +- ✅ PostCast tool: вкладка «Автогенерация» в ChannelView + +### PostCast архитектура +- Engine: port 3035, uuid rkvh8gvwydl9y9cgy0vuhjuq, DB: postcast@10.0.1.24 +- Tool: port 3043, uuid c12chhkedih62hviw2uk4o93 +- ENGINE_URL в tool: http://host.docker.internal:3035 + +### Что НЕ сделано (следующая сессия) +1. **Аналитика лучшего времени** — таблица best_time_stats создана, нужен воркер + UI +2. **Inbox + AI-ответы** — inbox_messages таблица есть, нужен webhook + classifier +3. **Мультиканальность** — один пост → адаптация под TG/VK/MAX (transform endpoint) +4. **Онбординг** — помощь новому пользователю настроить первый канал +5. **Scheduler PostCast** — запуск autogen по расписанию (сейчас только ручной) + +--- + +## Инфраструктура + +### prod2 — важные константы +- Coolify API token: `5|jWMs5bZf25KUKNEXWVOOCu5BBXO29OEmHeqTSqte3875ea84` +- ZeroPost engine uuid: `gtqe11a2cc6klt1ew9078fdn` +- ZeroPost web uuid: `y4iqlg41hpvl8tcs20wc720y` +- PostCast engine uuid: `rkvh8gvwydl9y9cgy0vuhjuq` +- PostCast tool uuid: `c12chhkedih62hviw2uk4o93` +- ENGINE_SECRET: `zeropost_internal_2026` +- ADMIN_PASSWORD (ZeroPost web): `ZeroPost2026!` + +### Uploads volume +- Хост: /var/www/zeropost-uploads (481 файл включая zero-*.webp) +- ZeroPost engine: примонтирован в /var/www/zeropost-uploads ✅ +- Coolify local_persistent_volumes id=14 (resource_type исправлен) + +### Fermiq backups (prod2) +- /etc/cron.d/farm-backups: daily без фото (~23MB), weekly с фото (~1.5GB) +- Retention: daily 3 дня, weekly 28 дней + +### Замеченные технические долги +- PostCast tool Coolify deploy сломан (SSH key issue) — деплоить через git pull + npm run build + docker restart +- whisper.cpp удалён с prod2 (был 2.1GB от AgroTO) +- ZeroPost web коммит d5a0fb2 в Coolify — не та версия (использовать manual build если нужно)