                 Changes in version 0.1.5 (2026-09-27)                  

  - Marked the optional ComBat example as a longer-running example
    because loading its Bioconductor dependency can exceed five seconds
    on CRAN. It remains runnable with example() and is checked by
    --as-cran.
  - Added routine ComBat integration coverage for preserved matrix
    labels, finite non-negative output, and correction of simulated
    batch effects.
  - Simplified the description and clarified the title as mass
    spectrometry profiling data. The full method citation remains in
    CITATION and the README.

                        Changes in version 0.1.4                        

  - Made the Bioconductor package sva optional for the ComBat correction
    path; the default ANOVA workflow no longer requires a Bioconductor
    installation.
  - Added executable examples for all exported functions and seeded
    stochastic examples for reproducible CRAN checks.
  - Made drift testing and smoothing honor run_order independently of
    matrix column order. Values are sorted within batch for testing and
    correction and restored to the caller's original column order.
  - Changed the Ljung-Box default to fitdf = 0, because WiNN does not
    first fit an ARMA model. The legacy fitdf = 1 behavior remains
    available explicitly through ljung_box_fitdf = 1.
  - Added strict validation for finite, non-negative log-scale inputs;
    complete batch and run-order metadata; unique within-batch run
    orders; control indices; dilution factors; and within-batch scaling.
  - Documented the preprocessing policy for zero and censored
    observations. Numeric zeros remain observed values and are never
    silently converted to missing values.
  - Added return_details = TRUE to winn() for machine-readable selected
    parameters, batch assignments, and per-stage decisions while
    retaining the corrected-matrix default.
  - Clarified fixed versus auto-mode settings and the selective ANOVA
    versus global ComBat correction scopes.
  - Removed interactive test code from package sources and added release
    CI.

                        Changes in version 0.1.3                        

  - Replaced the legacy upper-priority MAD branch with independent
    two-tail shrinkage. Each metabolite's median, MAD, thresholds, and
    upper/lower masks are computed once from the original finite values;
    both tails are then adjusted in one non-iterative pass.
  - Added regression coverage for simultaneous-tail adjustment, one-pass
    threshold reuse, missing/non-finite values, and zero-MAD features.

                        Changes in version 0.1.2                        

  - Added winn_ablation() for fixed-parameter cumulative and
    gate-factorial analyses using the same correction operators as
    winn().
  - Added optional decision and correction diagnostics to the drift,
    batch, and dilution-normalization functions. Their default
    matrix-returning behavior is unchanged.
  - Made selective, forced-all, and disabled drift and batch gates
    explicit for controlled method evaluation.
  - Documented the historical directional MAD behavior and added
    regression tests that made the legacy branch explicit before its
    replacement in 0.1.3.
  - Added tests for ablation equivalence, disabled-stage pass-through
    behavior, diagnostic structure, and standard-smoother fallback
    reporting.
