feat(search): P3.1 filters and multi-query merge

Native include/exclude domains, time_range, topic, exact_match, min_score,
and up to 4 queries fused with RRF. Honesty notes stay off the Warn/fail
path. Tavily keeps include_answer false and sets auto_parameters false.
Cache key is canonical JSON. CLI flags and skill recipe included.
This commit is contained in:
2026-09-29 15:30:19 -07:00
parent 5c6a4a40ec
commit 8b26776cdd
21 changed files with 1606 additions and 195 deletions
+2
View File
@@ -105,6 +105,7 @@ func rrfMerge(lists [][]Hit) []Hit {
sc := 1.0 / float64(rrfK+r+1)
if a, ok := seen[c]; ok {
a.s += sc
keepDate := firstDate(a.h.PublishedDate, h.PublishedDate)
if len(h.Snippet) > len(a.h.Snippet) {
src := a.h.Source
keep := a.h.URL
@@ -112,6 +113,7 @@ func rrfMerge(lists [][]Hit) []Hit {
a.h.Source = src
a.h.URL = keep
}
a.h.PublishedDate = keepDate
continue
}
cp := h