Moved PDF report generation (report.fmri_lm) to the standalone fmrireport package. Use fmrireport::report() for report rendering.
Bug Fixes
Fixed low-rank/sketch residual degrees of freedom to use original timepoints (T - p) instead of sketch rows.
Replaced placeholder fit_contrasts.fmri_lm() outputs with computed standard errors, test statistics, and p-values.
Consolidated duplicate meta-analysis pathways to shared implementations and removed inconsistent behavior across runwise/chunkwise pooling.
Fixed F-contrast meta pooling to combine evidence via p-values rather than averaging F statistics.
Fixed thread-safety issue in C++ meta kernels by deferring Paule-Mandel non-convergence warnings until after OpenMP regions.
Added bounds validation and safer inverse fallback in sketch kernels to prevent unsafe indexing and hard failures on ill-conditioned data.
Improved AR pipeline consistency for whitened covariance/fitted/residual handling and unified AR effective-df calculations.
Added regression coverage for fit_contrasts.fmri_lm() to prevent placeholder-stat regressions.
fmrireg 0.1.1
Bug Fixes
Fixed glm_lss() tests that incorrectly expected specific Cholesky decomposition errors.
Fixed convolution test with non-strictly-increasing onsets within blocks.
Fixed testthat API usage (expect_lt/expect_gt no longer use deprecated info argument).
Fixed latent_dataset API usage: now uses get_latent_scores() instead of deprecated get_data().
Changed glm_lss()use_cpp parameter default from TRUE to FALSE (C++ implementation retired; fmrilss package now used).
Added fmrireg.suppress_deprecation option check to all deprecated functions for cleaner test output.
Added tests/testthat/setup.R to suppress expected deprecation warnings during testing.
Suppressed expected kmeans convergence warnings in landmark SRHT tests.
Internal
Test warnings reduced from 129 to 31 (remaining warnings are from external packages).
fmrireg 0.1.0
Breaking Changes
Design Matrix Column Naming: The naming scheme for columns in design matrices generated by event_model() has been completely revised for consistency and clarity.
All column names now strictly follow the format: term_tag + _ + condition_tag + [_b## basis suffix].
term_tag: Automatically generated from variable names (e.g., var1_var2) or user-provided id= in hrf(), sanitized (dots become underscores), and made unique with # suffix if needed (e.g., cond, cond#1).
condition_tag: Represents factor levels (e.g., Factor.Level), continuous basis columns (e.g., poly_RT_01, z_RT), or interactions joined by _ (e.g., Factor.Level_poly_RT_01).
_b##: Optional suffix added only when the HRF has multiple basis functions (e.g., _b01, _b02).
The previous style argument ("compact", "qualified", "uid") in design_matrix() is removed. Only the single canonical format is produced.
Scripts or analyses that relied on matching previous column name formats (e.g., using Var[Level], Var:Level, :basis[]) will need to be updated to use the new term_tag_Condition.Tag_b## format.
Major Changes
Regressor System Refactoring:
Introduced a new internal S3 class Reg for representing regressors.
The main regressor() function now uses Reg internally but maintains backward compatibility (returns class c("regressor", "Reg", "list")).