Repository navigation
fix(fitstats): seal S-X² scalar control admission - #1029
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change adds callback-free S-X² control validation. It accepts exact built-in and concrete NumPy scalars, rejects caller-defined numeric subclasses, preserves supported domains, and rejects values that cannot be represented exactly as ChangesS-X² control safety
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to The change tightens S-X² scalar validation to prevent callback execution and lossy numeric conversion while leaving statistical calculations unchanged; no actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Linked Issues checkExplanation The changes satisfy the coding objectives in issues Full details: Docstring CoverageExplanation Docstring coverage is 94.44% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 18 functions across 3 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
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 review Re-dispatch unchanged exact head |
|
@opencode-agent review Please review exact current head |
|
Current required-check review for head |
|
Direct failed-job rerun was attempted for run |
|
Current-head Checks review for 7a36b0d: Strix is the only terminal failure. The hosted failed run 32300267347 returns HTTP 404 because central workflow 303795245 is unavailable through the repository API; source-facing checks remain green. Retry requires the hosted workflow route to return, so no source change or gate weakening is justified. Please reacquire review evidence against this exact head. @opencode-agent review @cwl-noema-review review |
|
Strix RCA correction: exact current HEAD is 7a36b0d. The failed attempt stopped during trusted target visibility lookup because the GitHub App installation hit API rate limit HTTP 403. No source finding was emitted. This is GitHub provider infrastructure; failed jobs were rerun against this exact HEAD. |
|
@opencode-agent @cwl-noema-review Re-review the exact current head Current CI, Security Scan, SAST Semgrep, and CodeQL evidence for this SHA is terminal-success. Review only this SHA and publish fresh independent approval evidence; do not reuse prior-head reviews. Protected merge policy remains unchanged. |
|
Please re-review this exact current head only: |
|
@opencode-agent Please perform a review-only formal review of exact current PR head |
|
Current-head review fix pushed at 91b9d3d. The shared S-X2 control admission now maps an overflowing exact built-in integer to the documented ValueError contract instead of leaking OverflowError. Focused validation passed: 7 S-X2 callback/control tests, interrogate 100 percent, compileall, and diff check. The only local Ruff findings are the existing dynamic-import E402 baseline in package init.py; the changed helper and regression test pass Ruff. Please rerun current-head OpenCode/Noema and protected checks. No further source change is actionable; normal merge remains subject to independent formal approval. |
|
Caution Review failedAn error occurred during the review process. Please try again later. 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 |
1 similar comment
|
Caution Review failedAn error occurred during the review process. Please try again later. 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 |
|
Scheduled review-feedback autofix for this PR head.
|
# Conflicts: # python/fast_mlsirm/__init__.py
|
@coderabbitai review |
✅ Action performedReview finished.
|
Pin the baseline to protected main@9c12eab1 (v0.9.0). The open-PR queue collapsed from 74 to 6 since the previous snapshot; replace the stale PR table with the current six lanes (#1363, #1345, #1279, #1029, #1005, #998) including their merge-forward state. Update gap-matrix evidence columns for landed work: automatic Rust backend (#951/#1070), crossed multiple-membership (#1014), the Figma design-boundary ADR now at docs/adr/0016 via merged #1130, and cross-engine conformance (#1082) after #1077 closed as completed. No production code, formula, estimator, or release surface changed.
Closes #1028.
Closes #1308.
Closes #1365.
Defects
The public S-X² control boundary had three compatible trust-boundary defects:
int/floatsubclasses could execute conversion callbacks before Rust fit-statistic dispatch;2**53 + 1); andnp.longdoubleis wider than binary64, an exact finite long-double control could likewise be silently rounded before the Rustf64boundary.RED → GREEN
Callback-free scalar admission — #1028
f981d5561bc97d2357bef4ce48483546efeef651: hostile integer/floating subclasses fail with package-ownedValueErrorand zero caller callbacks acrossq_theta,q_xi,min_expected,fdr_q, andmin_effect.0ded85f7156dc6cb0f1fe84d625bf380331747c5: exact built-in/concrete-NumPy scalar admission with the existing quadrature and numeric domains.0b078963e70673f459a9aac0cf26552c2cc745c0/52763f55fa0b767b355ac3fe236156e4605ea310; NumPy-integer compatibility7a36b0d76dc84f825931c145ef56188d979006d2.Lossless integer-valued real controls — #1308
50c9d185e7dcf003692f131992b041d8e487bea2: built-in2**53 + 1and concretenp.uint64(2**53 + 1)cannot survive a value-changing binary64 conversion.1baa218a7ea7e7c5295d3f7f2efe093db31aaadd: integer-valued real controls convert only when binary64 round-trips to the exact admitted integer; overflow retains the stable finite-number failure.Lossless extended-precision real controls — #1365
8f59a28919dc13432f80ce09c575ea9cd0945fa0: where the platform exposes widernp.longdouble, a finite value immediately adjacent to1.0must not be silently rounded to binary64; an exactly representable long-double remains supported.6720e6ffbacf60c3d29bcffbbe149a39033307d3: every trusted NumPy floating control converts to built-in float only when converting back to its exact NumPy scalar type preserves the admitted value; non-finite/overflow behavior remains fail-closed.2f4a4e0306b01a6de0eeca030e15a510b06012e1records integer and floating-point losslessness at the Rustf64boundary.Ownership boundary
Python validation/marshalling only. S-X²/G² statistics, Orlando–Thissen/Lord–Wingersky quadrature/fit-statistic arithmetic, BH/FDR decisions, effect-size calculations, likelihoods, and every production numerical result remain unchanged and Rust-owned.
Verification boundary
Protected base at the immediately preceding fresh refetch is
main@9c12eab15fb8a187b135f9be1961f0693a431c23. Exact current source/evidence head immediately before this lifecycle write is2f4a4e0306b01a6de0eeca030e15a510b06012e1, open, non-Draft and unmerged. PR #1029 remains the only active S-X² control writer; predecessor-head checks/reviews do not transfer.Every applicable exact-current-head CI/security/coverage/package/fuzz/SBOM/provenance/dependency context plus the active ruleset's independent approvals, last-push approval, and resolved required conversations must be complete before merge. No self-approval, gate weakening, force update, or cross-repository mutation is used.
Summary by CodeRabbit
Bug Fixes
float64representation.Tests
Documentation