Files
pi-auto-reinject/BACKLOG.md
T
grayhook fcf9283fe1 BACKLOG: close B-002 — Phase 14 loose reinject for --skill paths
Defer planning, consume filter, disk fallback, and unit regression gate; short RPC E2E documented in docs/e2e-b002-post-fix.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 17:39:32 +07:00

5.0 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; блок перенести в Закрыто.


Открыто

Новые пункты — ниже (следующий id: B-003).


Закрыто

B-002 · done · e2e · 2026-06-17 (закрыт 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, src/kept.ts, src/reinject.ts, before_agent_start
  • Факт: pre-fix RPC: registered мог быть пуст при loadSkills fallback; skill вне kept + пустой registry → planned=[]. Post-fix: defer plan без registry на compact, consume/build loose fallback по tracked.filePath, requireRegistered (default false)
  • Закрытие: Phase 14 commits (aca68e7e3873d7); unit regression 84 tests; docs/e2e-b002-post-fix.md — short RPC session держит skill в kept (reinject не нужен); полный compact→reinject RPC требует длинной сессии
  • Предложение: (реализовано) planDeferredReinject, filterPendingReinjectForConsume, loose buildReinjectBlocks / reinjectNow, README requireRegistered

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