47 lines
2.1 KiB
Markdown
47 lines
2.1 KiB
Markdown
# 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.
|