Skip to content

Release Notes

Raul Montoya Cardenas edited this page Jul 30, 2026 · 4 revisions

Release Notes

Wiki hero

Generated with Grok Build: Grok 4.5 · xAI Imagine (/imagine)

Grounded in package main @ 553cc8e and tag v0.5.0 (67c1573).
Canonical changelog: CHANGELOG.md.

Pin Value
crates.io / Cargo neuromod = "0.5.0"
MSRV 1.97.1 (rust-version in Cargo.toml)
Edition 2024
License MIT OR Apache-2.0 (dual; GPL removed)
docs.rs https://docs.rs/neuromod
Tag commit 67c1573
Wiki tip (main) 553cc8e

[0.5.0] — 2026-06-20

Added

  • Generic neuromodulator APINeuroModulators fields: dopamine, serotonin, acetylcholine, norepinephrine
  • SignalProfile — map external signals → modulator levels (default(), optional hardware_calibrated())
  • GenericReward + Observation — domain-agnostic reward shaping for downstream crates
  • UnitReward — mean-signal demo/test reward
  • apply_neuromodulation — apply modulator effects to weight / threshold slices
  • GitHub Actions CI — fmt, clippy, build, test on push/PR to main

Breaking changes (from 0.4.x)

Old New
cortisol, tempo, aux_dopamine fields Removed
from_signals(...) without profile from_signals(&SignalProfile, …)
add_stress / is_stressed add_norepinephrine / is_aroused

Removed / cleaned

  • Domain-specific mining/HFT metadata from public docs
  • Eagle-Lander provenance from crate docs
  • "spikenaut" crates.io keyword → "neuromodulation"

On main since v0.5.0

These landed after the tag and are present at tip 553cc8e (still crate version 0.5.0):

Commit / PR What
#62 03c1996 Criterion benches: all four [[bench]] set harness = false (fixes silent running 0 tests); REVIEW.md harness guard; PoissonEncoder deterministic at intensity 0.0/1.0; Sentry example uses SENTRY_ENVIRONMENT, drops info-level probe; crates.io metadata (homepage, documentation, MSRV pin); drop unused serde_json; clean rm_stdp rustdoc; tests for EligibilityTrace::decay, LIF/Poisson
#65 553cc8e GitHub Actions group dependency bumps

Also documented on main (many pre-tag under [Unreleased] in CHANGELOG until a future 0.5.1/0.6):

Upgrade notes

# Cargo.toml
neuromod = "0.5.0"
# optional observability
# neuromod = { version = "0.5.0", features = ["sentry"] }
use neuromod::{NeuroModulators, SignalProfile};

// 0.5.0: SignalProfile required
let profile = SignalProfile::default();
let mut mods = NeuroModulators::from_signals(&profile, 0.2, 0.1, 0.8, 0.9);
mods.add_norepinephrine(0.1); // not add_stress
assert!(mods.is_aroused() || !mods.is_aroused()); // not is_stressed

Related


Last updated: July 30, 2026 Updated by: Grok Build: Grok 4.5 Package tip reference: 553cc8e (main @ 0.5.0 + post-tag; tag v0.5.0 = 67c1573) Cubic: page-intro Devin DeepWiki: neuromod @ 553cc8e

Clone this wiki locally