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

68 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BACKLOG — pi-skill-reinject
Журнал **открытых** ограничений и сбоев при разработке, ручном тесте с `pi`, интеграции с [pi-auto-compact](https://github.com/capyup/pi-auto-compact) или неясностях API Pi.
Не путать с [`TODO.md`](./TODO.md): там план разработки; здесь — наблюдения из runtime, которые потом закрывают пачкой (правка кода, документация, issue upstream Pi).
Правило для агентов: [`.cursor/rules/dev-backlog.mdc`](./.cursor/rules/dev-backlog.mdc).
---
## Когда добавлять пункт
- Поведение Pi / extension API не совпало с [`SPEC.md`](./SPEC.md) или [документацией Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/extensions.md).
- Ошибка или гонка при совместной работе с pi-auto-compact (`sendUserMessage`, `before_agent_start`, follow-up).
- Ручной E2E не воспроизводится стабильно; обходной путь есть, но хрупкий.
- Неясность в публичном API (события без `reason`, формат entries, settings merge).
- Пришлось дублировать приватную логику Pi — зафиксировать риск и желаемый upstream.
**Не добавлять:** ожидаемое «extension выключен по умолчанию»; отсутствие установленного `pi`; разовый сбой без воспроизведения; пункты из плана фаз (это `TODO.md`).
---
## Формат пункта
Следующий свободный id: **`B-###`** (смотреть заголовки ниже, увеличивать номер).
```markdown
### 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 п.25, §12.3 п.37, §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` мог быть пуст при `loadSkills` fallback; 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`, 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-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