Repository navigation
v0.2.0
Immutable
release. Only release title and notes can be modified.
Breaking
- Windows source builds use the native Rust GNU LLVM host (
x86_64-pc-windows-gnullvmoraarch64-pc-windows-gnullvm) with bundled startup libraries and linker, replacing the MSVC build route. Install the host andrust-mingwcomponent using the source setup, and pass the native--targetwhen building. Windows x86_64 executables require SSE3, CMPXCHG16B and LAHF/SAHF instructions. - Presets use
schema_version = 2. Component levels are namedpeak_dbfs, and the optional[provenance]table is replaced by[about], in which onlytitleis required anddescriptionis renamedstudy. Schema 1 and the old names are rejected. Built-in schema 2 recipes can be saved withshow NAME --output FILEand edited. - Rust callers must replace
ProvenanceandPreset.provenancewithAboutandPreset.about, renamedescriptiontostudy, and handle the optional descriptive fields.Componentfields and itslevel_dbfs()accessor becomepeak_dbfsandpeak_dbfs().ComponentError::Level,ClickRateTooSmallandClickWidthbecomePeakDbfs,PulseRateTooSmallandPulseWidth; the pulse errors include afieldname. Update exhaustive matches for the added modulation and preset-error variants. inspectretains the preset title but no longer prints citation, source URL, study description or adaptation. Useabout PRESETfor that text, and update consumers of the inspection output.
Added
rectangularmodulation switches a component on forwidth_secondsat the start of each period, for tone-pip and pulsed-tone stimuli.- Built-in presets from Martorell et al. (2019), 1 ms 10 kHz tone trains at 8, 40 and 80 Hz, and Lahijanian et al. (2024), a 40 Hz train of 1 ms 5 kHz tones.
- Every built-in preset states what its source studied it for and summarizes the study and its findings in plain language, including study limitations and differences between the recipe and the source stimulus. These descriptions do not establish benefits from listening.
about PRESETprints a preset's description, research source and adaptation as readable text, accepting a built-in name, file or standard input.show NAME --output FILEsaves a built-in preset as UTF-8 without shell redirection or encoding differences. It requires a new destination and never replaces an existing file.- A preset with a UTF-16 byte-order mark is reported as UTF-16 rather than as invalid UTF-8; preset input still requires UTF-8.
Changed
listand the Rust catalog order numeric parts of preset names as numbers, so 5 Hz precedes 10 Hz and 500 Hz precedes 1000 Hz.- Release archives contain four files: the executable,
README.txt,LICENSEand a singleTHIRD-PARTY-NOTICES.txt.README.txtreplacesINSTALL.txtandUSAGE.txt; the separateBUILD_INFO.jsonand notice directories are removed. The consolidated notices retain the full Rust standard-library component notices as plain text alongside crate and native-runtime notices. - macOS executables are built for macOS 11 or later (Apple silicon) and 10.12 or later (Intel), where 0.1.0 required macOS 15. Release testing runs on macOS 15 and does not establish execution on those older minimum versions.
- Windows executables use open-source MinGW startup/support and static LLVM unwind code instead of the MSVC runtime, with UCRT supplied by Windows 10 or later on x86_64, or Windows 11 on ARM64. Release archives include the complete reviewed MinGW and LLVM runtime notices; Windows archive platform names are unchanged.
- Contributor release tools require Python 3.9 or later instead of 3.11, using only the standard library.
- Release publication checks uploaded asset digests before making a draft public and no longer resumes a partially uploaded draft automatically. Follow the failure recovery procedure before retrying; published versions must never be replaced.
Internal
- Native packaging checks Windows runtime link inputs using evidence bound to the executable's SHA-256. Quality also packages native builds on macOS, Linux and both Windows architectures. The previous native Windows packaged-interruption harness is removed, so these checks do not establish Windows Ctrl-C or Ctrl-Break behavior.