This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+14 more
Summary
AI summaryRunHistory.pick_committed() adds best‑effort RED entry selection, stop_reason enum, and virtual v0 fallback precision‑collapse floor.
Full changelog
Highlights
- Best-effort commit:
RunHistory.pick_committed()extends the lex key to RED entries (rank=2), filters errored entries viaerror is None and profile is not None, returns highest-ranked entry. Replaces v1.8'scheapest_healthy()(now a deprecation alias; removed in v2.0). RunHistory.stop_reason: StopReason | Nonepopulated at every break point inAutoConfigController.run(). Eight values: GREEN, CONVERGED, BUDGET_ITERATIONS, BUDGET_TIME, POLICY_SATISFIED, POLICY_NO_PROGRESS, OSCILLATING, CANCELLED. Observable viaresult.postflight_report.controller_history.stop_reason.- Virtual v0 fallback + precision-collapse floor: controller appends
config_v0's profile as a syntheticHistoryEntry(iteration=-1)beforepick_committed().pick_committed(precision_collapse_floor=0.9)demotes RED entries withmass_above_threshold > 0.9to rank=3, guarding against the "everything matches" pathology. - Health-aware commit logging: WARNING on RED commit (failing sub-profile + stop_reason + iteration), INFO on YELLOW, silent on GREEN, ERROR on all-errored fallback.
StopReasonenum moved fromcore/autoconfig_controller.pytocore/complexity_profile.py.
Benchmarks (zero-config, no LLM)
| Dataset | v1.8.0 | v1.9.0 |
|---|---|---|
| DBLP-ACM | 0.9641 | 0.9641 |
| Febrl3 | 0.9443 | 0.9443 |
| NCVR | 0.9719 | 0.9719 |
| DQbench composite | 62.87 | 62.87 |
Notes
The original v1.9 spec assumed best-effort RED commit would deliver a DQbench composite gain (target >= 65). In practice, the controller's complexity indicators can't distinguish "blocking key is wrong" from "blocking key is right but sample has no visible matches" - both produce mass_above_threshold=0.0. Virtual v0 + precision floor restored v1.8 parity. v1.10 will add new indicators (identity-column priors, cross-blocking overlap probe, blocking-column corruption signal, sparse-match sensitivity, full-population matchkey hits) so the controller can distinguish these cases and deliver real DQbench gains.
Breaking changes
None. RunHistory.cheapest_healthy() is a deprecation alias; behavior change documented in DeprecationWarning text.
Full diff: https://github.com/benzsevern/goldenmatch/compare/v1.8.0...v1.9.0
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]