Changes in version 0.1.0 (2026-06-30) - Reduced default CRAN test time by skipping the full layout stress-test suite unless LVMPLOT_FULL_TESTS=1 is set. The default test suite now uses small toy data and keeps the long-running geometry pressure tests conditional. - Improved the Shiny editor export synchronization so downloads use the current browser layout, node labels, style controls, selected/locked nodes, and other live editor state rather than stale initial values. - Added draggable coefficient labels in the Shiny editor. Manual coefficient label positions are saved in State JSON, restored when the state is loaded, included in Figure R code through edge_style, and respected by SVG/PDF/PNG downloads. - Simplified the Shiny editor by removing the user-facing quality/score panel from the interactive UI while keeping programmatic diagnostics, layout quality functions, and publication bundle quality reports available. - Prepared the first CRAN submission metadata, including maintainer, citation, license holder, CRAN comments, and source-build exclusions. - Renamed the package to lvmPlot and updated package metadata, RStudio addins, documentation, citation text, tests, and evaluation artifacts. - Added a unified latent variable model graph workflow for lavaan-style SEM/CFA, multilevel SEM, growth, bifactor, IRT/MIRT, Rasch, latent class/profile, OpenMx, semPlot, and Mplus-style outputs. - Added model-aware default layouts that keep measurement items aligned on a common horizontal or vertical axis when possible. - Added automatic summaries for very wide single-factor item batteries so default diagrams keep a clean item layer and straight loading edges instead of forcing dozens of indicators into an unreadable fan; full diagrams remain available with diagram = "all". - Improved SEM defaults for latent-to-latent structural models: common sparse SEMs now use a shared measurement layer, large indicator blocks stay on a single valid axis, and dense latent SEMs compact to a labeled structural backbone in automatic diagrams while full diagrams remain available. - Improved rendered node geometry for long and dense item labels: grid output now wraps long node labels, abbreviates dense structured item names, uses compact boxes for short item labels, and sizes wide item-axis exports so the rendered figure does not overlap even when diagnostics are clean. - Improved IRT/MIRT defaults for dense and cross-loaded item axes. Automatic diagrams now summarize 20+ item axes to representative aligned item blocks, suppress coefficient labels on those summaries, and preserve full diagrams with diagram = "all". - Automatic diagrams now suppress covariance edges that are parallel to a directed path between the same two nodes, which keeps multilevel SEM path diagrams from drawing duplicate straight edges and overlapping parameter labels by default. - Improved multilevel SEM defaults for repeated same-name variables and cross-level feedback skeletons: latent nodes are spaced using rendered visual extents, measurement blocks keep aligned item axes with wider vertical gaps, and structural multilevel diagrams use a conservative two-dimensional local search to clear straight-edge node collisions without exploding edge length. - Added bounded dense-SEM repair heuristics for straight-edge diagrams, including rigid indicator-block repair and structural-only coordinate search to remove hard node and edge-node overlaps without letting coefficient labels drive node placement. - Added a dense-auto SEM fast path that skips unnecessary full measurement layout for automatic structural summaries and uses a planar straight-edge skeleton when the compact graph supports it. - Removed an unnecessary legacy SEM-layout pass from lavaan-style LVM adapters, making full dense SEM graph preparation substantially faster while preserving custom layout support. - Improved loading-label placement for dense bifactor and MIRT/MIRT-like fans so forced standardized labels stay clear of adjacent edges, traits, and items. - Reduced dense loading-fan label diagnostics runtime by using adaptive optimizer iterations while preserving zero label overlaps in the wide bifactor pressure case. - Added panel-aware longitudinal layouts for cross-lagged path models, with standard time layers, clear coefficient labels, and review-level scoring for unavoidable reciprocal cross-lag crossings. - Improved tricky LVM defaults for parallel-process growth, wide bifactor, wide LCA/profile summaries, and wide higher-order loading fans. - Added multigroup lavaan edge collapsing so automatic diagrams summarize repeated group-specific loadings and covariances instead of overplotting them. - Improved pure CFA and EFA defaults: automatic CFA diagrams now suppress latent covariance meshes unless requested, and EFA/psych loading objects default to primary-loading summaries while full cross-loading diagrams remain available. - Added geometry diagnostics for node overlaps, edge-node collisions, edge crossings, label-label collisions, label-node collisions, and label-edge collisions. - Added layout_quality() to summarize diagnostics as a publication-readiness score, grade, status, and issue table. - Added check_lvm_layout() as an assertion-style publication gate for R Markdown, CI, and manuscript scripts, and connected the same gates to export_lvm_bundle(check = TRUE). - Added select_lvm_layout() to score candidate orientation, layout, diagram, and routing settings and select the best publication-ready graph. - Added publication export helpers for RStudio plots, SVG, PDF, PNG, and TikZ. - Added export_lvm_bundle() to write manuscript-ready PDF/PNG/SVG/TikZ artifacts together with graph tables, diagnostics, quality reports, metadata, session information, and optional automatic layout-selection records. - Added built-in themes and lvm_style() controls for font sizes, node sizes, line widths, colors, and whole-figure scaling in both grid and TikZ output. - Added local competitor and model-family evaluation scripts used by the draft software article and supplement. - Added tools/stress-test-layouts.R to regenerate a multi-family pressure test gallery and diagnostics table for CFA, SEM, higher-order, bifactor, growth, LCA, MIRT, observed-outcome, and multilevel SEM diagrams, including separate default-clean and forced-standardized-label quality columns. - Added tools/stress-test-tricky-layouts.R for adversarial long-name CFA, dense covariance CFA, cross-lagged panel, parallel-process growth, wide bifactor, four-trait MIRT, wide LCA, higher-order, three-level multilevel SEM, and mixed observed/latent path diagrams. - Added tools/stress-test-fitted-models.R for real fitted objects: ordinal and multigroup lavaan CFA, observed lavaan CLPM, lavaan growth, semPlotModel, mclust LPA, mirt 2PL, eRm Rasch, OpenMx RAM, and psych::fa. - Added tools/stress-test-adversarial-layouts.R for hard geometry cases: long custom labels, 60-item single-factor batteries, ten-factor CFA, dense structural SEM, cross-loaded MIRT, dense LCA, forced full LCA, and multilevel SEM with repeated variable names. - Added tools/run-validation-suite.R to run the pressure, tricky, adversarial, and fitted stress suites and write a single validation summary/report with session and package-version metadata. - Added paper/reproduce-submission-bundle.R to orchestrate tests, galleries, validation, competitor audit, manuscript/supplement PDF builds, and optional R CMD check for submission-style reproduction. - Expanded the competitor audit with documentation-source and model-family coverage matrices for semPlot, lavaanPlot, tidySEM, semptools, lavaangui, qgraph, Onyx, and lvmPlot.