ab4c133a9c
LiteLLM works via pi-provider-litellm; remaining gap is skill registration for planReinject when skills load only via --skill CLI. Co-authored-by: Cursor <cursoragent@cursor.com>
6.1 KiB
6.1 KiB
BACKLOG — pi-skill-reinject
Журнал открытых ограничений и сбоев при разработке, ручном тесте с pi, интеграции с pi-auto-compact или неясностях API Pi.
Не путать с TODO.md: там план разработки; здесь — наблюдения из runtime, которые потом закрывают пачкой (правка кода, документация, issue upstream Pi).
Правило для агентов: .cursor/rules/dev-backlog.mdc.
Когда добавлять пункт
- Поведение Pi / extension API не совпало с
SPEC.mdили документацией Pi. - Ошибка или гонка при совместной работе с pi-auto-compact (
sendUserMessage,before_agent_start, follow-up). - Ручной E2E не воспроизводится стабильно; обходной путь есть, но хрупкий.
- Неясность в публичном API (события без
reason, формат entries, settings merge). - Пришлось дублировать приватную логику Pi — зафиксировать риск и желаемый upstream.
Не добавлять: ожидаемое «extension выключен по умолчанию»; отсутствие установленного pi; разовый сбой без воспроизведения; пункты из плана фаз (это TODO.md).
Формат пункта
Следующий свободный id: B-### (смотреть заголовки ниже, увеличивать номер).
### B-001 · open · pi-api · 2026-06-17
- **Сценарий:** что пытались сделать
- **Проблема:** одно предложение — в чём затык
- **Место:** `session_compact` / `before_agent_start` / pi-auto-compact / `src/…`
- **Факт:** текст ошибки, неожиданное поведение, расхождение с SPEC
- **Обход:** что сработало (или «нет»)
- **Предложение:** правка в extension / SPEC / issue в Pi / pi-auto-compact
При закрытии: статус open → done, дата закрытия, ссылка на коммит/issue; блок перенести в Закрыто.
Открыто
B-002 · open · e2e · 2026-06-17
- Сценарий: 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_startcacheregisteredSkills - Факт: на машине с 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 (RPCcompact) + 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для--skillCLI - Критерий закрытия: (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+filePathtracked, если skill ещё на диске, без жёсткой привязки кresourceLoader; README — явно про--skillvs discovery paths
Новые пункты — ниже (следующий 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 modelEltex-Coder-Seniorвsettings.json - Закрытие: LLM доступен; частичный RPC smoke пройден (коммиты phase 13). Оставшиеся E2E-дыры — B-002