                         Changes in version 4.0                         

NEW FEATURES

    o   Added opt-in supervised sparse soft-structured PCA through `msma()` using
	`structure.method`, `gammaX`, `history.method`, and `niterS4`.

    o   Added hard-exclusive structured PCA with
	`structure.method = "exclusive"`.

    o   Added `s4pca_reconstruct()` for training-data and new-data reconstruction.

    o   Added `s4pca_conformal_select()` for repeated split reconstruction-based
	selection of `lambdaX`, `gammaX`, and `comp`, with an optional overlap
	constraint and full-data refitting.

    o   Added `overlap_all`, `overlap_selected`, convergence diagnostics, and stored
	preprocessing information to structured-PCA results.

COMPATIBILITY

    o   Calls that do not request structured PCA retain the Version 3.2 dispatcher
	and computational paths.

    o   The manuscript-generating S4PCA code is retained as a frozen numerical
	reference. The refactored engine is tested against it at tolerance 1e-12.

    o   Unsupported combinations, including multiblock structured PCA, PLS,
	multi-column Z, and NMF-based super-level structured analysis, fail with
	explicit messages rather than silently changing interpretation.

VALIDATION AND DOCUMENTATION

    o   Added input-validation, diagnostics, public-API, reconstruction,
	model-selection, reproducibility, and Version 3.2 regression tests.

    o   Added a soft-structured PCA vignette and documentation for the two new public
	helper functions.

    o   Corrected UTF-8 metadata handling during documentation generation.

BUG FIXES

    o   Made reduced-dimension simulation fixtures safe for variable counts below
	the manuscript template size.

    o   Avoided use of the reserved R keyword `repeat` with `$` indexing.

                  Changes in version 3.2 (2026-08-26)                   

NEW FEATURES

    o   Added sparse non-negative matrix factorization at the super level through
	sprmethod = "sNMF".

    o   Z can now contain multiple supervision variables in separate columns.

    o   Added con4spv to specify weights for combining multiple columns of Z.

COMPATIBILITY

    o   Calls using only version 3.1 functionality are dispatched to the preserved
	version 3.1 computational engine.

    o   The extended computational engine is used only when NMF, sNMF, multivariate
	Z, or con4spv is explicitly requested.

BUG FIXES

    o   A one-column matrix supplied to Z is now normalized to a vector before the
	preserved version 3.1 engine is called. This makes Z = z and Z = cbind(z)
	produce identical numerical results and returned objects.

PACKAGE CHECKS

    o   Renamed the internal legacy and extended computational engines so that they
	are not interpreted as unregistered S3 methods of the msma generic.

    o   Added the internal `.s4pca_fit_reference()` candidate engine and the first
	regression suite against the frozen manuscript-generating implementation.

    o   Added a validated internal S4PCA interface and diagnostic metadata while
	retaining the reference-compatible numerical engine unchanged.

    o   Added strict validation for data, supervision, tuning, iteration, and seed
	inputs.

    o   Fixed reduced-dimension S4PCA test fixtures and ensured the canonical UTF-8
	DESCRIPTION is installed before roxygen2 documentation generation.

PUBLIC S4PCA API

    o   Added opt-in S4PCA through `msma()` using `structure.method`, `gammaX`,
	`history.method`, and `niterS4`.

    o   Added public contract tests and a soft-structured PCA vignette.

S4PCA MODEL SELECTION

    o   Added `s4pca_reconstruct()` for training and new-data reconstruction.

    o   Added `s4pca_conformal_select()` for repeated split reconstruction-based
	selection of `lambdaX`, `gammaX`, and `comp`, with an overlap constraint.

    o   Updated the Version 3.2 versus Version 4.0 compatibility validation document.

    o   Fixed parsing of the repeated-split identifier by using bracket indexing for
	the reserved R keyword `repeat`.

RELEASE VALIDATION

    o   Added reproducible scripts for the independent Version 3.2 compatibility
	audit, the `mand` reverse-dependency check, and release-manifest generation.

    o   Reload the newly installed namespace after the build so interactive
	post-build tests see the current Version 4.0 exports generated by roxygen2.

    o   Removed a redundant source-tree NAMESPACE inspection test. Export status is
	already verified against the installed namespace, avoiding a context-only
	skip when tests are run from the development tree.

    o   Fixed the Milestone 6 compatibility runner to use absolute input, reference,
	source, and output paths when rendering from the validation directory.

    o   Corrected the `mand` reverse-dependency audit to install msma 4.0 into a
	genuinely isolated library and to separate compatibility checks from CRAN
	incoming same-version warnings.

    o   Made the `mand.Rcheck` log discovery robust to the Windows R front end,
	which may create the check directory in the development root even when the
	command is launched after changing to the reverse-dependency work directory.
