Changes in version 2.5.0 (2026-05-25) Added - Prediction for all interaction methods: predict() and predict_pls() now support product_indicator and orthogonal interaction models, in addition to two_stage. Previously, only two_stage interactions could generate out-of-sample predictions; the other methods threw an error. All three methods now fully support single predictions (predict()), k-fold cross-validation, and LOOCV via predict_pls(). - Quadratic term prediction: quadratic_term() models (using any interaction method) can now generate predictions. - Parallel k-fold cross-validation: predict_pls() now supports parallel execution for k-fold CV when cores is specified (e.g., predict_pls(model, noFolds = 50, cores = 4)). Previously, parallelization was only available for LOOCV. - Interaction method detection: New internal detect_interaction_method() function provides clean dispatch based on interaction class attributes. - Custom confidence levels in plots: plot() accepts a user-specified confidence level for bootstrapped models, allowing displays at any alpha (e.g., 90%, 99%) instead of the fixed 95% default (#407). - Public accessor API for constructs and measurement-model elements: A set of helper functions is now exported and documented for use by downstream packages and user scripts. Container-first argument order (model or measurement-model first): construct_items(x, construct_name) (S3 generic), construct_names(x) (S3 generic), construct_name(construct), construct_mode(mmMatrix, construct), construct_type(model, construct), all_factors(model), all_composites(model), all_non_interactions(measurement_model). These replace and consolidate a set of non-exported internal helpers; downstream code should migrate off seminr::: triple-colon access and use these exported functions instead. Changed - predict.seminr_model() dispatch refactored: uses switch() on detected interaction method instead of pattern-matching on measurement model names. - Interaction estimation now stores prediction-relevant parameters on the model object (model$interaction_params), including orthogonalization regression coefficients needed for out-of-sample prediction of orthogonal models. - Mixed interaction methods (e.g., one two_stage and one product_indicator in the same model) produce an informative error at prediction time. Fixed - Plot significance stars now use bootstrap p-values for consistency with reported significance (#412). - construct_items() and all_LOC_items() return a character vector instead of a single-column matrix, restoring expected downstream behavior (#364). - Construct/item name collision check now correctly detects name conflicts that were previously missed (#402). - CBSEM summary path significance now displays in the conventional IV → DV direction (#404). - Quadratic interaction terms with a single indicator no longer fail due to matrix-to-vector coercion (#327). Changes in version 2.4.2 (2026-02-18) Fixed - PLSpredict now works correctly with non-standard (character) rownames (#390) - Plot symbols use BMP-compatible Greek letters for cross-platform rendering (#226) - Plot displays capital R² for coefficient of determination (#389) - Summary reports now work correctly for PLS-SEM models with higher-order constructs (#369) - vif_items() always returns a named list structure (#377) Changed - Modernized GitHub Actions CI workflow for Ubuntu 24.04 Changes in version 2.4.0 (2026-01-27) - (See previous CRAN release notes)