This release includes 1 breaking change for platform teams planning a safe upgrade.
Published 24d
Data Pipelines & ETL
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
data-cleaning
data-engineering
data-matching
data-quality
deduplication
entity-resolution
+14 more
fellegi-sunter
fuzzy-matching
knowledge-graph
llm
master-data-management
mcp-server
polars
pprl
python
record-linkage
rust
splink
typescript
zero-config
Affected surfaces
auth
deps
Summary
AI summaryIdentity audit log adds claim-authority tiers and lifecycle operations; dedupe CLI becomes non‑interactive by default.
Full changelog
Added
- Identity audit log: claim-authority tier + claim-lifecycle operations. Events now carry a categorical
ClaimType(observation/inference/verified/directive) — orthogonal to the numerictrust— plus a typedEvidenceRefand aprevious_claim_idchain, so a reviewer can tell "an agent inferred this at 0.8" from "a tool verified this at 0.8". New lifecycle opspromote_claim/amend_claim/revoke_claimmake an agent inference becoming durable shared truth an explicit, auditable event. All additive/nullable — the tamper-evidence hash stays byte-identical for pre-existing events. SQLitev4→v5migration + Postgres/Mongo + Alembic 0004. (#1383)
Changed
goldenmatch dedupe <file>is now non-interactive by default. A baregoldenmatch dedupe customers.csvruns auto-config, writes golden records (a timestamped*_golden.csvin the current directory), and prints a summary — so the advertised "CSV in, 30 seconds, CSV out" is what actually happens. The interactive review TUI is now opt-in via--tui(previously it opened by default).--no-tuiis still accepted as a no-op for back-compat. When no explicit output flag is given on the auto-config path, golden records are written by default (use--output-all/--output-dirto control,--tuito review). An explicit--configrun keeps its exact prior behavior.- Input validation on the
dedupeCLI + ingest (break-it review). A Windows-1252 / Latin-1 CSV is no longer silently lossy-decoded into replacement chars — non-UTF-8 files are detected, decoded as cp1252, and warned about (soJosé Muñozsurvives instead of becoming mojibake in the golden record); explicit--encoding cp1252/latin-1now works too.--anomaly-sensitivityis validated + case-normalized (a miscasedLowno longer silently inverts to the most-sensitive behavior); an unknown--backendis rejected instead of silently dropped;--formatis validated at parse time (not after the whole run); structured non-tabular inputs (.json/.xml/.yaml) get a clear message;--chunk-size/--preview-sizereject non-positive values. (#1390)
Fixed
- Config-suggestion "healer" production slowdown. The default
dedupe_dfadvisory path no longer runs the O(distinct²) goldencheck variant scan (cell_quality) over the full frame on every run whose free trigger fired — the scan is reserved for the opt-insuggest=/heal=paths. Instant mitigation without upgrading:GOLDENMATCH_SUGGEST_ON_DEDUPE=0. (#1385)
Performance
- Golden-stage quality-weighting scan scoped to cluster members.
goldencheck.cell_qualityruns only over rows that actually get a golden record (multi-member, non-oversized cluster members) instead of the entire collected frame — much cheaper on real data, since singletons never consume a quality weight. (#1389) - Throughput tier skips golden-record survivorship. Lifts the 100k+ corpus ceiling for the
dedupe_df(throughput=...)path, which consumes clusters, not canonical records. (#1382)
Breaking Changes
- `goldenmatch dedupe` is now non‑interactive by default; interactive TUI requires `--tui` flag.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About GoldenMatch
All releases →Related context
Related tools
Earlier breaking changes
- v3.1.0 `GOLDENMATCH_FRAME=polars` now requires the `[polars]` extra; raises error without it.
- vgoldencheck-v3.0.0 `inferred_type` emits neutral dtype vocabulary (str/int/uint/float/date/datetime/bool/other) instead of raw Polars dtypes.
- vgoldencheck-v3.0.0 'inferred_type' now emits a neutral dtype vocabulary instead of raw Polars dtype strings.
- vgoldencheck-v3.0.0 `scan_file`, `scan_dataframe`, and CLI `check` now run without Polars, using Arrow-native pyarrow.Table.
- v3.0.0 Result frames now return pyarrow.Table instead of Polars DataFrame.
Beta — feedback welcome: [email protected]