Skip to content

Add named SelectionPolicy definitions and exact numeric replay - #446

Merged
iskandr merged 1 commit into
masterfrom
feat/versioned-ranking-profiles
Oct 1, 2026
Merged

iskandr merged 1 commit into
masterfrom
feat/versioned-ranking-profiles

Conversation

@iskandr

@iskandr iskandr commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Named selection settings previously had to be reconstructed by each consumer, and CSV/TSV parsing could change the binary float value at a filter boundary. Add a public SelectionPolicy mapping contract and exact float reload so a saved policy can reproduce candidate scores and selections.

  • Resolve already-composed authoring mappings once, then persist every effective setting and a canonical digest. Strict saved-definition loading rejects missing/unknown fields; explicit null removes a filter during consumer composition.
  • rank_with_policy delegates to the existing candidate ranker and records the definition, caller-supplied derivation provenance and separate execution/input facts. It adds no scientific defaults or predictor execution.
  • Exercise saved policies through Topiary IO and the released Vaxrank scoring/construction compatibility fixture. Document Vaxrank's ownership of YAML composition, post-score gates, and construct/window settings.

This is the policy-definition foundation. Occurrence-level evaluation and named criterion audit records remain #444 and #445; the representative ranking wrapper does not replace those interfaces.

Validation: ./lint.sh passed; the full ./test.sh passed with one worker (4,934 tests, zero skips/warnings, 94% coverage). The released Vaxrank compatibility job passed all 18 construction cases. All GitHub CI checks are green, including Python 3.10–3.12 and the isolated optional integrations. Released to PyPI as 5.89.0 after green master CI and the complete clean-master deploy gate. Both public artifact SHA-256 hashes match the local build; tag v5.89.0 points to merge commit 72c62b3eca7cc1fd0578dc5672763948987b42b9.

Closes #441
Closes #442
Closes #443
Refs #366, #444, #445, #288

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 93.422% (+0.04%) from 93.387% — feat/versioned-ranking-profiles into master

@iskandr
iskandr merged commit 72c62b3 into master Oct 1, 2026
12 checks passed
@iskandr
iskandr deleted the feat/versioned-ranking-profiles branch October 1, 2026 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants