0.2.0
This release makes croma’s robustness reporting more complete and reproducible, adding canonical F(0), nIPD, public benchmark results, and tracked paper-reproduction tooling. It also tightens several core interfaces, so existing users should review the breaking migrations below.
Added
CRoMaResult.f0now provides the canonical confounder-dominant fraction F(0), using the closed<= 0boundary over defined evaluation units. It is also exposed asf0in CLI JSON andcroma_f0in benchmark and m-sweep outputs. (#119)- The documentation now publishes auditable results for twenty pathology foundation models and one natural-image control across three PathoROB cohorts, including provenance, per-cohort distributions, an interactive tail explorer, and dark-mode-correct figures. The aggregate table is ordered by the mean of its visible CRoMa and tail ranks while retaining both axes and the Pareto frontier. (#112, #121)
- Paper-reproduction generators and their tests are now tracked under
scripts/repro/and aligned with the currentgroup_id,all, and closed-boundary F(0) contracts. Upstream APD metadata correctly retains its sourceslide_idjoin key while generated croma manifests usegroup_id. (#120)
Breaking changes
croma.napdhas been removed without an alias and replaced bycroma.nipd. nIPD normalizes degradation by above-chance baseline performance and integrates over finite, strictly increasing Cramér’s-V coordinates spanning 0 to 1; it is a different estimand rather than a drop-in rename. PathoROB APD is unchanged. (#113)- Canonical manifests must now provide a non-empty
group_idinstead ofslide_id. There is no compatibility alias: rename existing manifest columns and re-run scoring, because the group participates in alignment, fingerprints, and score-cache keys. Existing embedding matrices remain reusable. (#117) - The
dataset_wideevaluation design is now namedall, with no alias, andallis the new default for every public Python and CLI metric entry point. Calls that relied on the formerpaired_2x2default must now requestevaluation_design="paired_2x2"explicitly; cached artifacts using the old design name are recomputed. (#118)