Skip to content

promote to main (1/4): text/vector search window scan (fork #59) - #94

Merged
trentleslie merged 1 commit into
mainfrom
promote-main-1-window
Sep 9, 2026
Merged

trentleslie merged 1 commit into
mainfrom
promote-main-1-window

Conversation

@trentleslie

Copy link
Copy Markdown
Collaborator

Stacked promotion dev→main, 1 of 4 (mirroring the org promote PRs #90–93). Merge in order; each is the validated code already on org dev.

This PR (#59 port)

Kestrel text/vector search scans the ranked window for the first on-category candidate instead of committing/refusing on rank-1 alone (restores commits the old limit=1 path dropped; the category guard still refuses when nothing in the window is on-category).

Series

  1. Handle accidental double colons in input curies #59 — text/vector window scan ← this PR
  2. Dockerize Biomapper2 #60 — structure-guided re-resolution of conflated commits
  3. Implement retry loop for API startup wait #64/PR: Return equivalent IDs from KG nodes - Feat/equivalent ids #67/PR: feat: Dynamic entity types and vocabulary presets from Kestrel #68/feat: HGNC human-preference re-ranking for gene/protein resolution #69/feat: gene/protein resolution — HGNC human-preference + curated gene-symbol fallback (dev → main) #70 — determinism stack (matches org promote: resolution-determinism stack (fork #64/#67/#68/#69/#70) #92)
  4. feat: curated gene-symbol fallback resolver for drug-conflated human genes #71/feat: canonical-namespace preference + gene gold-set fix (unblocks release CI) #72 — RefMet fallback toggle + candidate_limit (matches org promote: RefMet live-api-fallback toggle + candidate_limit (fork #71 + #72) #93)

All four are already merged + validated on org dev (this is dev→main). No studies/. Org CI gate runs on each. No RefMet freeze is configured in prod — the freeze consumer code is inert unless REFMET_SNAPSHOT_PATH is set.

🤖 Generated with Claude Code

…category node (port of fork #59)

Ports trentleslie/biomapper2#59 to the org. kestrel-text-search and
kestrel-vector-search hardcoded limit=1 and committed/refused on rank 1 alone;
Kestrel's category_filter is advisory, so an off-category row (e.g. CHV:0000005585
"glutamate") could outrank the intended ChEBI node and the annotator returned None.
Raise the window to HYBRID_SEARCH_LIMIT and take the first on-category candidate;
guard the None term_results a cache-miss can produce. Opt-in change — text/vector are
not in the default annotator set, so no default-pipeline behavior changes. 10 tests
(network monkeypatched). Reviewed 5/5 on the fork.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant