Changelog

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.

[0.4.3] - 2026-03-03

Release focused on documentation coherence & reproducibility entry points.

Added - Experiments & reproduction landing page (docs/21_experiments.md) with benchmark commands, artifact contract, and provenance-based baseline comparison. - API reference stability map (stable vs experimental) in docs/08_api_reference.md.

Changed - Legacy experimental suite guide is now explicitly archived and points to the current reproduction entry points (scripts/EXPERIMENTAL_SUITE_README.md). - zeroproof.autodiff.graph is explicitly documented as experimental.

Removed - DOSE-specific reproduction page; reproduction guidance is consolidated in docs/21_experiments.md and docs/18_benchmarks.md. - v1.0 entry criteria docs page; tracking is maintained externally (issue tracker).

Fixed - Broken documentation links after pruning legacy/unneeded doc pages. - GitLab CI coverage regex now matches pytest-cov's TOTAL … % output (coverage badge). - ONNX export CI now installs onnxscript, and export_bundle(...) defaults to opset 18 for Torch 2.8 compatibility. - Ubuntu CI jobs now install Python deps in a venv to avoid PEP 668 externally-managed-environment failures. - CI now installs CPU-only PyTorch wheels on Linux to avoid pulling CUDA libraries (disk exhaustion).

[0.4.2] - 2026-03-01

Release focused on observability & interop (NumPy parity, export bundles, and lightweight plotting/logging utilities).

Added - NumPy parity for projective tooling: lift_targets_numpy(...) and NumPy dispatch for strict SCM inference. - ONNX “deployment bundle” helper export_bundle(...) that writes model.onnx plus a metadata.json sidecar. - Optional visualization helpers (zeroproof.utils.viz) and first-party log hooks (zeroproof.utils.logging) including JSONL readers / DataFrame loader (via the viz extra). - Trainer config additions: TrainingConfig.val_loader, use_amp alias for AMP, and gradient_policy override; validation summaries are stored in SCMTrainer.val_history. - GitLab CI pipeline with a manual, tag-only PyPI publish job (.gitlab-ci.yml).

Changed - gradient_policy(...) now overrides registered per-layer defaults while the context is active. - Repository/documentation links updated to GitLab (gitlab.com/domezsolt/zeroproofml).

[0.4.0] - 2025-12-11

Release completing the SCM migration and preparing PyPI publication.

Added - SCM-first documentation and README refresh describing weak sign tracking, projective tuples, and absorptive arithmetic. - Benchmark regression gate (scripts/ci/benchmark_gate.py) and CI wiring for SCM-specific pytest markers and coverage thresholds. - License headers across the v0.4 codebase to match release compliance requirements.

Changed - CI pipelines now run strict linting (black, ruff, isort), mypy --strict, and enforce --cov-fail-under=90 on the SCM suite. - Benchmarks workflow uses the SCM benchmark runner and fails on malformed or slow results. - README development commands align with the tightened release checks.

[0.2.0] - 2025-10-29

Integration-focused release with unified runner, parity, and docs.

Added - Unified integration runner: scripts/run_integration_suite.py - Runs focused unit tests (Torch/JAX + parity), writes a consolidated log, and saves parity_results.json. - CPU‑friendly defaults (threads capped on ≤4‑thread CPUs), headless plotting, disables CUDA visibility, enables JAX x64. - Parity helpers: zeroproof/utils/parity.py - run_backend_parity and parity_within_tolerance across NumPy, PyTorch, and JAX. - Torch parity enabled; JAX parity enabled on CPU. - Determinism test for Torch: tests/unit/test_torch_determinism.py. - Documentation: docs/11_integrations.md (framework integrations & runner) and index link. PyPI install instructions now primary. - README simplified with vision/goal and links to full docs and robotics example (Zenodo).

Changed - JAX bridge (custom_vjp): backward signatures updated for cross‑version compatibility (removed nondiff_argnums; pass scalars via residuals). - JAX deterministic sum tolerance relaxed to atol=1e-5 for CPU order stability. - Integration runner hardens imports (ensures repo root on sys.path) and environment (JAX x64, thread caps). - Torch parity uses non‑grad inputs to avoid graph reuse/backward issues in integration context.

Fixed - JAX tr_div backward now masks gradients when denominator is non‑REAL or zero; gradient clipping rewritten using JAX arrays to avoid tracer boolean conversion. - Parity “No module named 'zeroproof'” import issue resolved by inserting repo root into sys.path in the runner. - JAX dtype warnings suppressed by enabling x64 in runner and parity path.

[0.1.0] - 2025-10-01

First external-ready release candidate (repo hardening).

Added - PEP 621 packaging via pyproject.toml with extras: torch, jax, all, dev. - py.typed marker to ship type information for the public API. - CI release workflow to build wheels/sdist and publish on tag. - Dependabot configuration for dependency updates. - Initial mypy configuration scoped to the public API.

Changed - CI matrix aligned to Python 3.9–3.12; lint job installs black, ruff, isort, mypy. - README installation section clarifies install-from-source and extras.

Fixed - Minor import in evaluator utilities to avoid NameError when generating default evaluation grid. - Hybrid trainer now aggregates per‑sample losses via a balanced pairwise reduction to bound graph depth and avoid recursion issues during backprop.

Notes - Until PyPI publication, use pip install -e .[dev] for development and pip install -e .[all] for full features. - Torch/JAX remain optional dependencies; import zeroproof should work without them.