Skip to content

1.2.0: smarter recall ranking with per-category reserve

Choose a tag to compare

@Kashkovsky Kashkovsky released this 15 Jun 11:14
· 824 commits to main since this release
330b7c3

Reworks recall ranking so the most relevant context leads, across both the CLI recall and the MCP recall_context — they now share one pipeline (buildRecallSections).

Exact-match ranking. Exact (lexical) grep matches used to print as an unranked sidecar after the semantic top-N, burying canonical docs that scored below the semantic threshold or sat in the compressed score band.

  • Semantic hits an exact term also matched are annotated (exact: <terms>).
  • Exact-match docs with no semantic hit are promoted into the ranked list (rendered exact:), categorized from their URI.
  • Ranking is category-first → exact-term count → semantic score. The sidecar now lists only matches not already shown.

Per-category reserve. selectShownHits reserves up to RECALL_CATEGORY_RESERVE (2) slots per category before filling the rest of the window by global rank, so a memory-heavy result no longer crowds seeded resources and skills out of view. Memories still lead and take every leftover slot; under a tight nodeLimit the reserve is best-effort by priority.

Also:

  • Memories rank ahead of resources ahead of skills; dedupeByContent collapses resource/skill hits with identical snippets (memories never collapsed), after exact-boost so an exact-matched twin survives.
  • Seeding ignores .claude/worktrees/ and .worktrees/.
  • MCP grep defaults uri to the caller's memories root instead of erroring when omitted.
  • Bumps the package version to 1.2.0.

PR: #28