feat(vector): server-side kinds filter for search_similar (legacy fallback) + graceful solved-search degrade

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-07 14:23:28 +02:00
co-authored by Claude Fable 5
parent 8d427a2ccb
commit a26f16ad79
7 changed files with 340 additions and 23 deletions
+9 -7
View File
@@ -105,13 +105,15 @@ pre-selected and persists selected/declined correctly, (b) finalize indexes the
(c) `tht memory solved-search` returns it with sql + tables.
**Fast-follow:**
- RestSearcher top-k dilution: `memory` and `solved_question` share the pgvector table and
`search_similar` has no server-side kind filter — with many solved records the client-side
filter can starve `tht memory search` results (and vice versa); fix = over-fetch (top_n*3)
when kinds is a strict subset, or kind param in the RPC — da fare prima che i solved record
si accumulino.
- `tht memory solved-search` muore con traceback grezzo se il vectordb è irraggiungibile
(SKILL.md la prescrive in F4/F6/F7) — degradare a messaggio di una riga.
- RestSearcher top-k dilution — **client-side DONE** (2026-07-07): `search_similar` manda
`kinds` alla RPC (filtro server-side esatto) con fallback automatico su server legacy
(404 → retry senza filtro, post-filter client). **Resta la migrazione server** della
funzione SQL `search_similar` (+`kinds text[] DEFAULT NULL`): istruzioni pronte in
`harness/docs/vector-rest-kinds-migration.md`; l'ordine di deploy è libero, ma fino
alla migrazione il filtro resta client-side e la diluizione persiste.
- ~~`tht memory solved-search` muore con traceback grezzo se il vectordb è irraggiungibile~~
**DONE** (2026-07-07): degrada a warning di una riga su stderr, stdout puro (`[]` in
--json), exit 0 — copre VectorRestError/EmbeddingsError/OperationalError.
## Review gates v2 — payload strutturati + viewer dedicati — COMPLETE (2026-07-07)