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

37 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
## Plane per-agent authorship — ЗАВЕРШЕНО И ПОДТВЕРЖДЕНО (03.06)
### PR #9 `e9fd3052` ЗАМЕРЖЕН + прод пересобран
- Код: `config.py` (7 bot-полей), `plane_sync.py` (`PLANE_BOT_TOKENS`, `STAGE_AUTHORS`, `_headers_for(author)` fallback, `add_comment(author=)` POST под токеном бота), точки вызова прокидывают author. GET/PATCH под общим токеном (не тронуты). 166 passed (158+8), 9 baseline.
- ⚠️ Config-патч ОБЯЗАТЕЛЕН: образ уже содержит `ORCH_PLANE_BOT_*` env → без полей в config pydantic падает `extra_forbidden`. Прод поднялся → патч сработал.
### 🔑 ГЛАВНЫЙ УРОК: 403 → project_members
- Боты были в **workspace_members**, но комментить можно только **project_members**. POST коммента давал **403 Forbidden** (аутентификация ок, прав нет).
- Фикс: добавила 7 ботов в `project_members` проекта `7a79f0a9-...` (role 15, member). Бэкап `plane-projmembers-backup-*`.
- ⚠️ NOT NULL `member_id` — без него INSERT падал (транзакция откатывалась молча). Правильный INSERT: id, role, **member_id**, project_id, workspace_id, view_props/default_props/preferences='{}', sort_order=65535, is_active, created_at, updated_at.
### ✅ БОЕВАЯ ПРОВЕРКА ПРОЙДЕНА (proof из БД)
- Каждый из 7 ботов запостил коммент на живую ET-009 (`64e98247-...`) → **HTTP 201**.
- `issue_comments JOIN users ON actor_id` показал авторов: 🧠 Analyst / 🏗️ Architect / 💻 Developer / 🔍 Reviewer / 🧪 Tester / 🚀 Deployer / 🌊 Стрим — НЕ mva154.
- Тестовые комменты убраны (soft-delete `deleted_at`, UPDATE 7 → 0 живых).
### ⚠️ ГРАБЛЯ shell/psql (потеряла время — на будущее)
- heredoc через `ssh '...'` с вложенными кавычками/скобками в python/SQL — постоянно ломается (глотает вывод, `(` unexpected, кавычки съедаются).
- psql `-v var=...` без кавычек = идентификатор (column "font" does not exist).
- `scp` в контейнере НЕТ.
- **РАБОЧИЙ способ передать скрипт на сервер:** `write` локально → `base64 -w0``echo '<b64>' | base64 -d > /tmp/x` на сервере → `docker cp``psql -f`. Надёжно, без экранирования.
### Plane identity — справочник
- БД Plane: контейнер `plane-app-plane-db-1`, user `plane`, пароль = `docker exec plane-app-api-1 printenv POSTGRES_PASSWORD`.
- Workspace `ag_proj` = `903e12e8-65c9-40a0-a7f6-0186f8af42d4`. Главный проект enduro = `7a79f0a9-5278-49cd-9007-9a338f238f9c`.
- 7 ботов: email `<role>@orch.local`, `is_bot=t`, в workspace_members(role 15) И project_members(role 15). Токены 60-симв в `.env` `ORCH_PLANE_BOT_<ROLE>`.
- Автор коммента = `issue_comments.actor_id` = владелец токена. Роли: ANALYST/ARCHITECT/DEVELOPER/REVIEWER/TESTER/DEPLOYER/STREAM.
- ⚠️ При создании НОВЫХ проектов в Plane — ботов надо добавлять в project_members нового проекта, иначе 403. (Кандидат на автоматизацию: при ORCH-6 resolve проекта — авто-добавление ботов.)
### ИТОГ дня 03.06
Закрыто: ORCH-1..7, L1L2L3, M-6, Plane per-agent authorship (Вариант A, боты). Всё в проде, проверено вживую.
Открыто (НЕ срочно): авто-добавление ботов в project_members при новом проекте.