server-monitor-manager/agents/hermes/notes/salvage-2026-08-18/hermes-desktop-attachments/desktop-attachments/0.9.0-green-trunk.md
Ochenstarik 23eb3f5233 chore(agents): разбор рабочих папок с диска на 2026-08-18
Задания, отчёты и патчи, лежавшие в C:\Users\Ochenstarik\projects и в
домашней папке, перенесены в agents/. Разложено по агентам там, где имя
файла позволяло определить автора; остальное — в _salvage-2026-08-18/
и разбирается вручную.

Патчи в notes/salvage-2026-08-18/ — незакоммиченная работа из брошенных
рабочих копий: она существовала только на диске.

Тяжёлое (релизные архивы, инсталляторы, наборы данных) в репозиторий не
попало: оно лежит рядом, в Agent_projects/_archive и Agent_projects/_data.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 14:19:54 +07:00

3.8 KiB
Raw Permalink Blame History

Предусловие ко всему этапу 0.9. Пока сборка основной ветки красная, ни одно последующее изменение не проверяемо.

Репозиторий: https://github.com/ochenstarik-ui/kagent (локально C:\Users\Ochenstarik\kagent) Контекст решений: PR #2 — ADR-0004..0016 и разделы ТЗ 35-41.

Что сломано сейчас

  1. Node-job CI падает на шаге setup-node: в репозитории нет pnpm-lock.yaml. Следствие: pnpm typecheck / test / build никогда не выполнялись.
  2. services/gateway/src/main.rs:184 — get_request_id() вызывает .or_else() на String. У String такого метода нет, это ошибка компиляции E0599. CI до неё не доходит: раньше падает cargo fmt --check.
  3. Там же: структура RateLimiter объявлена (строки ~37-75), но нигде не создаётся, и в обработчике live() не используется параметр State(state). При clippy -D warnings это dead_code и unused_variables.
  4. services/control-plane/src/main.ts:9 — logger.transport.target "pino-pretty", пакета нет в зависимостях, сервис падает при старте.
  5. services/control-plane/src/auth.ts:65 — внутри ESM-модуля вызывается require("node:crypto"). В ESM require не определён, регистрация и логин падают в рантайме.
  6. services/control-plane объявляет "test": "vitest run", но тестовых файлов там нет, vitest выходит с кодом 1.
  7. Пять Python-сервисов (~1700 строк) не покрыты CI вообще: Python-job в .github/workflows/ci.yml отсутствует.
  8. scripts/validate_repository.py существует, но не вызывается из CI.
  9. В индексе лежит бинарник services/reasoning-engine/src/pycache/engine.cpython-311.pyc.

Что сделать

  • закоммитить pnpm-lock.yaml;
  • починить get_request_id, привести код к cargo fmt, подключить RateLimiter к роутеру как middleware либо удалить его вместе с упоминанием в CHANGELOG;
  • добавить pino-pretty в зависимости control-plane либо убрать transport;
  • заменить require на статический импорт pbkdf2 из node:crypto;
  • добавить unit-тесты control-plane (минимум: переходы статусов задачи, hashPassword/verifyPassword round-trip, 401 без токена) — vitest должен находить тесты;
  • добавить в CI job python: ruff + pytest, и шаг запуска scripts/validate_repository.py;
  • git rm --cached удалить .pyc из индекса.

Критерий приёмки

  • зелёный CI на ветке и на main: node, rust, python;
  • cargo clippy --all-targets -- -D warnings проходит без правок warning-уровня;
  • docker compose up -d поднимается, control-plane отвечает 200 на /health/live, POST /v1/auth/register и POST /v1/auth/login работают против PostgreSQL;
  • в PR перечислено, что именно было сломано и чем это подтверждено.

Ограничения

  • не отмечать пункты roadmap выполненными без доказательства (ADR-0016);
  • существующие тесты не изменять без явного согласования (ADR-0005);
  • секреты в трекаемые файлы не помещать.