Задания, отчёты и патчи, лежавшие в 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>
3.8 KiB
3.8 KiB
Предусловие ко всему этапу 0.9. Пока сборка основной ветки красная, ни одно последующее изменение не проверяемо.
Репозиторий: https://github.com/ochenstarik-ui/kagent (локально C:\Users\Ochenstarik\kagent) Контекст решений: PR #2 — ADR-0004..0016 и разделы ТЗ 35-41.
Что сломано сейчас
- Node-job CI падает на шаге setup-node: в репозитории нет pnpm-lock.yaml. Следствие: pnpm typecheck / test / build никогда не выполнялись.
- services/gateway/src/main.rs:184 — get_request_id() вызывает .or_else() на String. У String такого метода нет, это ошибка компиляции E0599. CI до неё не доходит: раньше падает cargo fmt --check.
- Там же: структура RateLimiter объявлена (строки ~37-75), но нигде не создаётся, и в обработчике live() не используется параметр State(state). При clippy -D warnings это dead_code и unused_variables.
- services/control-plane/src/main.ts:9 — logger.transport.target "pino-pretty", пакета нет в зависимостях, сервис падает при старте.
- services/control-plane/src/auth.ts:65 — внутри ESM-модуля вызывается require("node:crypto"). В ESM require не определён, регистрация и логин падают в рантайме.
- services/control-plane объявляет "test": "vitest run", но тестовых файлов там нет, vitest выходит с кодом 1.
- Пять Python-сервисов (~1700 строк) не покрыты CI вообще: Python-job в .github/workflows/ci.yml отсутствует.
- scripts/validate_repository.py существует, но не вызывается из CI.
- В индексе лежит бинарник 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);
- секреты в трекаемые файлы не помещать.