From f1fe45f9e8a3035c84d935df443bbf8b2178ca07 Mon Sep 17 00:00:00 2001 From: Stream Date: Wed, 3 Jun 2026 21:30:01 +0300 Subject: [PATCH] auto-sync: 2026-06-03 21:30:01 --- memory/2026-06-03.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/memory/2026-06-03.md b/memory/2026-06-03.md index f615da6..9cf5ef5 100644 --- a/memory/2026-06-03.md +++ b/memory/2026-06-03.md @@ -106,3 +106,29 @@ approved=a519a341-dada-4a91-8910-7604f82b79c5 rejected=ba958f3c-5db5-461d- - Боевой перезапуск #6: task 26 = ET-011, analyst запущен (job_id=7). - ⚠️ Мелочь: ветка `feature/ET-011-untitled` (slug untitled — в тестовом webhook не было name; реальный Plane шлёт name, не критично). - ⚠️ Дедуп webhook по телу: повторный идентичный payload → {"status":"duplicate"}. Для теста уникализировать тело (activity_id). + +--- + +## PR #11 — финальный отчёт Dev (03.06 ~18:25, дополнение) +- **Баг1 (description):** `src/plane_sync.py` → `fetch_issue_description(issue_id, project_id)` — переиспользует GET issue-detail + shared-токен `PLANE_HEADERS` (как `fetch_issue_sequence_id`). Берёт `description_stripped`, при пустом стрипает `description_html` (`_strip_html`). На ошибке → `""` (не бросает). Вызов в `start_pipeline` ПЕРЕД QG-0. Если и API пусто → честный QG-0 fail. +- **Баг2a (uniqueness):** `src/db.py` → `ensure_unique_work_item_id(work_item_id, repo)` — guard ПОВЕРХ M-6 derive (derive не тронут). ET-NNN занят в tasks для repo → шагает вперёд. Изоляция по repo. Warning при реассайне. +- **Баг2b (worktree, ~15 строк):** worktree в `git_worktree.py` ключуется по branch, таски реверс-резолвятся по `(repo, branch)`. С 2a work_item_id уникален → префикс ветки уникален. Доп. страховка: занятая ветка → `feature/{work_item_id}-{plane_id[:8]}` + warning. Сам git_worktree.py НЕ переписан (достаточно уникальности ветки). +- Тесты: `tests/test_pipeline_start_bugs.py` — 5 новых passed. Коммиты `fa74610`, `ac9f5a0`, `c69e113`. + +## Уроки tooling (03.06) +- **Маски ломают bash/psql/python-heredoc:** кавычки и спецсимволы в маскированных значениях рвут командную строку и `python3 -c`. Решение: писать значения во временный bash/sql-скрипт через `write`, исполнять файлом — масок нет внутри write. +- **``/`<>` в .env ломают `source`:** строка вида `HEYGEN_TALKING_PHOTO_ID=` — `<>` интерпретируется как редирект. На ключи не влияет, но `source .env` падает. Чистить такие placeholder-строки или грепать конкретный ключ. +- **Plane DNS-изоляция:** Plane-контейнеры (docker-сеть 172.21.0.0/16) НЕ резолвят внешние домены даже через 8.8.8.8. Оркестратор в host-сети — резолвит. Поэтому webhook URL в БД Plane = `http://172.21.0.1:8500/webhook/plane` (внутренний gateway), НЕ внешний DuckDNS-домен. Это уже починено, НЕ трогать. +- **Plane `issue.updated` шлёт только изменённые поля** — на смене статуса description отсутствует. Любая логика, требующая полей тикета на updated-событии, должна дотягивать их из Plane API, а не из payload. +- **Webhook-дедуп по телу:** идентичный payload → `{"status":"duplicate"}`. Для повторного теста уникализировать тело (напр. activity_id/timestamp). + +## Tokenator — лимит исчерпан (03.06) +- Ключ `TOKENATOR_API_KEY` (`sk-fp-...5625`), baseUrl `https://api.tokenator.top/v1`. +- Месячная квота: 200,000,000 токенов. Потрачено 200,116,633 → remaining −116,633. Всё блокируется (`Token limit exceeded`), включая `/v1/models`. +- Нет эндпоинтов usage/account/limits (404). Расход виден в теле ошибки completions: `{"error":"Token limit exceeded","usage":{"remaining":...,"token_limit":...,"tokens_used":...}}`. +- `.dev`-домен даёт SSL exit 35; `.top` (из openclaw.json) — рабочий. +- Не блокирует OpenClaw — авто-фолбэк на другие провайдеры (OpenRouter DeepSeek/Grok). Claude CLI агентов (analyst и т.д.) Tokenator не касается. + +## Открытый хвост (для следующей сессии) +- Боевой #6 перезапущен как task 26 / **ET-011**, analyst (job_id=7) запущен ~18:15. Проверить: дошёл ли до In Review, появилось ли уведомление с кнопкой одобрения, в правильную ли ветку писал. +- Tokenator: ждать сброса квоты (вероятно 1-е число) или писать саппорту на повышение лимита.