Files
wiki/memory/2026-06-03.md
2026-06-03 10:50:01 +03:00

3.3 KiB
Raw Blame History


Plane per-agent authorship (Вариант A) — инфра ГОТОВА, код запущен (03.06 вечер)

Задача Славы: видеть в Plane КТО написал комментарий (агенты орка + Стрим), а не единый mva154. Выбран Вариант A (честные аккаунты), способ (b) — боты в БД.

Инфра (СДЕЛАНО Стримом напрямую — это БД-операция, не код):

  • Plane self-hosted, Docker (plane-app-*), БД plane-app-plane-db-1, креды plane:plane, db plane.
  • Workspace ag_proj = 903e12e8-65c9-40a0-a7f6-0186f8af42d4.
  • Ключевой факт: автор комментария в Plane = владелец токена (api_tokens.user_id), НЕ label. Поэтому нужен отдельный user на агента.
  • Было: 2 токена (orchestrator, analyst-agent) — ОБА на mva154 → всё под mva154.
  • Создано 7 сервис-ботов (is_bot=t, role 15 member в ag_proj), email <name>@orch.local, каждый со своим 60-симв сервисным токеном:
    • 🧠 orch-analyst, 🏗️ orch-architect, 💻 orch-developer, 🔍 orch-reviewer, 🧪 orch-tester, 🚀 orch-deployer, 🌊 orch-stream (я)
  • SQL-скрипт: /tmp/plane_bots.sql на сервере (идемпотентный, транзакция, ON CONFLICT). Потребовал CREATE EXTENSION pgcrypto (gen_random_bytes).
  • Бэкап БД перед записью: /home/slin/plane-identity-backup-1780472581.sql (users+workspace_members+api_tokens).
  • Токен Analyst-бота проверен живым GET → HTTP 200, видит 4 проекта. Авторство работает.
  • Токены в .env (merge-append, блок «M-6.5 Plane per-agent»): ORCH_PLANE_BOT_ANALYST/ARCHITECT/DEVELOPER/REVIEWER/TESTER/DEPLOYER/STREAM. Бэкап .env.bak-<ts>.

Код (Dev, ветка feature/plane-per-agent-author, ТЗ DEV_TASK_PLANE_PER_AGENT_AUTHOR.md):

  • config.py: 7 полей bot-токенов.
  • plane_sync.py: PLANE_BOT_TOKENS map + _headers_for(author) (fallback на общий токен если роль пуста/токен пуст). add_comment(..., author=None) — POST под токеном агента. GET/PATCH НЕ трогать (под общим токеном).
  • Точки вызова прокидывают author по роли стадии: stage_engine (284/305/316 analyst, 369 tester, 409 architect), launcher:472 (текущий агент), webhooks/plane (212/255 analyst, 267 целевая стадия), plane_sync stage-уведомления (255 🔄 → stream, 267 → deployer). Неочевидное → stream.
  • Baseline 158 passed. Тесты tests/test_plane_author.py.
  • ⚠️ Мерж — Стрим после живой проверки + реальный тест-комментарий от каждого бота в Plane.

Закрыто разведкой (НЕ требовало работы):

  • Хук enduro-trails swap — УЖЕ применён (live md5 == кандидат 2b60c65b...). Бэкап .bak-1780468526 цел.
  • .env Gitea-токен — УЖЕ синхронизирован (40 симв == контейнер). Заметка Dev устарела.