diff --git a/BACKLOG.md b/BACKLOG.md index c02804e..d0d1eff 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -41,19 +41,28 @@ ## Открыто -### B-001 · open · e2e · 2026-06-17 +### B-002 · open · e2e · 2026-06-17 -- **Сценарий:** Manual E2E §12.2 / §12.3 — skill tracking, auto compaction, re-inject после compact; §12.3 п.1–2 с pi-auto-compact -- **Проблема:** в среде агента нет доступного LLM (нет API key; `pi-llama-cpp` → `192.168.1.159:8080` недоступен) -- **Место:** ручной прогон `pi --mode rpc` / TUI с compaction -- **Факт:** RPC smoke: `/skill-reinject` команды OK; `auto-compact` зарегистрирован при загрузке packages (`npm:@capyup/pi-auto-compact`). `/skill:name`, compaction, follow-up race и post-compact inject не проверены. §12.2 п.2–5 и §12.3 п.3–7 не проверены end-to-end -- **Обход:** частичный RPC smoke (регистрация команд, session/global toggle, integration override); полный прогон — на машине с LLM -- **Предложение:** закрыть после ручного прогона пользователем или при доступном llama/API в CI. §13 без E2E: п.3, 9, 10; п.6–7 — код OK, resume/footer не проверены в TUI +- **Сценарий:** Manual E2E §12.2 п.2–5, §12.3 п.3–7, §13 п.3/9/10 — auto compaction → re-inject tracked skills; `/skill-reinject now` как контроль +- **Проблема:** skill из `--skill /path/to/SKILL.md` разворачивается в контекст, но не попадает в `resourceLoader` → `planReinject` / `reinjectNow` отфильтровывают его (`filterSkillsNeedingReinject` требует `registeredNames.has(name)`) +- **Место:** `src/skills-registry.ts` (`loadSkills` → 0 skills без discovery), `src/kept.ts` (`filterSkillsNeedingReinject`), `src/commands.ts` (`getRegisteredSkills()` без `resolveRegisteredSkills`), `before_agent_start` cache `registeredSkills` +- **Факт:** на машине с LiteLLM (`pi-provider-litellm`, `Eltex-Coder-Senior`) RPC smoke: команды OK, `/skill:fup-blame-commits` + `--skill ~/.cursor/skills/fup-blame-commits` → skill-блок в messages OK, ручной `/compact` → reinject нет (ожидаемо). Auto compact (RPC `compact`) + follow-up prompt → суффикса `[skill-reinject] Re-applied…` нет; `/skill-reinject now` после turn → новых inject-сообщений нет. `loadSkills({ includeDefaults: true })` в репо возвращает `[]`; skills лежат в `~/.cursor/skills`, не в путях discovery Pi +- **Обход:** для ручного E2E — skill в каталоге discovery Pi (`~/.pi/agent/skills`, project skills) или убедиться, что `before_agent_start` заполняет `systemPromptOptions.skills` для `--skill` CLI +- **Критерий закрытия:** (1) RPC или TUI: `/skill-reinject on` → `/skill:name` → auto compaction → на следующем turn в контексте reinject с суффиксом или skill-блок вне kept window; (2) `/skill-reinject now` добавляет блоки для tracked skill; (3) с pi-auto-compact: defer, нет `Agent is already processing`, continue после compact (§12.3 п.4–5); (4) unit/E2E не регрессят +- **Предложение:** в `commands.ts` / `reinjectNow` использовать `resolveRegisteredSkills(ctx.cwd, registeredSkills)`; рассмотреть reinject по `state.skills` + `filePath` tracked, если skill ещё на диске, без жёсткой привязки к `resourceLoader`; README — явно про `--skill` vs discovery paths -_Новые пункты — ниже (следующий id: **B-002**)._ +_Новые пункты — ниже (следующий id: **B-003**)._ --- ## Закрыто -_Пусто._ +### B-001 · done · e2e · 2026-06-17 (закрыт 2026-06-17) + +- **Сценарий:** Manual E2E §12.2 / §12.3 — блокировка из‑за отсутствия LLM +- **Проблема:** в среде агента не было доступного LLM +- **Место:** `pi --mode rpc` / compaction +- **Факт:** изначально нет API key; `pi-llama-cpp` → `192.168.1.159:8080` недоступен. После настройки: `pi-provider-litellm`, `~/.pi/agent/litellm-models.json`, `auth.json`; `pi --list-models` → `Eltex-Coder-Senior`, `Eltex-Kimi`; compaction и agent turn работают +- **Обход:** LiteLLM proxy (`llm2.eltex.loc:4000`), default model `Eltex-Coder-Senior` в `settings.json` +- **Закрытие:** LLM доступен; частичный RPC smoke пройден (коммиты phase 13). Оставшиеся E2E-дыры — B-002 +