TODO: mark phase 5 complete — kept-window helpers and tests.
Phase 5 delivers getKeptEntries, presence scan, filter, and kept-window.test.ts. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
|---|---|
|
||||
| Продукт | Extension `skill-reinject` для [Pi Coding Agent](https://github.com/earendil-works/pi) |
|
||||
| Цель | Отслеживать вызванные skills и повторно инжектить их после **auto** compaction |
|
||||
| Статус | Спецификация готова; **фазы 0–3** завершены; реализация — фазы 4+ в `TODO.md` |
|
||||
| Статус | Спецификация готова; **фазы 0–5** завершены; реализация — фазы 6+ в `TODO.md` |
|
||||
| Целевой API | Публичный `ExtensionAPI` Pi (`extensions.md`), без приватных internal imports |
|
||||
| Совместимость | [@capyup/pi-auto-compact](https://github.com/capyup/pi-auto-compact) — режим `defer` по умолчанию (см. SPEC §16) |
|
||||
|
||||
@@ -22,6 +22,7 @@ src/
|
||||
├── state.ts
|
||||
├── detect.ts
|
||||
├── expand.ts
|
||||
├── kept.ts
|
||||
├── reinject.ts
|
||||
├── auto-compact.ts
|
||||
├── settings.ts
|
||||
|
||||
@@ -161,10 +161,10 @@
|
||||
|
||||
### Фаза 5 — Kept window
|
||||
|
||||
- [ ] **kept.ts slice** — `getKeptEntries(branch, firstKeptEntryId)` от compaction entry до хвоста; зачем: §6.4
|
||||
- [ ] **kept.ts present** — `skillsPresentInKeptWindow(keptEntries, skillNames)` по `<skill name="…"`; зачем: не дублировать блоки §6.4, критерий §13
|
||||
- [ ] **kept.ts filter** — `filterSkillsNeedingReinject(tracked, kept, registeredNames)`; зачем: вход для `pendingReinject` §5.2
|
||||
- [ ] **test/kept-window.test.ts** — in / not in kept, пустой kept; зачем: §12.1
|
||||
- [x] **kept.ts slice** — `getKeptEntries(branch, firstKeptEntryId)` от `firstKeptEntryId` до хвоста; зачем: §6.4
|
||||
- [x] **kept.ts present** — `skillsPresentInKeptWindow(keptEntries, skillNames)` по `<skill name="…"`; зачем: не дублировать блоки §6.4, критерий §13
|
||||
- [x] **kept.ts filter** — `filterSkillsNeedingReinject(tracked, kept, registeredNames)`; зачем: вход для `pendingReinject` §5.2
|
||||
- [x] **test/kept-window.test.ts** — in / not in kept, пустой kept; зачем: §12.1
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user