Changes in version 0.3.1 (2026-10-27) - Aligned read-only tree readiness with V2 requirements for character tip labels and a declared positive Nnode. Invalid representations no longer appear ready immediately before preparation rejects them. - Preserved explicit D plot P-value column selection, including differing aliases and custom table columns under the automatic null selection. - Strengthened scalar K dispatcher tests to compare actual fields and simulation values, and corrected lambda's serial-execution documentation. - Preserved explicit numeric species names through both preparation layers; positional matching now applies only to missing names or automatic data-frame rownames. - Bound D plot probabilities to the selected null model and preserved fitted probabilities and strict contrast-scale tail counts in calibration plots. - Aligned R and C++ lambda boundaries with ape's scaled-range ultrametric tolerance. Approximately ultrametric trees use the exact terminal-edge feasibility limit, which can be slightly below phytools' max-height ratio; exactly ultrametric and non-ultrametric domains are unchanged. - Indexed long packed-mask identities by exact equality before using them as environment names. Existing short keys and V2 context persistence remain supported. The 50K regression covers preparation, subsets, persistence, fallback grouping and K without permutations; it does not qualify every method or simulation workload at that size. - Corrected D's type-7 Brownian threshold interpolation between the first two order statistics. A first factor level represented by one tip now produces one Brownian state per replicate for distinct simulated values, instead of an all-zero state vector. Strict threshold and tail rules, RNG draw order, and estimator definitions are unchanged. Changes in version 0.3.0 - Replaced the Blomberg's K permutation evaluator's per-permutation tree traversals with an adaptive hybrid fused kernel. Where fusion is selected, one traversal serves a block of permutations; hybrid evaluation obtains the GLS offset from a tree-only dot product instead of a full upward/downward pass pair. - Added an internal strategy selector. It maps the workload (number of tips, number of traits, number of permutations, memory budget) onto the evaluator variant and the block size. The selector is not part of the public API and adds no arguments to any exported function. - The permutation stream is unchanged. Blocks are a storage unit, not a drawing unit: permutations are still generated serially in global order under R's RNG. Fixed-seed validation found identical p-values and exceedance counts; K values may differ from 0.2.0 at floating-point rounding scale. - Public API, estimator definitions, the pointwise p-value rule, and the threading policy are unchanged. The 0.2.0 evaluator remains in the source as an internal reference; the production selector uses hybrid evaluation. Changes in version 0.2.0 - Integrated Canonicalization Contract V2 for deterministic, representation-safe tree preparation. Tip IDs and labels are preserved; internal nodes and edge rows are canonicalized without using source internal-node IDs, source edge order, locale collation, delimiters, or a probabilistic hash as ordering truth. - Replaced the legacy delimiter-based prepared-tree identity with versioned, exact structured encodings of tip.label, Nnode, edge, and edge.length. A package-owned protected record is checked before cached evidence or a numerical kernel can be used. - V2 prepared contexts support saveRDS()/readRDS() reuse across R sessions. Missing, legacy, or unknown context schemas are rejected with an instruction to run prepare_tree() again. - Added representation, heterogeneous-branch, locale, mutation, persistence, and K/lambda/D/Delta/ACE parity gates. Estimator definitions, RNG streams, threading policy, numerical tolerances, and public APIs are unchanged. Changes in version 0.1.0 - Consolidated repeated trait-table validation and C++ quantile code, removed obsolete ACE development timing hooks, and reorganized the English and Chinese guides around a one-command start and an explicit advanced workflow. - Declared compatibility with R 4.1.0 and newer. Windows source builds use the matching Rtools toolchain; OpenMP remains optional with a serial fallback. - Added the method-explicit fast_signal(tree, data, method, ...) dispatcher for K, lambda, D, and Delta, with public fast_k() and fast_lambda(). - Kept fast_d(), fast_delta(), and fast_ace() as specialist entry points; methods are never inferred from trait values and no public numerical-engine selector was added. - Made match_tree_data() the documented matching API and retained match_phylo_data() only as a deprecated compatibility alias. - Added shared tree/data preparation, compact workflow metadata, packed NA-mask grouping, retained-subtree validation, and bounded prepared-tree caches while preserving specialist result classes and statistical contracts. - Restricted automatic tree normalization to representation-only changes. It never invents roots or branch lengths, jitters zero branches, resolves a biological polytomy, ultrametricizes a tree, or silently removes tips. - Added consistent per-trait status, message, and note output for non-finite, insufficient, single-state, constant, and undefined traits. - Added a shared tree-requirement registry, actionable method-specific errors, direct ACE topology/branch guards, root-sensitivity fixtures, and explicit zero-terminal/zero-internal branch contracts. - Added controlled K permutation and D random/Brownian null fixtures, lambda fixed/optimized pruning tests, unified-versus-specialist equivalence tests, large-offset stability tests, and deterministic raw/prepared comparisons. - Clarified that fast_delta() implements a single-tree statistic with local ACE and RNG paths. Cross-language parity and the multiple-tree extension are outside the package contract. - Replaced the large-tree NA-subset cache key with the packed mask key, so 3000/5000-tip analyses no longer hit R's 10,000-byte environment-name limit. - Set Delta defaults to mcmc_sim = 10000, thin = 10, and burn = 100. Added one aggregated retained-sample warning and one aggregated ESS/R-hat/ MCSE warning per batch; warnings do not rerun or lengthen chains. - Reused permutation-invariant ACE workspaces inside Delta and skipped unused post-fit Hessian/SE work only in the private Delta ancestral-state helper. Public fast_ace() still computes and returns standard errors. - Removed generated build artifacts and obsolete development-only benchmark records from the working tree; retained only concise release and reference notes needed to explain the current package contract. - Final release-contract patch: ambiguous simultaneous x/X inputs now fail for D and Delta, ACE rejects invalid method values clearly, and unused Delta nsim input is ignored when test = FALSE. Prepared-tree fingerprint validation now also covers Nnode; targeted regressions and the full local check were rerun without changing numerical kernels. Changes in version 0.0.4 - Added check_tree() for read-only, method-specific readiness checks for K, lambda, D, and Delta. Diagnostics distinguish global tree defects from the topology and branch-length contracts of individual statistics. - Added conservative resolve_tree(). It standardizes edge order and internal node numbering, rechecks the result, records provenance, and refuses unsafe repairs such as random polytomy resolution, branch jitter, or tip deletion. - Added method-level progress messages and stable elapsed-time metadata to fast_signal(), fast_d(), fast_delta(), and fast_ace(). - Added explicit R-boundary topology guards for D and ACE. D now rejects unary nodes or noncanonical roots instead of silently discarding a branch; ACE now rejects mixed unary/polytomous topologies that previously could pass a node- count-only check. - Added boundary and numerical-contract tests for ACE transition evaluation; production tolerances and public results remain unchanged. Changes in version 0.0.3 - Made the validated tree-pruning implementations the automatic production paths for Blomberg's K and Pagel's lambda. Public callers no longer select dense, tree, spectral, or validation engines. - Added streaming, chunked K randomization with Monte Carlo uncertainty and optional null retention, without allocating a full tip-by-simulation matrix. - Added a tree-linear fixed-lambda likelihood and a batched C++ Brent optimizer returning lambda, log-likelihood, GLS mean, sigma2, LR, P, and optional likelihood profiles without production VCV/eigendecomposition work. - Added explicit Monte Carlo uncertainty and successful/failed simulation counts for both Fritz-Purvis D null hypotheses. - Retained Delta ESS, split R-hat, MCSE, iteration, and permutation diagnostics. - Profiled ACE and Delta before optimization. ACE branch-transition arithmetic and repeated Delta permutation calculations are the demonstrated hotspots; small PSOCK workloads can be slower than serial execution. - Added production and component benchmarks plus expanded deterministic, stochastic, boundary, offset, topology, and cache regression tests. Changes in version 0.0.2 Tree preparation and cache - prepare_tree() now compiles O(n) topology and traversal data eagerly while creating VCV, Cholesky, and lambda spectral payloads only on demand. - Added separate structural and numerical caches, a byte-budget numerical LRU, packed C++ grouping of trait-wise missing-data masks, and cache_info(). - D, Delta, ACE, and tree-engine K workflows no longer request dense VCV data. Continuous signal - Kept dense/Cholesky K as the default compatibility engine. - Added opt-in engine = "tree" for O(n p) observed Blomberg K and engine = "validate" for explicit tree-versus-dense comparisons. - Lambda remains on the validated spectral engine with a dense numerical fallback; no unvalidated tree-lambda implementation is exposed. D and Delta - Added bounded, fused D null simulation and traversal with configurable chunk_size and keep_null. - Added Delta chain means/SDs, ESS, split R-hat, covariance-aware MCSE for Delta, permutation P MCSE, successful-count reporting, and safe RNG metadata. Validation and documentation - Added deterministic golden contracts, compiled-tree, packed-mask, streaming, tree-K, cache, and Delta-diagnostic tests. - Added a unified environment-controlled benchmark matrix and rewrote the user and expert documentation around explicit compatibility boundaries.