Changes in version 0.6.31 o `multiScale_optim()` no longer queries system RAM on every call. The `next_run` recommendation previously invoked `estimate_multiscale_ram()` at the end of each fit, which shelled out to an external process (PowerShell on Windows) and rebuilt the optimization context; under load this could make `multiScale_optim()` appear to hang after the optimization had finished. The parallel worker-count suggestion is now obtained only on demand by calling `estimate_multiscale_ram()` directly. `next_run$n_cores` is now `NULL`. `estimate_multiscale_ram()`'s own RAM query is also bounded by a 5-second timeout so it degrades to `NA` instead of blocking. o `kernel_prep()` now precomputes distance-binned summaries of kernel-weighted covariates (`bin = TRUE`, `nbins = 256` by default). `multiScale_optim()`, `profile_sigma()`, and the screened-start path evaluate kernel covariates from these summaries in O(nbins) per point instead of iterating every buffer cell on each optimizer evaluation. The per-evaluation cost becomes independent of `max_D`, making optimization roughly 10-80x faster in benchmarks (the speedup grows with the number of points and the buffer size), while recovering sigma to within ~1e-5 (relative) of the exact per-cell result. Set `bin = FALSE` to force the exact path. o Added a "lean" storage mode (`kernel_prep(store_cell_data = FALSE)`) that drops the per-cell `d_list`/`raw_cov` data when every covariate is kernel-type, retaining only the binned summaries. This reduces the `multiScaleR_data` memory footprint by roughly 30-40x in benchmarks and is sufficient to optimize, profile, and refit. Cell-level data are retained automatically when landscape-metric covariates are present. o `estimate_multiscale_ram()` and `print.multiScaleR_data()` now report binned summary sizes and handle lean inputs. o `kernel_prep()` now stores each point's extracted cell values as a dense or sparse matrix, whichever is smaller (continuous and categorical layers store dense; low-prevalence binary layers stay sparse), so `raw_cov` memory is never worse than before and is ~1.5x smaller for continuous rasters. `scale_type()` evaluates dense values in vectorized R, matching the compiled sparse path to machine precision while avoiding per-cell sparse random access; this speeds up the exact (`bin = FALSE`) per-cell weighting and removes the repeated sparse-to-dense conversion in the landscape-metric path. (One-time `kernel_prep()` and landscape optimization wall-clock change little, as those are dominated by raster extraction and the C++ metric computation respectively.) o Landscape-metric optimization is ~3.4-4.2x faster: the source raster's categorical encoding is validated once in `kernel_prep()` instead of being re-scanned (with a per-call `unique()` class detection) on every optimizer evaluation. Optimized radii are unchanged. Direct calls to the landscape metric helpers still validate by default. o Hardware detection (physical/logical cores and total system RAM) is now memoized, so `multiScale_optim()` no longer spawns a PowerShell process to query RAM on every call when populating its parallel-worker recommendation. Changes in version 0.6.30 o Added `estimate_multiscale_ram()` to report `kernel_prep()` memory use, conservative parallel RAM budgets, and recommended worker counts based on available RAM and physical CPU cores while reserving two cores o Added a preflight warning in `multiScale_optim()` when requested parallel workers exceed the RAM-based budget estimated for the current `kernel_prep()` payload Changes in version 0.6.29 o Added aggregation index (`ai`) as a supported `landscape_var()` metric, including fixed-buffer, optimized-radius, and FFT raster projection paths with accuracy checks against `landscapemetrics` o Hardened `summary.multiScaleR()` argument handling so optional arguments such as `prob` and `profile` are validated consistently o Clarified screened-start documentation for `n_cores` and Windows PSOCK behavior, and added real-worker regression coverage Changes in version 0.6.28 o Parallelized short screened-start optimization attempts in `multiScale_optim()` using the same `n_cores` allocation as the main optimization when `start_strategy = "screen"` o Added a serial fallback path if parallel screening fails, and added regression coverage for core allocation behavior in screening Changes in version 0.6.27 o Expanded the landscape metric vignette workflow with release-ready examples, including fixed-radius metric projection guidance o Added optional parallel covariate profiling in `profile_sigma()` via `n_cores` and documented practical core-selection guidance in vignettes o Added regression coverage for standalone fixed-radius landscape metric projection and serial-versus-parallel sigma profile parity Changes in version 0.6.26 o Refined optimization diagnostics and next-run restart messaging in `multiScale_optim()` documentation and tests o Updated vignette guidance for iterative optimization workflows Changes in version 0.6.25 o Added `next_run` recommendations to `multiScale_optim()` output with follow-up starting values and a diagnostic-informed `max_D` suggestion o Suppressed benign package attach warnings in marginal-effect and PSOCK helper fallback loads so local checks do not fail on R patch-version mismatches alone Changes in version 0.6.24 o Corrected `aic_tab()` roxygen registration so package checks generate the proper help alias and no longer warn about missing documentation entries Changes in version 0.6.23 o Added a regression test that asserts the package's expected public exports remain available in the installed namespace Changes in version 0.6.22 o Restored missing exports for model-selection and simulation helpers used in package vignettes, including `aic_tab()`, `bic_tab()`, `sim_rast()`, `sim_dat()`, and `sim_dat_unmarked()` Changes in version 0.6.21 o Added an opt-in screened start strategy for `multiScale_optim()` that scouts sigma values with log-spaced prescreening and short serial screening runs before a single full optimization Changes in version 0.6.20 o Hardened `plot_marginal_effects()` for wrapped/nested fitted models such as `amt::fit_clogit()`-style objects o Added regression coverage for marginal effect plots built from nested `clogit` analysis models Changes in version 0.6.19 o Counted one optimized parameter per fitted `sigma`/shape term in `aic_tab()`, `bic_tab()`, and `profile_sigma()` AICc calculations o Rejected AIC/BIC comparisons when models use different observation sets, even if the sample sizes match o Propagated `.libPaths()` and `R_LIBS*` settings to PSOCK workers for more reliable project-local parallel optimization on Windows o Added an `opt_distance` summary alias alongside the existing `opt_dist` Changes in version 0.6.18 o Reconciled the merged landscape metric branch with a projection fix for fitted models that use only a subset of cached raster covariates o Added regression coverage for `kernel_scale.raster()` when stored `scale_vars` include unused source layers Changes in version 0.6.17 o Added a landscape metric covariates vignette demonstrating explicit `msr_vars()` specifications with 100 spatial sample points o Linked the quick-start guide to the landscape metric covariate workflow Changes in version 0.6.16 o Added `msr_vars()`, `kernel_var()`, and `landscape_var()` specifications for explicit derived raster covariates o Allowed multiple covariate transformations, such as kernel means and fixed landscape metrics, to be derived from the same source raster layer o Added exploratory raster projection support for specified landscape metric covariates Changes in version 0.6.15 o Added internal fixed-buffer SHDI helpers for exploratory landscape metric support o Added FFT-based SHDI raster projection prototype and reference tests o Added internal fixed-buffer and FFT projection prototypes for edge density o Expanded exploratory landscape metric helpers to composition/diversity, total edge, landscape shape, percentage-like-adjacency, and contagion metrics o Added compiled fixed-buffer metric primitives to improve repeated point-level landscape metric calculations o Added FFT raster projection support for exploratory landscape shape index calculations Changes in version 0.6.14 o Improved model-data, predictor, and log-likelihood handling for wrapped model objects o Added regression coverage for nested `clogit` wrappers in serial and PSOCK optimization o Avoided recoverable model-data warnings in marginal effect plots Changes in version 0.6.13 (2026-04-18) o Added a Windows R-devel compatibility shim for Rcpp header compilation Changes in version 0.6.12 o Forced C++17 compilation for compatibility with CRAN Windows R-devel checks Changes in version 0.6.11 o Fixed PSOCK optimization for unqualified model calls such as `glm.nb()` after `library(MASS)` Changes in version 0.6.10 o Preserved original sparse kernel dot-product behavior for complete raster layers o Preserved point row identities across `kernel_prep()` outputs used during optimization o Ensured PSOCK workers use the same multiScaleR code as the main R session o Fixed complete-case row alignment when fitted model frames retain original row names Changes in version 0.6.8 o Added linear and user-specified sigma grids to `profile_sigma()` Changes in version 0.6.7 o Fixed singular-Hessian fallback SE values to remain numeric o Excluded missing raster cells from sparse kernel weighted averages Changes in version 0.6.6 (2026-04-13) o Added an optional custom refit hook for model classes that cannot use default model updates o Improved internal model refitting and log-likelihood dispatch for broader model support Changes in version 0.6.5 o Added structured optimization diagnostics and a `diagnostics()` accessor o Fixed complete-case alignment in multiscale optimization inputs o Updated vignettes and restored `multiScale_optim()` export handling Changes in version 0.6.4 o Added sigma profiling and plot methods o Expanded plotting tests and updated vignettes o Streamlined GitHub Actions checks on direct pushes Changes in version 0.6.3 o Made profile-likelihood CIs optional in `summary` o Updated vignettes and compressed example data Changes in version 0.6.2 o Expanded test coverage o Improved error messaging Changes in version 0.6.1 o Fixed test error Changes in version 0.6.0 o Added unit testing Changes in version 0.5.0 (2026-03-26) o Updated handling of edge and NA values in `kernel_scale.raster` o Updated `kernel_scale.raster` to create 'dummy' layers for site effect variables o Added vignette on spatial projections o Submitted to CRAN Changes in version 0.4.6 o Updated handling of mixed effects models o Updated error handling Changes in version 0.4.5 (2025-09-02) o Added `verbose` argument to functions to optionally supress console printing o Made updates for CRAN checks Changes in version 0.4.4 o Updated `kernel_scale.raster` documentation and clamping defaults Changes in version 0.4.3 o Updated handling of zero-infalted models in `plot_marginal_effects` Changes in version 0.4.2 o Update dependencies to pass CRAN checks o Added hex sticker o Added `rhub.yaml` o Updated to pass CRAN checks Changes in version 0.4.1-2 o Updated vignette to demonstrate fitting of zero-inflated model Changes in version 0.4.1-1 o Updated `aic_tab` and `bic_tab` to properly check model types. o Fixed bug in `kernel_scale.raster` Changes in version 0.4.1-0 o Updated calculation of cumulative distance o Added marginal effects plot function `plot_marginal_effect` o Updated `kernel_scale.raster` Changes in version 0.4.0-1 o Updated `sim_rast` for efficiency. Uses custom fft Changes in version 0.4.0-0 o Incorporated scaling & centering `kernel_scale.raster` o `scale_opt` is now deprecated in `kernel_scale.raster`; replaced with `multiScaleR` argument. o Updated package data file structure o Passes CRAN checks Changes in version 0.3.1-4 o Updates to better generalize across model classes Changes in version 0.3.1-3 o Updated parallel processing handling to generalize use across model classes Changes in version 0.3.1-2 o Updated default `pct_wt` from 0.95 to 0.975 when smoothing raster layers o Fixed kernel_scale.raster error handling Changes in version 0.3.1-1 o Fixed bug in raster smoothing o Added na.rm argument Changes in version 0.3.1-0 o Implemented fft smoothing of rasters o Removed NLMR and RandomFields dependencies Changes in version 0.3.0-5 o Fixed bug causing optimization failure if only a single spatial covariate was used. Changes in version 0.3.0-4 o Updated documentation and created a PSOCK variable to force PSOCK cluster when using unix Changes in version 0.3.0-3 o Updated variable checks of `multiScale_optim` o Removed use of `method` and `opt_parallel` variables. Method is always 'L-BFGS-B` and if cores > 1 is specified, parallelization is implicit. Changes in version 0.3.0-2 o Uses sparse matrices for reduced memory demands Changes in version 0.3.0-1 o Updated kernel density functions to c++ for speed Changes in version 0.2.0-8 o Updated parallelization to use forking when operating on a Unix OS o Updated DESCRIPTION file to reflect necessary dependencies Changes in version 0.2.0-7 o Updated simulation function to create repeat sampling data o Updated vignette to demonstrate use of `multiScaleR` with `unmarked`. Changes in version 0.2.0-6 o Bug fixes o Added 'join_by' command when optimizing `unmarked` models with stacked data formats Changes in version 0.2.0-3 o Updated error handling across core functions Changes in version 0.2.0-2 o Fixed bug preventing optimization using unmarked models Changes in version 0.2.0-1 o Modified formatting of vignette document Changes in version 0.2.0 o Modified `multiScaleR_optim` to reduce size of final optimized object. o Completed vignette: use 'build_vignettes = TRUE' when installing o Updated code to accomodate lme4 and other model classes supported by `insight` package. Changes in version 0.1.5 o Updated plot function to show 95% confidence interval of scale of effect distance o Updated summary function to report mean and 95% scale of effect distance o Updated example data included with package to demonstrate more extensive use of package o Future addition -- A vignette demonstrating the use of the package Changes in version 0.1.4 o Cleaned code o Added documentation and examples to `multiScale_optim` Changes in version 0.1.3 o Corrected issue with distance weighting function o Updated how parameters are scaled Changes in version 0.1.2 o Fixed bug in optimization function Changes in version 0.1.1 o Fixed trap that was causing optimization with 'fixed' and 'expow' to fail o Updated plot and kernel_dist functions Changes in version 0.1.0 o Initial commit. Bugs and issues present, needed for class