Files
pi-auto-reinject/BACKLOG.md
T
grayhook ab4c133a9c BACKLOG: close B-001 (LLM available), open B-002 reinject E2E.
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>
2026-06-17 14:05:19 +07:00

6.1 KiB
Raw Blame History

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

При закрытии: статус opendone, дата закрытия, ссылка на коммит/issue; блок перенести в Закрыто.


Открыто

B-002 · open · e2e · 2026-06-17

  • Сценарий: Manual E2E §12.2 п.25, §12.3 п.37, §13 п.3/9/10 — auto compaction → re-inject tracked skills; /skill-reinject now как контроль
  • Проблема: skill из --skill /path/to/SKILL.md разворачивается в контекст, но не попадает в resourceLoaderplanReinject / 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 п.45); (4) unit/E2E не регрессят
  • Предложение: в commands.ts / reinjectNow использовать resolveRegisteredSkills(ctx.cwd, registeredSkills); рассмотреть reinject по state.skills + filePath tracked, если skill ещё на диске, без жёсткой привязки к resourceLoader; README — явно про --skill vs 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-cpp192.168.1.159:8080 недоступен. После настройки: pi-provider-litellm, ~/.pi/agent/litellm-models.json, auth.json; pi --list-modelsEltex-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