                 Changes in version 0.3.8 (2026-10-02)                  

Interface correction and printed results

  - Corrected the public ORCI() argument name from fomula to formula in
    the function, validation messages, help, examples, vignettes,
    README, and interface tests. Calls that supplied the former
    misspelling by name must use formula; positional calls are
    unchanged.
  - Custom print methods now introduce their results with a sentence,
    display their principal numeric or tabular component, and draw the
    stored user-facing plot or plots when present. The underlying plot
    objects and all statistical calculations are unchanged.

Data validation and standardization

  - Replaced repeated subject-level lookups with grouped visit counts,
    treatment flags, and stable survival ordering. Both validation
    passes and the existing public interfaces, data ordering, and audit
    attributes remain.
  - Documented all DataCheck() return fields and DataStandard()
    attributes, including the distinction between repairability and
    final analysis readiness. Corrected the data-workflow vignette's
    endpoint, row-removal, and metadata descriptions to match the
    existing implementation.
  - Added regression coverage for factor-covariate attrition and the
    final readiness check when deletion removes a treatment group.
  - Excluded the large-sample development script and saved test plot
    from source archives; these files remain in the working repository.

CRAN release preparation

  - Retained the 0.3.7 treatment-1 survival-favorable estimator and
    documented how to convert treatment coding and effect contrasts
    relative to Zhang et al. (2026). Added the methodological citation
    and an implementation guide. Outcome-noise sensitivity is explicitly
    distinguished from the paper's principal-ignorability sensitivity
    procedure.
  - Corrected the documented ORCI() argument spelling and QR return
    values without changing function signatures or numerical estimators.
  - Documented all bundled data columns and the existing print, plot,
    and subsetting methods.
  - Added reproducible seeds and explained demonstration-only bootstrap
    counts in the README and workflow vignettes; clarified the binary
    effect link and the interpretation of outcome-noise sensitivity
    analysis.
  - Declared the utility namespace import used for global-variable
    registration and excluded development reports, release artifacts,
    and the top-level sensitivity image from source builds.
  - Shortened the package title and made the software citation follow
    the package metadata.
  - Corrected vignette figure paths for the documentation website and
    supplied descriptive alternative text for workflow figures.

                       Changes in version 0.3.7.2                       

Live bootstrap progress

  - HTEAllT() and HTESepT() accept an optional progress_callback without
    changing their estimands, fitting logic, bootstrap acceptance rules,
    or returned numerical results.
  - The callback receives structured updates before model fitting, after
    the point estimate, after every bootstrap attempt, and at
    completion. Updates report successful replications, total and failed
    attempts, elapsed time, and the last worker-update time.
  - A callback error produces one warning and disables monitoring for
    that run; it does not interrupt or alter the scientific calculation.

                        Changes in version 0.3.7                        

Interfaces and example data

  - All ten Mapping() arguments are required and every package example
    now supplies the five structural column roles explicitly.
  - ORCI() now requires the treatment-group argument a; the obsolete
    treatment_group argument and its default were removed.
  - Tests and vignettes now use the current ImperfectConSample contract:
    noncanonical clinical column names, character visit months 0/6/12,
    preserved X1-X6 covariate names, and explicitly reported recoverable
    imperfections.

Model warnings and diagnostics

  - Logistic warnings are normalized so nonconvergence and separation
    are each reported once per fit instead of duplicating both glm() and
    package-level messages.
  - HTESepT(), HTEAllT(), and SA() consolidate repeated point-estimate
    nuisance warnings at the public analysis boundary. Bootstrap
    warnings remain silent during resampling and are aggregated in
    bootstrap_info.
  - Analysis-internal principal-score and outcome models are fitted once
    for each distinct data/formula combination and reused for the two
    counterfactual treatment predictions, eliminating identical
    duplicate fits without changing the prediction equations.
  - Returned model diagnostics identify the analysis, sample type,
    target time, treatment group, fitting rows and subjects, response
    counts, formula, predictors, rank status, finite-prediction status,
    convergence, and separation.

Return precision

  - Final user-facing predictions, estimates, diagnostics, confidence
    intervals, odds ratios, weighted summaries, and sensitivity tables
    are rounded to three decimal places.
  - Full precision is retained for analysis data, internal nuisance
    predictions, fitted models, probabilities, weights, score equations,
    optimization, bootstrap replicates, and confidence-interval
    calculations.
  - generate_data_example() performs its simulation at full precision
    and rounds only the final generated data frame.

Validation cleanup

  - Binary conversion and invalid-row detection now share one
    authoritative implementation.
  - Validation guaranteed by Mapping() is no longer repeated by
    DataCheck().
  - DataStandard() now consumes the authoritative initial DataCheck()
    result instead of repeating mapping, column, and nonempty-data
    checks.
  - Prepared-data helpers now reuse the validated mapping instead of
    retrieving and validating it multiple times in the same public call.

                        Changes in version 0.3.6                        

Estimation and bootstrap

  - SA() now supports continuous and binary outcomes. Continuous
    analyses retain the original additive-noise and closed-form
    equations; binary analyses use logistic outcome prediction and the
    bounded-link HTE estimating equation.
  - Subject-level bootstrap resampling still preserves complete panels
    and assigns a new bootstrap ID to every sampled cluster. Ordinary
    model warnings are now recorded without automatically rejecting
    otherwise finite, converged replicates.
  - Bootstrap diagnostics now categorize rejected replicates and retain
    warnings emitted by accepted or rejected attempts. The arbitrary
    coefficient-magnitude rejection threshold was removed.
  - Binary estimating equations use numerically stable logistic
    calculations and may accept a finite root reached at the iteration
    limit when its residual precision satisfies the requested tolerance.

Prediction and validation

  - OutPred() retains the original missing-outcome filtering, treatment
    and survival assignments, linear/logistic model choice, response
    prediction, and row-aligned numeric return value.
  - Separation, extreme fitted probabilities, rank-deficient nuisance
    fits, and ordinary fitting or prediction warnings are no longer
    fatal when finite predictions remain available. Genuinely non-finite
    or misaligned predictions and non-estimable HTE modifier systems
    remain errors.
  - Ill-conditioned but full-rank closed-form estimating systems now
    warn and are accepted only when solving produces finite
    coefficients.

Data, documentation, plots, and tests

  - Examples now use the package datasets BiSample and
    ImperfectConSample through standard data() loading. The redundant
    CSV-backed pd_example_data() helper was removed.
  - Pooled HTE and ORCI forest plots use stable, distinct variable
    colors with matching point, interval, and legend mappings.
  - Tests now cover binary and continuous sensitivity analysis, finite
    warning-tolerant nuisance prediction, successful built-in-data
    bootstrap estimation, categorized bootstrap diagnostics, and plot
    color mappings.

                        Changes in version 0.3.5                        

Model validation

  - Propensity-score, principal-score, outcome, odds-ratio,
    quantile-regression, HTE, and sensitivity-analysis fitting now use
    shared package-level preflight checks.
  - Missing formula variables, invalid model matrices, zero-variance
    predictors, rank deficiency, insufficient complete cases, nonvarying
    responses, separation, non-estimable coefficients, fitting warnings,
    convergence failures, and singular estimating systems now produce
    contextual PDRobust errors instead of leaking raw model-fitting
    conditions.

Tests

  - Added a deterministic, side-effect-free simulation helper adapted
    from the package's example-data generator. It creates continuous,
    binary, valid, and deliberately invalid test panels.
  - Expanded data workflow tests for validation contracts, supported and
    unsupported encodings, edge cases, immutability, reproducibility,
    audit attributes, attrition, and value idempotency.
  - Expanded prediction, analysis, profile, sensitivity, and diagnostic
    tests for boundary inputs, model-matrix validity, estimability,
    separation, convergence, reproducibility, and preservation of user
    data.

                        Changes in version 0.3.4                        

Diagnostics

  - PSDiag() now always truncates internally estimated propensity scores
    to [0.01, 0.99] before ordinary IPTW weights and weighted SMDs are
    calculated.
  - PrinSDiag() now applies the same fixed propensity-score truncation
    before evaluating the cutoff principal-score diagnostic equation.

Tests

  - Principal-score prediction fixtures now use a larger
    probabilistically generated panel with non-separated survival
    outcomes and a full-rank design matrix.
  - Tests explicitly verify principal-model rank, response variation,
    convergence, absence of fitting warnings, and fixed diagnostic
    propensity truncation.

Documentation

  - The README now demonstrates the complete public workflow and
    identifies the principal returned class and components of every
    exported function.
  - All vignettes were revised to document data preparation, independent
    prediction models, diagnostics, profiling, HTE estimation, and
    sensitivity analysis under the 0.3.4 interface.
