sync local pi changes

This commit is contained in:
alex wiesner
2026-04-09 23:14:57 +01:00
parent 18245c778e
commit ec378ebd28
128 changed files with 22510 additions and 3436 deletions

View File

@@ -0,0 +1,46 @@
# Context Manager Task 4 Fix Report
## Status
- Fixed
- Packet trimming now selects facts under the cap instead of skipping whole sections.
- Targeted packet/prune tests and the full package test suite pass.
## Changes
- Updated `.pi/agent/extensions/context-manager/src/packet.ts` to:
- score active facts globally with the existing kind weights
- select facts one at a time under `packetTokenCap`
- render the final packet in the existing stable section order
- keep per-section bullet ordering priority-based
- Replaced the weak packet test in `.pi/agent/extensions/context-manager/src/packet.test.ts` with cap-edge assertions that check exact output and prove:
- a tight cap keeps the highest-priority fact from a partially fitting section
- cross-kind weights prefer `activeTask` over `decision` when only one can fit
- Expanded `.pi/agent/extensions/context-manager/src/prune.test.ts` to cover:
- old bulky tool results being pruned
- recent bulky tool results being preserved
- old non-bulky tool results being preserved
- the `recentUserTurns` boundary behavior
## Tests
- Red check before the packet fix:
- `cd .pi/agent/extensions/context-manager && npx tsx --test src/packet.test.ts`
- Result: 2 failing packet tests, showing whole-section trimming and cross-kind selection problems
- Focused verification:
- `cd .pi/agent/extensions/context-manager && npx tsx --test src/packet.test.ts src/prune.test.ts`
- Result: 6/6 passing
- Full package verification:
- `cd .pi/agent/extensions/context-manager && npm test`
- Result: 22/22 passing
## Files Changed
- `.pi/agent/extensions/context-manager/src/packet.ts`
- `.pi/agent/extensions/context-manager/src/packet.test.ts`
- `.pi/agent/extensions/context-manager/src/prune.test.ts`
- `.pi/reviews/context-manager-task4-fix-report.md`
## Self-Review Findings
- The packet builder now applies weights meaningfully across kinds because selection happens from a global priority list before rendering.
- Rendered output still uses the original section headings and section order.
- `prune.ts` behavior did not need logic changes; the missing boundary coverage is now explicit in tests.
## Concerns
- None.