fix(fitstats): fail closed for S-X2 and person fit - #771
Conversation
|
Warning Review limit reached
Next review available in: 50 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@opencode-agent address Bounded single-writer handoff for Draft #771. Immediately before writing, refetch exact source head Preserve the intentional fail-first commit. Run the focused ownership tests first and confirm the RED is at the forbidden Python numerical boundaries, not setup. Then implement the smallest GREEN in
After GREEN, run focused + full applicable Python/Rust/PyO3/package/security/SAST/fuzz gates on one unchanged head and update the PR with exact evidence. Keep Draft while any gate is non-passing. Do not change unrelated fit statistics, dependencies, workflows, credentials, version/release state, GPU behavior, or canonical architecture authority. |
Require compiled Rust entrypoints for public s_x2 and person_fit, always dispatch trait prior_mean through native S-X2, and remove Python/NumPy numerical fallbacks so missing cores cannot silently change results.
2993ea4 to
009a09c
Compare
#771 already fails closed for public S-X2 and person-fit; keep the cov-C NumPy-fallback suite aligned so product CI does not re-execute removed reference bodies.
* fix(fitstats): fail closed for M2 and infit/outfit ownership Require compiled m2_stat and infit_outfit_stat for ordinary public calls, retarget NumPy-fallback coverage, and sync documentation maturity vocabulary plus shipped capability rows for parallel bounds and dark-mode accents. * docs: scope protected rotation status evidence * test(fitstats): retarget S-X2/person-fit cov fallbacks fail-closed #771 already fails closed for public S-X2 and person-fit; keep the cov-C NumPy-fallback suite aligned so product CI does not re-execute removed reference bodies. * fix(multilevel): reject hostile numeric conversion hooks (#790) Fail closed on float subclasses for membership weights and AR(1) coefficients so hostile __float__ callbacks cannot leak into contract errors. Stacked on fitstats/docs fail-closed base for product CI.
* fix(fitstats): fail closed for M2 and infit/outfit ownership Require compiled m2_stat and infit_outfit_stat for ordinary public calls, retarget NumPy-fallback coverage, and sync documentation maturity vocabulary plus shipped capability rows for parallel bounds and dark-mode accents. * fix(automation): retire competing hourly review-repair caller Remove the repository-local scheduled caller that lacks startup acceptance and conflicts with organization single-writer continuous-execution governance (ADR-0013). * docs: scope protected rotation status evidence * test(fitstats): retarget S-X2/person-fit cov fallbacks fail-closed #771 already fails closed for public S-X2 and person-fit; keep the cov-C NumPy-fallback suite aligned so product CI does not re-execute removed reference bodies. --------- Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
Buyer-visible numerical-ownership defect
Issue #627 requires ordinary public fit-statistics results to have one Rust/PyO3 numerical owner. Protected
mainpreviously lets_x2()andperson_fit()drop into substantial Python/NumPy numerical implementations when the compiled core or required entrypoint was absent;s_x2()additionally bypassed its existing Rust entrypoint wheneverprior_meanwas supplied even though the native API accepts the prior vector.GREEN contract
s_x2()/person_fit()requires_x2_stat/person_fit_statand fail closed withRuntimeError("fit statistics require the compiled Rust core")when the core is missing or incomplete.prior_meanfor S-X² is validated and transported to natives_x2_stat(no Python_icc_gridfallback)._s_x2_python_reference/_person_fit_python_referencefor parity/tests only.Evidence
pytest tests/test_fitstats_rust_ownership_failclosed.py tests/test_fitstats_rust_required.py tests/test_fitstats.py→ 32 passed (Python 3.14)docs/changelog.d/771-fitstats-sx2-person-rust-required.mdrendered into UnreleasedProduct gates
Merge when python (aggregate + 3.12/3.14) + rust + package + fuzz are green.