Changelog
v0.3.42 (2026-06-14)¶
Public context hardening release.
- Added missing docstrings to stub emitters (GLIFEmitter, LIFEmitter).
- Enforced clean-venv lazy root imports to guarantee heavy optional packages are not loaded on import.
- Harmonized version references across documentation, package configurations, and tests.
v0.3.41 (2026-06-14)¶
Port of JAX computational kernels. No scientific-claim escalation.
Added¶
- JAX spectral analysis functions:
spectrolaminar_psd_jax,bandpower_jax,spectrolaminar_readout_kernel_jax,spectrolaminar_similarity_kernel_jax, and vectorized batched variantsspectrolaminar_similarity_candidates_jax,spectrolaminar_similarity_candidates_seeds_jax. - Tensorized static-shape connectivity rule compilation kernel
compile_connection_rules_jax. - JAX-optimized activity-dependent STDP synaptic weight update kernel
update_stdp_weights_jax. StimulusSchedule.to_array_jaxfor compiling event schedules into JAX arrays.- Auto-JIT cache warming compile tracking under
Model._warmup_timesduring JIT initialization. - Experimental volume conductor loud-fail skeleton
solve_volume_conductor_experimentalthat raisesNotImplementedErrorpending boundary/gauge/calibration validation.
Scope¶
- Outputs remain proxy readouts (
linear_solver,physical_amplitude_calibrated=false).
v0.3.40 (2026-06-13)¶
Pre-0.4.0 hardening + device flexibility. No scientific-claim escalation.
Added¶
RuntimeConfig.backend(cpu/gpu/tpu) is now honored for device placement —simulate()pins compile+execute viajax.default_device;runtime_report()reportsbackend_enforcedby device availability (honest downgrade when absent). dtype (float32/float64) and jit remain per-RuntimeConfigadjustable.- Accurate docstrings for all public
jaxfne.__all__members; fail-loud pre-0.4 physical-solver placeholder inexperimental_hpc(raises until a validated solver exists — the stable path stayslinear_solver).
Changed¶
- Repo hygiene: root thinned; non-public planning/roadmap material removed from the published repository.
Scope¶
- Outputs remain proxy readouts (
linear_solver,physical_amplitude_calibrated=false); computational scaffold only.
v0.3.39 (2026-06-13)¶
Stable release: packaging/docs/PyPI consolidation of the v0.3.37–v0.3.38 quality line. No new APIs, no solver work, no scientific-claim escalation.
Summary of the v0.3.37 → v0.3.39 quality line¶
- v0.3.37 — docs comparison: strict notebook grammar, root export grammar,
scope/truth-gate cells,
*_proxynaming, API index regenerated. - v0.3.38 — root-export hardening: the six export helpers (
save_figure,save_figures,export_report,export_tutorial_artifacts,plot_raster,plot_spectrolaminar_suite) promoted to formaljaxfne.__all__members (len(__all__)179 → 185); clean-venv root-import laziness verified. - v0.3.39 — stable packaging: version bump to
0.3.39across pyproject/core/mkdocs/docs; wheel + sdist rebuilt andtwine-checked; published to PyPI, GitHub Release, and docs.
Validation¶
- Targeted pytest,
mkdocs build --strict, andcompileallpass. - Root import loads no
matplotlib/plotly/pandas/optax/jaxley/pynwb. - API index count equals runtime
len(jaxfne.__all__)= 185.
Scope¶
- Outputs remain proxy readouts (
linear_solver,physical_amplitude_calibrated=false); computational scaffold, not a calibrated biological simulator.
v0.3.37 (2026-06-13)¶
Release: Strict notebook grammar + truth gates. Published to PyPI (wheel +
sdist), GitHub Release (tag v0.3.37, commit 49aa025), and docs.
Added¶
- Root-level export grammar:
save_figure,save_figures,export_report,export_tutorial_artifacts,plot_raster,plot_spectrolaminar_suite— the canonical replacement for directmatplotlib/jsoncalls in release-facing notebooks. - Scientific scope cells in all 15 release-facing tutorials documenting
computational_scaffold/proxy_readoutstatus, local nonlinearity, global linearity, and thephysical_amplitude_calibrated = Falsetruth gate.
Changed¶
- Strict notebook call grammar: root-level
jtfne.<fn>()only (nojtfne.vis.*/jtfne.tutorial_utils.*in public notebooks). - Tensor-field naming standardized to
*_proxy(e.g.LFP-proxy,CSD-proxy); public*_likewording removed.
Validation¶
- 2284/2284 tests pass;
mkdocs build --strictpasses;twine checkpasses on both artifacts. - Truth gates enforced:
field_solver_status = "linear_solver",physical_amplitude_calibrated = False; no physical EEG/MEG/LFP/CSD measurement wording.
Scope¶
- Outputs remain proxy readouts (
linear_solver,physical_amplitude_calibrated=false); the package is a computational scaffold, not a calibrated biological simulator.
v0.3.26 (2026-06-02)¶
Feature release: Multi-area laminar workshop — inter-area connectivity, lesioning, AGSDR tuning, waveform explorer.
Added¶
- Global multi-area network in
simulate_laminar_trialswith within-area recurrence + inter-area projections (connectivity_spec) and lesioning (lesion_spec); per-area depth leadfield. Defaults: feedforward V1 L2/3 (E) → V4 L4, feedback V4 L2/3 (E) → V1 L5/6. - Per-cell-type Izhikevich overrides (
cell_type_izh_params, wider "E-Wide" default),single_cell_waveforms, andtune_laminar_agsdr(AGSDR tuning of firing rate + kappa). - Étude No. 1 rebuilt as a two-area Colab-ready customizable workshop notebook.
Fixed¶
- Trial-averaged spectral power (per-trial PSD then mean); relative-power-density cross; uniform
dt_mskwarg across vis plotters; example API drift; GHAcheckout@v5/setup-python@v6.
Scope¶
- Proxy readouts only (
linear_solver,physical_amplitude_calibrated=false); spectrolaminar motif is emergent, not imposed.
v0.3.25 (2026-06-01)¶
Feature release: Cylindric scaffold, spectrolaminar motif, and 32-contact LFP artifacts.
Added¶
- Cylindric scaffold geometry: per-area vertical cylinders (circular x-y cross-section, depth on z);
visualize_network_3dgainscolumn_shape="cylinder"shells and per-cell-type marker symbols. - Genuine per-area three-panel spectrolaminar suite (cell density, relative power spectrum, alpha-beta/gamma crossing) with smoothed band profiles.
- 32-contact LFP/spectrolaminar artifacts: equal-spaced contacts, robust relative-power normalization excluding degenerate low-power channels, 32-channel stacked LFP waterfall.
Fixed¶
- Notebook controls for trials, contacts, and per-layer cell-type fractions; CI dev-extra (
ipykernel) for slow notebook-execution tests.
Scope¶
- Outputs remain proxy readouts with
field_solver_status=linear_solverandphysical_amplitude_calibrated=false.
v0.3.24 (2026-06-01)¶
Release candidate: Compact Etude No. 1 tutorial utilities and Colab-ready visualization flow.
Added¶
jaxfne.tutorial_utilshelpers for laminar column configuration, adjustable model scale, cell-type distributions, stimuli, trial simulation, spectrolaminar summaries, and strict artifact export.jaxfne.vistutorial panels for 3D scaffold, activity traces, and three-panel spectrolaminar figures.- Thin Etude No. 1 notebook using
import jaxfne as jtfneand package-level helper calls.
Fixed¶
- Preserved root
build_laminar_columnwhile addingbuild_tutorial_laminar_columnas an unambiguous tutorial alias. - Restored optional dependency isolation: core import does not require pandas, matplotlib, plotly, or ipywidgets.
- Added per-area LFP/CSD tensor shape
(trials, areas, T, contacts)and area-tagged spectrolaminar specs.
Scope¶
- Outputs remain proxy readouts with
field_solver_status=linear_solverandphysical_amplitude_calibrated=false.
v0.3.22 (2026-05-31)¶
Patch release: Fix jtfne.vis.visualize_network_3d missing from PyPI wheel.
Fixed¶
jaxfne/vis/__init__.pynow exportsvisualize_network_3din the published wheel. The v0.3.21 PyPI wheel was built beforevisualize_network_3dwas added to the vis subpackage export list; v0.3.22 corrects this.- Etude No. 1 notebook: install cell updated to
--force-reinstall --no-cache-dirto prevent stale Colab runtime cache from shadowing the fix. - Etude No. 1 notebook: install verification cell raises
RuntimeErrorwith clear path/version diagnostics if the installedjtfne.visis still missing the function. - Network visualization cell now catches both
ImportErrorandAttributeErrorand falls back to a staticgeometry3dPNG so the notebook completes regardless.
Added¶
tests/test_vis_network3d_public_api.py— 5 regression tests that enforce thejtfne.vis.visualize_network_3dexport contract. CI now fails loudly if this public API is ever dropped from the package.
v0.3.21 (2026-05-30)¶
Release: Etude No. 1 completion and notebook template standardization.
Added¶
- Added Etude No. 1 as an advanced multi-laminar cortical AGSDR workflow under
tutorials/etudes/. - Added a canonical notebook template under
tutorials/templates/with unified setup, truth gates, and placeholder configuration. - Added a template guide for Suites and Etudes.
Changed¶
- Cleaned duplicated Etude notebook artifacts.
- Moved release/comparison receipts into
internal_docs/release_receipts/. - Updated release checklist and agent status metadata for the v0.3.21 release candidate.
Validation status¶
- Package import and compile gates pass.
- Etude and template notebooks pass structural hygiene checks.
- Maintains
`,computational_scaffold,field_solver_status=linear_solver, andphysical_amplitude_calibrated=false`.
v0.3.19 (2026-05-30)¶
Release: Field proxy boundary handling improvements.
- Optimized
project_laminar_sourcesboundary fallbacks for low contact counts. - Added comprehensive boundary and stencil numerical parity tests.
- Maintains
`,linear_solver` status.
v0.3.18 (2026-05-30)¶
Release: Sharding infrastructure for multi-device AGSDR.
- Added
jaxfne/sharding_utils.pywith distributed mesh and NamedSharding stubs. - 14 new tests for sharding context and single-device fallbacks.
- Sharding stubs do not yet drive multi-device dispatch (reserved for v0.3.20+).
v0.3.17 (2026-05-30)¶
Release: Dtype inheritance in AGSDR optimization.
- Updated AGSDR loop to inherit dtype from bounds, not force float32.
- Applied dtype-inheritance to noise generation, W_init, and delta-rule center updates.
- 12 new tests covering dtype invariants and candidate clipping.
v0.2.3 (2026-05-19)¶
Release: Stable proxy operators and documentation infrastructure.
- Added MkDocs-based documentation site with Material theme
- Reorganized docs: tutorials, guides, API reference, about
- Added Jaxley interoperability documentation
- Cleaned public documentation (removed internal metadata)
- 492 tests passing
v0.2.1 (2026-05-10)¶
- Introduced probe operator contracts
- Added status metadata
- Eight canonical readout channels
v0.2.0 (2026-04-15)¶
- Initial release
- Izhikevich emitters
- Laminar field solver (proxy)
- Basic readout operators