goldenmatch 2.1.0
Immutable
release. Only release title and notes can be modified.
goldenmatch 2.1.0 -- minor release.
Correlated survivorship, end-to-end group provenance, memory-safe PPRL,
native-dispatch telemetry, plus zero-config multi-source and bucket-backend fixes.
Added
- Correlated survivorship: lock-step field groups + conditional/validated golden rules (#1047). New FieldGroupSpec + DomainPack.groups (domain-pack schema v3, additive/backward-compatible) keep correlated fields (street/city/postcode) in lock-step from one winning source.
- allow_fill + anchor group-winner strategy, correlated survivorship v2 (#1055). GoldenGroupRule gains an anchor column for the new "anchor" strategy plus an orthogonal allow_fill fill-forward flag.
- GroupProvenance surfaced end-to-end (#1053). Per-cluster survivorship provenance carries a real cluster_id and a natural-language audit trail through lineage, explain, MCP, and the review queue.
- Chunked PPRL trusted-third-party linkage (#1054). New PPRLConfig.chunk_size streams Party B in blocks instead of materializing the full N_a x N_b score matrix; ~9-14x lower peak memory, byte-identical output (chunk_size=None is the original dense path).
- Native-dispatch telemetry on the result object (#1048, #957). result.native reports whether the scoring hot path used the Rust kernel or fell back to pure Python; warns on a silent slow path and self-reports per Ray worker.
- Collective entity resolution / neighborhood similarity. run_graph_er(propagation_mode="relational") blends attribute similarity with neighbor-cluster overlap to resolve homonyms (pairwise F1 ~0.66 -> ~0.87 on the co-author fixture).
Fixed
- Zero-config multi-source dedupe no longer over-merges on shared workplace/categorical attributes (#858). A low-cardinality non-person-name field (company, job_title, ...) is demoted to blocking-only; lifts the reporter's CRM fixture from bare F1 0.13 to 0.77. Single-source auto-config byte-identical.
- backend="bucket" honors multi-pass UNION blocking (#1048). A multi-pass config whose keys live in .passes (no static key) no longer returns 0 clusters.
- Domain detection no longer classifies a bare name-only schema as product (#1042).
Performance
- Sail distributed WCC: edge-node seeding + stage-boundary lineage barriers. Per-round shuffle scales with connected-component count, not row count; byte-identical default output.
Full changelog: packages/python/goldenmatch/CHANGELOG.md