1.8 KiB
1.8 KiB
Context Manager Task 2 Minor Fix Report
Status
- Completed.
- Added a deterministic exact-timestamp tie-break for same-slot candidates in
mergeCandidates(). - Added regression coverage for reversed input order.
Changes
- Updated
.pi/agent/extensions/context-manager/src/ledger.tsso same-slot candidates with identical timestamps no longer fall back to caller order. - Added a narrow tie-break helper that compares candidate data (
text,sourceType,sourceEntryId, thenconfidence) when timestamps match. - Kept the public API unchanged and limited the behavior change to exact-timestamp same-slot comparisons.
- Added a regression test in
.pi/agent/extensions/context-manager/src/ledger.test.tsthat verifies the same candidate stays active regardless of input order.
Tests
cd /home/alex/dotfiles/.worktrees/context-manager-extension/.pi/agent/extensions/context-manager && npx tsx --test src/ledger.test.ts✅cd /home/alex/dotfiles/.worktrees/context-manager-extension/.pi/agent/extensions/context-manager && npm test✅
Files Changed
.pi/agent/extensions/context-manager/src/ledger.ts.pi/agent/extensions/context-manager/src/ledger.test.ts.pi/reviews/context-manager-task2-minor-fix-report.md
Self-Review Findings
- The fix is narrowly scoped to same-slot exact-timestamp winner selection.
- Existing out-of-order merge coverage and same-timestamp ID-collision coverage still pass.
- The new regression test fails on the pre-fix code path and passes with the tie-break in place.
Concerns
- None blocking.
- Same-slot collision IDs remain unique, but sequential
:2/:3suffix assignment is still derived from insertion order across separate incremental merges; I left that behavior unchanged to keep this fix narrowly scoped to the requested active-item determinism issue.