v1.2.1 — Scorer Hardening & Rust Safety Lints
What's New
Scorer hardening
-
strict_modeparameter — disables heuristic fallbacks when NLI is unavailable.
Returns neutral 0.5 instead of keyword heuristics, preventing misleading scores
in production deployments without torch installed.scorer = CoherenceScorer(strict_mode=True, threshold=0.6)
-
Configurable scoring weights —
w_logicandw_factconstructor params
(default 0.6/0.4) let you tune the logical vs. factual divergence balance
for your domain.scorer = CoherenceScorer(w_logic=0.3, w_fact=0.7) # fact-heavy for RAG apps
Rust kernel safety
#![deny(unsafe_code)]enforced on 5 of 6 Backfire Kernel crates
(backfire-types,backfire-core,backfire-physics,backfire-ssgf,
backfire-observers). The compiler now rejects any futureunsafeblocks.backfire-ffidocuments whydeny(unsafe_code)can't apply (PyO3 proc
macros generate unsafe internally) and carries FFI safety invariants.- 4 safety invariants documented on
backfire-core: halt irreversibility,
NaN/Inf lethality, independent halt mechanisms, zero hot-path allocations.
Documentation
- "Known Limitations" section in README — honest about heuristic accuracy,
summarisation weakness, single-document NLI, and weight sensitivity. - Full CHANGELOG entries for both v1.2.0 and v1.2.1.
Tests
- 4 new tests:
strict_modelogical/factual neutral return, heuristic mode
divergence, custom weight assignment. - 378 tests passing (8 skipped — optional deps).