test(jmle): require Rust-owned optimizer control - #717
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 Exact bounded implementation handoff for Draft #717 / issue #626. Before any write, refetch source head Exact CI run Implement the minimum GREEN only:
Do not widen into MMLE, new estimator names, model redesign, dependencies/workflows/version/release, hosted state or competing canonical documentation. Cross-cutting Architecture/TRD/ADR/UML/ERD/traceability belongs only in #604/#621 after the implementation stabilizes. |
|
@opencode-agent address Fresh replacement implementation lease for Draft #717 / issue #626 after protected-main movement invalidated the prior exact-base handoff. Immediately before writing, refetch source head, live Implement only the bounded JMLE Rust-optimizer ownership slice already defined by #626/#717: Rust owns Adam moments/bias correction/clipping/update, L-BFGS history/two-loop recursion/curvature/Armijo-backtracking, and Preserve public optimizer identities, current model-specific active blocks, deterministic seed/restart semantics, objective/gradient estimand, trace/status behavior and restart selection unless a separate test-first scientific defect proves a change. Add direct Rust↔public parity plus realistic aligned bias/MAE/RMSE/convergence evidence for all three optimizer modes. Ground doctoring in the actual primary Adam/L-BFGS/Armijo sources with APA 7 links/scope, add authoritative changelog material only after GREEN, then run focused ownership/recovery and full Python 3.12/3.14, Rust/PyO3, package/reinstall, existing GPU/fuzz, Security/SAST, coverage/docstring and current-head review gates on one unchanged head. Do not widen into MMLE, new estimator names, model redesign, dependencies/workflows/version/release, hosted state, or canonical #604 docs. Stop writing if source/base/lease state moves. |
|
@opencode-agent address Fresh current-main replacement/reconciliation implementation lease for Draft #717 / issue #626. Immediately before any write, refetch exact source head Fresh compare is Because this test-only branch is now 42 protected-main commits behind, first reconcile current main non-destructively. If normal reconciliation would make the one-test lineage unnecessarily conflict-prone, create exactly one clean-lineage replacement from current protected main, carry the exact fail-first ownership test and RED lineage, make it the sole #626 implementation line, then close #717 with precise supersession lineage. Never keep two optimizer writers active. Implement only the bounded JMLE Rust-optimizer ownership slice:
Stop writing immediately if source/base/lease state moves. |
|
Superseded by clean-lineage Draft #738. Fresh verification shows #717 is still open on exact head |
Production numerical-ownership gap
Advances the remaining JMLE portion of #626. Protected
maind2301dccb7d39a794d08cc96ea8c858b9ff49125still executes Adam state updates, L-BFGS two-loop recursion/backtracking, convergence control and optimizer-phase sequencing inpython/fast_mlsirm/fit.py::_run_single_fit,_adam,_lbfgs, and_lbfgs_direction. The objective/gradient may be Rust-backed, but the optimizer itself remains a second Python production numerical owner.Intentional fail-first boundary
Exact test-only head:
638632cfc01f839367d875bb98be7585e5e09442, directly based on current protectedmain.tests/test_jmle_rust_optimizer_ownership.pyexercises the installed public JMLE path for all three advertised optimizer modes (adam,lbfgs,adam_lbfgs) withbackend="rust", replaces the legacy Python Adam and L-BFGS loops with fail-fast sentinels, and requires a successful Rust-backed fit without either Python optimizer being called.Current production behavior is expected to fail at the intended optimizer boundary because
_run_single_fitdirectly invokes_adamand/or_lbfgs. Setup/import/fixture/changelog failure is not valid RED; CI must build the Rust/PyO3 extension and reach these runtime assertions.Minimum GREEN after exact RED proof
mlsirm-core: Adam moments/bias correction, gradient clipping, L-BFGS history/two-loop recursion, Armijo/backtracking, phase sequencing and restart ranking where they affect the fitted result.Do not widen this first ownership slice into MMLE (already separately fail-closed), new estimator identities, model redesign, dependencies/workflows, package version/release or hosted persistence. Keep Draft until RED→GREEN history and exact-head gates are complete.