Files
dotfiles/.pi/reviews/context-manager-task4-fix-report.md
2026-04-09 23:14:57 +01:00

2.1 KiB

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.