Breaking changes
Decision presets renamed
Old strings raise
ValueError. Also available: "aggressive".
Middleware import paths regrouped
Flat middleware modules moved into subpackages — no compatibility shims:
The public top-level API (
from nimbus_bci import Personalizer, …) is unchanged.
Dependency floors
scikit-learn >= 1.6(was>= 1.4)requires-python:>=3.11,<3.14- Optional
[train]/[all]:torch >= 2.14.0
Compiled extensions
After upgrading from source, rebuild extensions (scripts/build_extensions.py) — a stale learning.*.so can shadow new source.
What to adopt (new in 0.6)
Session-bundle sidecars require
trusted=True on load; save records sidecar_sha256 verified before unpickle.
Recommended rewrite
Next read
Installation
Verify 0.6 and optional extras
Quickstart
Factory-first Personalizer path
Changelog 0.6
Release notes mirror
Paradigms & profiles
MI / P300 / Riemann recipes
API Reference
Full Personalizer surface