3.3 KiB
3.3 KiB
Plane per-agent authorship (Вариант A) — инфра ГОТОВА, код запущен (03.06 вечер)
Задача Славы: видеть в Plane КТО написал комментарий (агенты орка + Стрим), а не единый mva154. Выбран Вариант A (честные аккаунты), способ (b) — боты в БД.
Инфра (СДЕЛАНО Стримом напрямую — это БД-операция, не код):
- Plane self-hosted, Docker (
plane-app-*), БДplane-app-plane-db-1, кредыplane:plane, dbplane. - 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_TOKENSmap +_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цел. .envGitea-токен — УЖЕ синхронизирован (40 симв == контейнер). Заметка Dev устарела.