IMPLEMENTATION_SUMMARY.md
IMPLEMENTATION_SUMMARY.md
Files: lib/retriever.js, src/config.ts, src/toolsProvider.ts
RRF_K, FTS_LIST_SIZE, VEC_LIST_SIZE constants from retriever.jsrrfK (range 10-200, default 60): Controls Reciprocal Rank Fusion rank decayftsListSize (range 10-200, default 60): Max candidates from each FTS listvecListSize (range 10-500, default 200): Max candidates from vector similaritytoolsProvider.ts and used in retrieve() functionFiles: src/config.ts, src/toolsProvider.ts, lib/retriever.js
mmrLambda setting (range 0-1, step 0.05, default 0.7)mmrSelect() call at line 1263 of retriever.jsFiles: src/config.ts, src/toolsProvider.ts, lib/retriever.js
recencyBlend setting (range 0-1, step 0.05, default 0.8)recencyBlend * c.score + (1 - recencyBlend) * recencyFactor(pub_date, now)Files: lib/retriever.js, src/toolsProvider.ts
withinEntryIds optional parameter to retrieve(query, settings, opts)search_rss_cache tool to retrieve() functionFile: src/toolsProvider.ts
rrfK, ftsListSize, vecListSize, mmrLambda, recencyBlendwithinEntryIds passed through search tool parametersAll changes maintain backward compatibility:
withinEntryIds feature needs manual/test verificationFiles: lib/retriever.js, src/config.ts, src/toolsProvider.ts
RRF_K, FTS_LIST_SIZE, VEC_LIST_SIZE constants from retriever.jsrrfK (range 10-200, default 60): Controls Reciprocal Rank Fusion rank decayftsListSize (range 10-200, default 60): Max candidates from each FTS listvecListSize (range 10-500, default 200): Max candidates from vector similaritytoolsProvider.ts and used in retrieve() functionFiles: src/config.ts, src/toolsProvider.ts, lib/retriever.js
mmrLambda setting (range 0-1, step 0.05, default 0.7)mmrSelect() call at line 1263 of retriever.jsFiles: src/config.ts, src/toolsProvider.ts, lib/retriever.js
recencyBlend setting (range 0-1, step 0.05, default 0.8)recencyBlend * c.score + (1 - recencyBlend) * recencyFactor(pub_date, now)Files: lib/retriever.js, src/toolsProvider.ts
withinEntryIds optional parameter to retrieve(query, settings, opts)search_rss_cache tool to retrieve() functionFile: src/toolsProvider.ts
rrfK, ftsListSize, vecListSize, mmrLambda, recencyBlendwithinEntryIds passed through search tool parametersAll changes maintain backward compatibility:
withinEntryIds feature needs manual/test verification1. FTS lists (trigram + english) with configurable list sizes
2. Vector similarity list with configurable size
3. RRF fusion with configurable RRF_K constant
4. Normalize RRF scores so best candidate = 1.0
5. Collapse by entry (best chunk per article)
6. Apply recency blend: blend RRF score with recency factor
7. Sort by combined score (or date sort)
8. Dedup via simhash
9. Optional rerank (cross-encoder) on top rrDocs
10. MMR diversity with configurable lambda
11. Apply offset/limit for pagination
User provides withinEntryIds (comma-separated) →
Tool passes to retrieve() →
WithinEntryIds intersects with filter-based allowedEntryIds →
FTS/vector lists generated with entry filtering →
Results scoped to only the specified entries →
Returned with normal metadata and scoring
1. FTS lists (trigram + english) with configurable list sizes
2. Vector similarity list with configurable size
3. RRF fusion with configurable RRF_K constant
4. Normalize RRF scores so best candidate = 1.0
5. Collapse by entry (best chunk per article)
6. Apply recency blend: blend RRF score with recency factor
7. Sort by combined score (or date sort)
8. Dedup via simhash
9. Optional rerank (cross-encoder) on top rrDocs
10. MMR diversity with configurable lambda
11. Apply offset/limit for pagination
User provides withinEntryIds (comma-separated) →
Tool passes to retrieve() →
WithinEntryIds intersects with filter-based allowedEntryIds →
FTS/vector lists generated with entry filtering →
Results scoped to only the specified entries →
Returned with normal metadata and scoring