feat(multilevel): replay crossed multiple-membership estimator on current review workflow - #1014
Conversation
Add a Rust-owned MAP/Newton kernel for Fox & Glas mixed-effects IRT person effects with Browne MMMC crossed and weighted membership. The O(P*I) score reduction is CPU-multithreaded and optionally GPU-backed. Python only marshals a sealed design. Recovery is RMSE vs true u_h. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
The crossed u_h binding now uses PyValueError::new_err, and the APA 7th doctoring test accepts the wrapped Browne MMMC title. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
Warning Review limit reachedNext included review available in 27 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (18)
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 Reconcile this same current branch Resolve the nine shared paths by preserving both scientific slices:
Preserve all non-shared files from both branches. Do not modify formulas, tolerances, recovery thresholds, locks, workflows, aggregate After the merge, I will retarget #1014 to #1005's branch so #1005 lands first and #1014 shows only its unique crossed-estimator delta. |
|
@opencode-agent @cwl-noema-review Please independently review exact current head |
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head34697b6df58c1424654bc890571a3dfbe806fd97. -
Head SHA:
34697b6df58c1424654bc890571a3dfbe806fd97 -
Workflow run: 32213345436
-
Workflow attempt: 1
Coverage evidence
Coverage evidence job did not run or did not publish coverage evidence.
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (7 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (7 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Docs (8 files)"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs (8 files)"]
R2 --> V2["docs review"]
Evidence --> S3["Test (3 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test (3 files)"]
R3 --> V3["targeted test run"]
OpenCode Review Overview
Pull request overviewOpenCode cannot approve yet because required coverage evidence did not pass. Review outcome1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
Coverage evidenceCoverage evidence job did not run or did not publish coverage evidence. Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (7 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (7 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Docs (8 files)"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs (8 files)"]
R2 --> V2["docs review"]
Evidence --> S3["Test (3 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test (3 files)"]
R3 --> V3["targeted test run"]
|
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head34697b6df58c1424654bc890571a3dfbe806fd97. -
Head SHA:
34697b6df58c1424654bc890571a3dfbe806fd97 -
Workflow run: 32217721862
-
Workflow attempt: 1
Coverage evidence
Coverage evidence job did not run or did not publish coverage evidence.
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (7 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (7 files)"]
R1 --> V1["required checks"]
Evidence --> S2["Docs (8 files)"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs (8 files)"]
R2 --> V2["docs review"]
Evidence --> S3["Test (3 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test (3 files)"]
R3 --> V3["targeted test run"]
|
@opencode-agent review Fresh re-review request: ContextualWisdomLab/.github#1136 has merged, fixing the central Generated by Claude Code |
|
@opencode-agent review The draft is ready for review. Re-review exact current head |
|
Current-head check review for 34697b6: all named checks are terminal-success except the historical GPU-smoke check, whose run was cancelled during the Install software Vulkan adapter step while all other matrix jobs passed. A failed-job rerun was dispatched for run 32208921099; no source change or GPU gate weakening is justified. Please reacquire review evidence against this exact head. @opencode-agent review @cwl-noema-review review |
|
@opencode-agent review\n@cwl-noema-review review\n\nPlease review exact current head 34697b6. Bind every review and approval decision to this SHA and current main. Existing review state is not sufficient evidence for this head; use current Checks and changed-file evidence only. |
|
Current-head re-review request for |
|
Exact-head validation for the Draft crossed/multiple-membership Rust slice
The branch remains intentionally Draft and stacked with the longitudinal #1005 integration paths; no independent merge or duplicate ownership was attempted. Re-fetch exact heads after reconciliation and regenerate protected review/check evidence. @opencode-agent review @cwl-noema-review review |
|
Additional native package proof for exact head
The earlier isolated no-extension limitation is resolved for this proof. The PR remains Draft because #1005 and #1014 share mutable bindings/documentation paths and require reviewed reconciliation before any merge. @opencode-agent review @cwl-noema-review review |
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.
Supersedes #985 without changing its corrected scientific/product tree.
Scientific slice
Exact source head:
34697b6df58c1424654bc890571a3dfbe806fd97. Repository CI, Security Scan, CodeQL, Semgrep, and ClusterFuzzLite are terminal-success on this SHA, with no unresolved review threads. The Rust-owned MAP/Newton estimator retains crossed and weighted multiple-membership person effects, CPU multithreading, optional wgpu score acceleration with CPU fallback, and a true-parameter RMSE recovery gate that a zero/stub estimator fails.Python remains validation/marshalling only; no likelihood, gradient, optimizer, recovery arithmetic, or Psychometrics Commons ownership is moved.
Required ordering with #1005
This branch and #1005 have distinct numerical kernels but share nine mutable integration paths, including:
crates/fast-mlsirm-py/src/multilevel_bindings.rs;crates/mlsirm-core/src/lib.rs;python/fast_mlsirm/multilevel/__init__.pyandestimation.py;#1005 owns the longitudinal state/CT-AR Rasch foundation; this PR owns crossed/weighted multiple-membership
u_hestimation. Both must survive. Temporary reconciliation PR #1016 proved GitHub cannot auto-merge those branches without explicit path-level resolution, so this PR is intentionally Draft and must not land independently while #1005 remains open.After #1005 integrates—or after a reviewed non-force reconciliation preserves both exact scientific slices—regenerate every base-sensitive check and formal review on the resulting head before marking Ready.
Historical review boundary
#985's remaining formal OpenCode
CHANGES_REQUESTEDis solely central coverage-evidence run32124700402, created before the current organization.githubreview/tooling fixes. It is historical infrastructure evidence, not source approval. No force push, review dismissal, gate weakening, or unrelated repository write is used.