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