Skip to content

promote to main (3/4): resolution-determinism stack (fork #64/#67/#68/#69/#70) - #96

Merged
trentleslie merged 2 commits into
mainfrom
promote-main-3-determinism
Sep 9, 2026
Merged

trentleslie merged 2 commits into
mainfrom
promote-main-3-determinism

Conversation

@trentleslie

Copy link
Copy Markdown
Collaborator

Stacked promotion dev→main, 3 of 4. #94 (#59) + #95 (#60) merged; this is the determinism stack (matches org #92).

This PR

All live-proven in the dev-vs-prod scoreboard (dev halved false cross-cohort links, matched Monti ~99%). The freeze consumer (#70) is inert in prod unless REFMET_SNAPSHOT_PATH is set — prod will not set it, so RefMet stays on the live path.

Series

  1. Handle accidental double colons in input curies #59 ✅ (promote to main (1/4): text/vector search window scan (fork #59) #94) 2. Dockerize Biomapper2 #60 ✅ (promote to main (2/4): structure-guided re-resolution of conflated commits (fork #60) #95) 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 ← this PR 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 (fallback + candidate_limit)

dev→main; no studies/; org CI gate runs.

🤖 Generated with Claude Code

trentleslie and others added 2 commits September 7, 2026 18:58
…70

Brings org dev src to fork dev src for the resolution-determinism stack (org was current
through fork #60 / org #91). Ports the 14 differing src files (making org src == fork src)
plus the 17 src-coupled test files + refmet freeze fixtures. Studies-coupled tests and the
entire studies/ tree stay fork-only, as does the fork-specific prose-figure/off-category-audit
guard (both assert the studies tree exists).

Bundled (per the batching policy) since the changes are entangled in shared files
(certificate.py/mapper.py/kestrel annotators) and cannot be cleanly separated:
- fork #64: Kestrel search sends schema field names category/prefix (server-side filtering)
- fork #67: resolver deterministic majority tie-break (_stable_majority)
- fork #68: RefMet availability surfacing + bounded batch resilience
- fork #69: deterministic Kestrel candidate order (stable_result_order)
- fork #70: pinned /match freeze as authoritative RefMet source + refmet_source provenance

All Greptile 5/5 on the fork. Offline gate green in this worktree (817 passed, 0 failed);
ruff/black/pyright clean on src.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@trentleslie
trentleslie merged commit ee64806 into main Sep 9, 2026
6 checks passed
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