v1.0.1 — Reproducibility, CI, and API curation
A maintenance and infrastructure release: gated continuous-integration test
lanes, deterministic identity/fingerprinting primitives, MCP integration docs,
a curated public API surface, and targeted fixes. It builds on the v1.0.0
two-layer toolbox without changing its workflows.
Testing & continuous integration
- Authoritative test-suite builder (
buildSuite) and arunCIgate that runs
the headless, UI, clean-process, and quick lanes and fails on Failed or
Incomplete tests. runQuickTestsnow returns a pass flag and errors on failure when no output
is captured, so it can act as a gate.- Manual GitHub Actions workflow (
workflow_dispatch) running the quick and
identity lanes, including cross-platform matrix jobs. - Golden-file regression fixtures and notes under
tests/golden/.
Identity & reproducibility primitives (+pf2_base/+identity/)
- Deterministic canonical byte encoding, domain-separated (named) hashing, and
SHA-256 digests. - A tagged JSON/MAT transport for round-tripping values canonically.
- Source and imported-data fingerprinting, plus a fail-closed expected-digest
preflight that gates importers.
Processing methods
- Shipped Takizawa oxy seed methods (
takizawa_easy/takizawa_hard, lenient
and strict automatic channel rejection — Takizawa et al. 2008) added to the
default library. - Method reference tables and examples updated to the live registry and to the
OD_TDDRraw method.
Public API & namespace curation
- The
Contextprocessing option now uses the publicpf2.ProcessingContext;
the publicfromRecipehelper was removed. - Method-authoring internals moved out of the primary
pf2.*surface into
pf2_base: seed factories and discovery topf2_base.methods.seeds,
function-metadata validation topf2_base.methods.validateFunction, the
add/edit-function tools topf2_base.methods.functions, and the tutorial
demo-pipeline setup topf2_base.examples.addDemoPipelines. - Retired the
pf2.GUI.configureRawMethods/configureOxyMethods/
functionswrappers; the supported method editors are
pf2.methods.raw.configureMethodsandpf2.methods.oxy.configureMethods.
MCP integration
mcp/README.mdandmcp/TOOL_CARD.md: how to drive processFNIRS2 from an MCP
client through the MATLAB MCP Server.
Documentation
pf2_sSMARTheader references added (Curtin & Ayaz 2019; Ayaz et al. 2010 for
the SMAR detection stage) and an expanded Notes section on the DC-offset
(ShiftCorrect) correction and its caveats;pf2_functions_default.cfg
argument list, role, defaults, and parameter metadata corrected to match the
function.- Docs clarify
pf2_baseas an advanced-and-internal package.
Fixes
getTakizawaRejectionnow uses the first FFT bin above 1 Hz as a scalar index
rather than the full index vector.- Signed-zero handling: negative zero round-trips canonically as
+0through
the JSON transport, with explicit test coverage.
Full Changelog: v1.0.0...v1.0.1