Patch release. Bug fixes from the 2026-06-19 parity-audit ledger, the helpfile-rendering pipeline rebuild, the MATLAB R2025b→R2026a switch, and a checkcode-surfaced sweep of +nstat/+decoding/. End users on v1.5.0 should upgrade.
Install
.mltbx(recommended) — downloadnSTAT-1.5.1.mltbxfrom this release's assets and double-click in MATLAB. The Add-On Manager handles path setup. After install, runnSTAT_Install('DownloadExampleData', true)once to fetch the figshare paper-example dataset (too large to ship in the.mltbx).git pull— existing source-clone installs get the same fixes viagit pullon the repo. NonSTAT_Installre-run needed.
Headline changes
Correctness fixes
- KS rescaling:
1 - exp(-Z)→-expm1(-Z)(catastrophic-cancellation fix at sub-Hz firing rates, PR #87). Events.plotlabel x-coord now anchors in data coordinates (drift fix at tight xlim, PR #87).CIFconstructor validates Xnames are valid MATLAB identifiers;Xnames={'1',...}now errors withCIF:InvalidXname(PR #94). Breaking — see below.SignalObj.{auto,cross}correlationuse R2023b+ name-valuecrosscorrAPI (PR #94).PPLFP_EStepbinomial-fitType log-likelihood accumulator typo (HkPermself-clobber →Hk = ..., PR #97).- 6
matlabpool→gcp('nocreate')sites across+nstat/+decoding/(PR #100). PPLFP_EMscalar-gamma=0no longer misinterpreted as 1-window history (PR #100).DecodingExample.morphanfigure;removed (was producing a blank PNG, PR #106).FitResult.plotCoeffs+ 3FitResSummaryplot methods replacexticklabel_rotatewith built-inxtickangle(overlapping-label fix underpublish(), PR #109).PointProcessEM.m:268missing=in binomial Hessian update (standard-error fix, PR #112).PointProcessEM.m:1111baretime;in Ikeda-acceleration with-history branch → loud error (PR #112).
New capabilities (tracked tools)
tools/smoke_helpfile.m— per-helpfile publish smoke test in a staged sandbox.tools/check_helpfile_drift.m— pixel-diff two helpfile directories.helpfiles/publish_all_helpfiles.mgets avalidateNoBlankFiguresstep.tools/predeploy.sh—--skip-publishescape hatch removed.
MATLAB toolchain
- Default switched from R2025b → R2026a (MATLAB 26.1).
Breaking changes
CIFintercept symbol must be'one', not'1'(PR #94). External callers passingXnames={'1', ...}will get a clear error at construction. Migrate toXnames={'one', ...}.
Full release notes
See RELEASE_NOTES.md at the v1.5.1 tag for the complete table of correctness fixes with per-PR commit references.