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

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.ts so 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, then confidence) 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.ts that 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 / :3 suffix 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.