All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning
(pre-1.0: see the API-stability note in README.md's Roadmap section).
For the initial 0.1.0 release notes, see .github/CHANGELOG.md.
The entries below summarize a full-crate audit remediation (170 findings,
tracked as FG-01 .. FG-64 in the project's audit record) organized by
area. Each bullet range names the finding IDs addressed in that area; a later
pass appends the individual per-finding change lines under each heading.
Proposal-distribution corrections, normalized and multi-chain effective sample size, split-R-hat, autocorrelation/Geweke diagnostics, and removal of redundant recomputation in the adaptive MH sampler.
Prior-cancelled (not prior-squared) importance weights, weight-preserving rejuvenation, no terminal resample, an unbiased log-evidence estimate, and a move-not-clone particle construction path.
Importance-weighted ABC-SMC (replacing a biased prior-replacement heuristic) with bounded, typed-error attempt budgets instead of unbounded loops or panics on an empty population.
Support-matched guide families (Normal/LogNormal/Beta) instead of a one-size-fits-all Normal, both location and scale optimized via common-random-numbers finite-difference gradients, an ELBO-plateau convergence test, a corrected (non-double-counted) prior-baseline ELBO, and exact (not moment-matched) Beta sampling.
A new gradient-based (finite-difference force, exact Metropolis correction) HMC kernel, plus seven new distributions (StudentT, Cauchy, Laplace, Weibull, ChiSquared, InverseGamma, DiscreteUniform) bringing the total to 17.
Duplicate-address and structure-mismatch detection in the replay/scoring
interpreters now returns a typed FugueError (AddressConflict,
UnexpectedModelStructure) instead of panicking.
Arc<str> addressing, removal of a dead memory-pooling subsystem, and
realistic end-to-end benchmarks in place of micro-benchmarks that didn't
reflect actual usage.
- FG-23: Replaced the "production-ready" tagline (README, mdBook home page, and a stale duplicate landing page) with accurate positioning: type-safe, monadic, pre-1.0, actively developed. Added an explicit pre-1.0 SemVer policy note.
- FG-25: Added
examples/smc_inference.rs,examples/abc_inference.rs, andexamples/vi_inference.rs— the first examples anywhere in the crate (README,examples/, or mdBook) to exerciseadaptive_smc,abc_smc_weighted, andoptimize_meanfield_vi_with_config, each checked against a closed-form posterior. Wired into a new mdBook "Advanced Inference" tutorial section. Addedhmc_chainto the README's example index. - FG-33: Removed 11 of 22
ErrorCodevariants (and theFugueErrorvariants/constructors/macro that existed only to hold them) that no code path in the crate ever constructed:NumericalOverflow,NumericalUnderflow,NumericalInstability,InvalidLogDensity,ModelExecutionFailed,InferenceConvergenceFailed,InsufficientSamples,InvalidInferenceConfig,TraceCorrupted,TraceReplayFailed,UnsupportedType. The 11 surviving codes are each verified live (grepped construction sites) insrc/error.rs's module docs. ABC and VI's own failure modes (ABCError,GuideError) keep their dedicated, more precise error types rather than being folded into this general enum. - FG-50: README/mdBook now state the exact distribution count (17, enumerated) instead of the ambiguous "10+".
- FG-51: The README's unverified "1.70+" claim was wrong: real
rustc 1.70.0fails to build the crate (anE0659ambiguous-name error onpub mod corevs. thecoreextern-prelude crate, andusize::is_multiple_of, stable only since 1.87.0). Pinned the verified floor,rust-version = "1.87", inCargo.toml, corrected the README/mdBook badges accordingly, and added a dedicated MSRV job to.github/workflows/ci.ymlthat actually builds againstrustc 1.87.0.