# Changelog All notable changes to this project will be documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versioning follows [Semantic Versioning](https://semver.org/). ## [0.2.0] - 2026-05-12 ### Changed (breaking) - Inference no longer requires PyTorch. Runtime dependencies are now `numpy + onnxruntime` only. - Public API additions: `MouseModel` and `ScrollModel` classes wrapping a persistent ORT `InferenceSession`. - Function signatures `generate()` and `generate_scroll()` are now keyword-only past the positional `start`/`end` (or `start_scroll_y`/`target_scroll_y`). - New parameters: `click=True` (mouse), `seed=` (both), `viewport_height=` (scroll). - Removed `config=` parameter; use kwargs directly. - `model_dir=` renamed to `model_path=`; accepts `str` or `pathlib.Path`. - `start_scrollY` / `target_scrollY` renamed to `start_scroll_y` / `target_scroll_y`. - Training, web UI, collector, eval, and data adapter code moved to repo-level `tools/`; no longer packaged in the wheel. ### Added - ONNX-format pre-trained weights bundled inside the wheel via `importlib.resources` (~3 MB). - `tools/export_onnx.py` script with PyTorch/ORT parity check. - Errors namespace `ai_mouse.errors` with `AiMouseError`, `ModelLoadError`, `GenerationError`. - Custom ORT providers parameter for GPU / DirectML. - Per-process `lru_cache` so `generate()` / `generate_scroll()` reuse the default model across calls. ### Removed - Legacy `JointCVAE` class. - `ai_mouse.config.GenerateConfig` top-level export (parameters moved to kwargs). - Source dependency on `scipy.stats.truncnorm` (replaced by numpy rejection sampling).