NEWS


grassr 0.6.2

CRAN resubmission release. No changes to package functionality.

CRAN check surface reduced

The 0.6.1 incoming pretest failed on CRAN's Windows R-devel machine with silent process deaths in the test and vignette-rebuild steps (no diagnostics in either log; the same tarball checks clean on the same R revision -- 2026-07-03 r90206 ucrt -- on independent Windows infrastructure, and on the Debian pretest). 0.6.2 minimizes what CRAN machines execute, which is recommended practice regardless:

grassr 0.6.1

CRAN resubmission release. No functional changes.

Package renamed: grass -> grassr

CRAN declined to release the archived name 'GRASS' (package names are persistent, case-insensitively). The package is now 'grassr'. All function names, arguments, and behavior are unchanged -- the API keeps the grass_* prefix, matching the GRASS framework the package implements.

Bundled reference surfaces rounded to 5 decimals

The reference surfaces in R/sysdata.rda are now stored at 5-decimal precision (previously full 64-bit doubles), shrinking the file from 9.55 MB to 2.83 MB and the tarball to under 5 MB. The discarded digits are Monte Carlo noise: the surfaces' simulation error is on the order of 1e-2, three orders of magnitude above the rounding. No lookup, threshold, test, or reported number changes at reported precision. The full-precision surfaces and the rounding script are archived in data-raw/.

grassr 0.6.0

First CRAN release. Two behavioral changes and a legacy-API removal, plus CRAN compliance fixes.

Behavioral change — Krippendorff's alpha removed from the Report Card panel and delta-hat

In the binary fully-crossed designs this package targets, Krippendorff's alpha coincides with Fleiss' kappa asymptotically (median absolute difference 0.00024 across the 10,140-cell calibration grid; the asymptotic argument is in the accompanying paper's Appendix A.2). The alpha row added no information to the Report Card and its small-sample deviation from Fleiss' kappa could tip borderline delta-hat readings across a calibrated threshold on noise alone. As of 0.6.0:

Legacy API removed

The pre-0.2.0 grass_result object and its consumers were deprecated at 0.2.0 and have been unreachable from the public API since then (no exported constructor produced a grass_result). Removed: grass_format_report(), grass_methods(), grass_report_by(), print.grass_result(), summary.grass_result(), tidy.grass_result(), as.data.frame.grass_result(). The modern equivalents are print(grass_report(Y)), summary(), as.data.frame(), and the Methods-paragraph templates in the reporting-card vignette.

CRAN compliance

grassr 0.5.2

Bug-fix and sysdata-correction release. The v0.5.0 / v0.5.1 bundled empirical_q_hat_surface had a build-time mislabeling bug at k = 2 that paired empirical q-hat distributions with the wrong scenarios for roughly half of all k = 2 sysdata cells; a corrected k = 2 sub-grid plus a high-q augmentation are bundled here. Internal logic is unchanged; the 0 FAIL test posture is preserved and 12 new regression-anchor tests pin known design points.

Behavioral change (BUG FIX) — k = 2 surface percentile lookup corrected

Robustness checks — high-q surface coverage

Three targeted sub-sims added at v0.5.2 verify the surface lookup behaves as designed at high-quality boundary cells where per-cohort empirical distributions are tightest and grid coverage matters most. These are robustness checks of the framework's reach into the high-q corners of the design space, not bug fixes.

Net q-grids after all v0.5.2 augmentations:

The augmentation sims use a per-scenario rds layout (kill-safe, resume-safe) and skip glmer (the bundled surface uses only logit_mixed_icc_oracle, not the glmer-fitted ICC; glmer was the slow path that initially stalled the k = 25 run before being disabled).

Why three sub-sims rather than one denser grid up front? Each boundary gap surfaced through diagnostic work on a specific paper anchor (post-hoc figure A at k = 2; tab:card_summary row 6 at k = 25). We added grid points where the diagnostics surfaced gaps, keeping the augmentation tight to the actual coverage need rather than running an order-of-magnitude denser global grid. The structural fix — bilinear interpolation across two adjacent q_true cohorts in lookup_empirical_q_hat() — is designed in grass/design/v0.5.3_lookup_interpolation.md and queued for the next minor release; it would resolve the boundary-snap pathology without requiring ever-denser grids, but the augmentations bring the v0.5.2 surface to a defensible coverage level for the paper's specific anchor cells.

Defensive guards in sysdata builders

New regression tests

Sysdata size and shape

Report Card render fixes (R/format.R)

Two render-layer changes surfaced by the 2026-05-11 paper-vs-code audit. Neither changes computation; both affect what print(grass_report(Y)) shows on screen.

What did NOT change

grassr 0.5.1

Cosmetic and documentation release. No internal-logic, sysdata, or test changes; the 0 FAIL across 194 test files posture from v0.5.0 is unchanged.

Behavioral change

Vignette

Documentation

grassr 0.5.0

Three substantive landings drive this release. (1) Cross-coefficient divergence delta_hat is now computed over the agreement family only (PABAK, mean AC1, Fleiss kappa, Krippendorff alpha). Each has a closed-form reference depending on (q, pi_+) only, so the cross-family spread is DGP-robust at the panel level. ICC remains on the Report Card panel rows but does NOT enter delta_hat: ICC's reference surface depends on the full F-shape variance structure rather than (q, pi_+), and a panel whose true F does not match the bundled logit-normal reference can drift by ~20 pp at small designs. An earlier delta_hat scope including ICC produced ~80% FPR at the diagonal null under matched DGPs and was abandoned in favor of the agreement-family-only construction adopted here (see § "Behavioral change" below; paper §3 ICC scope and Appendix E for the full quantitative case). (2) The bundled fitted_icc_reference_curves sysdata object is rebuilt from a unified Julia MixedModels.jl simulation extending coverage to k in {3, 5, 8, 15, 25} x N in {30, 50, 75, 100, 200, 300, 500, 1000} on a 14-point q-grid spanning [0.35, 0.99]. Across 1,000 random common-applied-design panels the ICC clamp rate is 7.7% (residual clamping concentrated at small N: 14.3% at N=30; or small k: 16.3% at k=3). (3) The delta_thresholds_lookup table is freshly derived under the agreement-family delta_hat definition (4-coefficient max-min) for size-alpha calibration.

Behavioral change

New

Coverage extension

grassr 0.1.2

Round 5 — spec-dispatch architecture + reviewer 5/5 items.

Architecture

New features

Breaking / estimand changes


grassr 0.1.1

Reviewer-driven polish (round 4).

New in 0.1.1 (round 4)

Breaking

New

Fixes

Still v0.1.0 entry-points

grass_compute(), grass_report(), grass_reference(), grass_reference_table(), grass_prevalence(), grass_format_report(), grass_plot().

grassr 0.1.0

Initial local draft.

Public API

Design

Notes for early readers