Releases: Limen-Neural/synaptic-wiring
Releases · Limen-Neural/synaptic-wiring
Release list
v0.1.0
First versioned history. Nothing before this tag was published or tagged.
Added
- Neuromodulatory adaptation in
ChannelRouter—NeuromodState(cortisol,
dopamine, serotonin),route_modulated(),apply_plasticity(), per-channel
fatigue, use-it-or-lose-it plasticity. - Generic
ChannelRouterwith configurable channel count. - CSR sparse synaptic maps, topology generators (small-world, scale-free,
random, layered), temporal delay ring-buffer, Dale's law wiring. - CI: GitHub Actions workflow (
.github/workflows/ci.yml) running
cargo fmt --check,cargo clippy -D warnings,cargo build, and
cargo teston every push/PR tomain. - MSRV pin 1.97.1 in
Cargo.tomlrust-version,rust-toolchain.toml,
and CI (dtolnay/rust-toolchain+ pin-agreement check). PartialEqonSynapticGraphandSynapseDescriptor, plus a JSON
serde round-trip test.inhibitory_fractionrange validation to all topology generators
(generate_random,generate_small_world,generate_scale_free,
generate_layered) — rejects values outside[0, 1].
Changed
- License: Dual
MIT OR Apache-2.0. SPDX identifier added to all source
files. apply_dale_polarity(topology::wiring_rules) returns
Result<Vec<Polarity>, MeshError>instead ofVec<Polarity>. Out-of-range
inhibitory_fractionvalues (< 0 or > 1) are rejected with
MeshError::InvalidConfig.
Removed
AhlRouter— useChannelRouterwithRouterConfig::default().AHL_NUM_CHANNELS— default channel count isRouterConfig::default().channel_count(3).TelemetrySnapshot— useNeuronStateSnapshot.NeuronStateSnapshot::quant_bonus— useNeuronStateSnapshot::error_bonus.NeuronStateSnapshot::quant_error— use theerrorfield.
The serdealias = "quant_error"onerroris kept so older snapshots
still deserialize.
Fixed
- Test:
mesh::tests::layered_mesh_feed_forward— the test now models
multi-hop propagation by thresholding received currents back into spikes
(matching the documented one-hoppropagate()semantics). - Underflow:
SynapticGraph::validate_descriptor_indicesused
neuron_count - 1which underflows onneuron_count = 0. Now uses
saturating_sub(1). - Consistency:
apply_feedbackandsync_baseline_after_feedbacknow
consistently useself.config.channel_count(matching all other methods)
instead ofself.neurons.len().apply_feedbackretains a double-guard
for Codacy HIGH RISK out-of-bounds protection. - Defensive:
sync_baseline_after_feedbackinner-row length check
converted todebug_assert!documenting the call-ordering invariant
(ensure_neuromod_state_syncedrebuildsbaseline_weightsbeforehand). - Zero-size layer validation in
generate_layerednow rejects&[0, 5]
vialayer_sizes.contains(&0)with a clearer error message.
Internal
- Resolved clippy warnings (
RangeInclusive::contains, iterator idioms,
derivable impls, redundant borrows). - Fixed
cargo fmtformatting (module ordering, debug_assert wrapping).