fix(jmle): recognize objective convergence and add recovery evidence - #770
Merged
seonghobae merged 10 commits intoAug 12, 2026
Conversation
Contributor
|
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 |
seonghobae
changed the base branch from
main
to
codex/fast-judge-accepted-type-regression
August 11, 2026 22:06
seonghobae
marked this pull request as ready for review
August 12, 2026 06:27
seonghobae
merged commit Aug 12, 2026
35f6aab
into
codex/fast-judge-accepted-type-regression
9 checks passed
seonghobae
added a commit
that referenced
this pull request
Aug 13, 2026
* test(judge): close accepted-type and ownership gaps * feat: add cumulative threshold judge mode * fix: harden llm judge category bounds * fix: normalize judge method validation * docs: distinguish proposed binding registry * fix: harden judge result boundaries * test(docs): pin integrated maturity states * docs: align maturity with protected main * docs: record inconclusive Strix evidence * fix: reject unhashable criterion identifiers * docs: record current Strix evidence boundary * docs: bind Strix evidence and usage contract * docs: use canonical maturity vocabulary * test(judge): reject criterion description subclasses * fix(judge): reject criterion description subclasses * test(judge): reject trace container subclasses * docs: record central workflow evidence boundary * fix(judge): isolate trace metadata hooks * docs: record workflow contract reachability finding * docs: record live gateway judge method sensitivity * docs(adr): record local judge queue saturation * docs(adr): record network transport boundary * fix(jmle): recognize objective convergence and add recovery evidence (#770) * test(jmle): add optimizer-mode recovery evidence * docs(doctoring): define JMLE optimizer recovery evidence * test(jmle): identify recovery scale before error gates * docs(jmle): document affine recovery identification * test(jmle): avoid quasi-separated recovery fixture * test(jmle): eliminate person-separation confound in recovery fixture * fix(jmle): recognize accepted L-BFGS objective convergence * docs(adr): record trusted coverage transport blocker * test(jmle): exercise objective convergence guard * docs(adr): record trusted Strix outage evidence * docs(adr): preserve trusted Strix outage evidence * docs(research): preserve permissive OA judge-bias papers --------- Co-authored-by: Seongho Bae <seonghobae@Seonghoui-MacBookAir.local> Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
seonghobae
added a commit
that referenced
this pull request
Aug 16, 2026
* test(judge): close accepted-type and ownership gaps * feat: add cumulative threshold judge mode * fix: harden llm judge category bounds * fix: normalize judge method validation * docs: distinguish proposed binding registry * fix: harden judge result boundaries * test(docs): pin integrated maturity states * docs: align maturity with protected main * docs: record inconclusive Strix evidence * fix: reject unhashable criterion identifiers * docs: record current Strix evidence boundary * docs: bind Strix evidence and usage contract * docs: use canonical maturity vocabulary * test(judge): reject criterion description subclasses * fix(judge): reject criterion description subclasses * test(judge): reject trace container subclasses * docs: record central workflow evidence boundary * fix(judge): isolate trace metadata hooks * docs: record workflow contract reachability finding * docs: record live gateway judge method sensitivity * docs(adr): record local judge queue saturation * docs(adr): record network transport boundary * fix(jmle): recognize objective convergence and add recovery evidence (#770) * test(jmle): add optimizer-mode recovery evidence * docs(doctoring): define JMLE optimizer recovery evidence * test(jmle): identify recovery scale before error gates * docs(jmle): document affine recovery identification * test(jmle): avoid quasi-separated recovery fixture * test(jmle): eliminate person-separation confound in recovery fixture * fix(jmle): recognize accepted L-BFGS objective convergence * docs(adr): record trusted coverage transport blocker * test(jmle): exercise objective convergence guard * docs(adr): record trusted Strix outage evidence * docs(adr): preserve trusted Strix outage evidence * docs(research): preserve permissive OA judge-bias papers * fix: enforce multi-item IRT fit boundaries * docs: record protected review gate * fix: gate production IRT fits on experiment readiness * fix: gate dimensionality diagnostics folds * fix(irt): require polytomous category occupancy * docs(irt): document category occupancy gate * docs(irt): record current K sensitivity evidence * docs(adr): record stale native extension test hazard * docs(adr): record baseline rustfmt drift * docs(adr): record inconclusive Strix provider evidence * fix(irt): align readiness and MH-RM contracts * fix(irt): resolve validation lint contracts * docs(papers): record OA PDF acquisition boundary * docs(adr): record latest Strix fallback evidence * docs(adr): record semantic judge miss * docs(adr): record exact merge verification * feat(judge): add bounded binary threshold calibration * perf(judge): reuse gateway concurrency for binary thresholds * docs(adr): record integrated judge concurrency * fix(judge): default polytomous scoring to binary thresholds * docs(adr): record current merge gate evidence * docs(adr): record integrated judge smoke * fix(judge): retain binary failure evidence * feat(judge): bind polytomous category anchors * docs(adr): record protected-base sync evidence * docs(adr): record MLX readiness and semantic failure * fix: clarify ordinal threshold judge semantics * docs: record pull ref synchronization drift * fix: retain parsed threshold evidence on failure * docs: record protected review gate repair * docs: record hosted runner queue evidence * docs: link judge concurrency sweep * docs: record multi-item judge smoke * docs: record latest exact-head review audit * docs: record protected-main synchronization * docs: bind synchronized fast review head * docs: record post-main judge smoke * docs: add option-only bias literature * docs: record corrected exact-head review evidence * docs: record full-sha review evidence correction * feat: add contextual paired judge calibration controls * docs: pin calibration evidence to implementation head * fix: retain bounded judge failure evidence * docs: record model calibration and failure evidence * fix: preserve nested judge usage evidence * docs: record final judge evidence head * perf: bound paired judge calibration concurrency * docs: bind calibration optimization to exact head * fix: satisfy calibration lint boundary * docs: record lint-clean judge head * docs: record current CI capacity gate * docs: record binary judge calibration evidence * docs: record judge concurrency plateau * docs: reconcile Zotero OA paper evidence * docs: record protection policy drift * docs: record protection remediation * fix: require gateway provenance for LLM judges * feat: expose polytomous category occupancy * docs: record protected base synchronization * docs: record verifier model calibration evidence * chore(irt): keep public exports deterministically sorted * docs: record OA PDF rights conflict * docs: record held-out calibration limits * docs: refresh exact-head merge evidence * docs: record non-ceiling calibration evidence * docs: record 3B calibration boundary * docs: bind latest fast PR evidence * docs: record Strix provenance dependency * docs: bind central Strix workflow dependency * feat(judge): expose option-count calibration strata * docs(adr): record K-stratified live calibration * docs: record unbound Strix evidence * docs: record review evidence transport fix * docs: record organization ruleset governance gap * docs: record repaired organization policy * docs: record review identity correction * docs: record provider execution contract failure * docs: record exact-head identity correction * docs: record current unbound strix evidence * fix: validate calibration report boundaries * fix: export contextual judge contract * fix: keep contract export unique * fix: redact failed judge evidence * docs: record exact-head calibration evidence * docs: record current actions queue evidence * docs: record review identity correction * docs: distinguish actions queue from outage * docs: record current MLX judge recheck * docs: clarify contextual judge runtime * fix: redact calibration exception evidence * fix: hide judge provider failures * docs: record unbound strix evidence * docs: record cross-repository Strix binding gate * docs: record current MLX IRT smoke * docs: record minimal Strix dependency gate * docs: record PR snapshot consistency guard * docs: record central suite validation * docs: record quoted check audit paths * docs: harden shell audit argument handling * docs: record current Actions queue evidence * docs: record superseded central PR closure * docs: record gateway throughput evidence * fix(judge): require explicit ordinal evidence * docs: record exact-head review queue * fix(judge): harden cumulative ordinal contract * docs: audit official OA PDF retrieval * docs: record Zotero write boundary * docs: record current judge gate state * docs: record check materialization re-poll * docs: record unbound strix evidence * fix: request strict judge response schemas * docs: record unbound hosted security evidence * docs: record Strix tool contract failure * fix: retain structured judge failure evidence * fix: reject symlinked input artifacts * docs: record symlink regression evidence * docs: record unbound strix evidence * fix: confine CLI paths to caller workspace * docs: record CLI path-boundary finding * fix: publish diagnostics reports atomically * docs: record current strix evidence boundary * docs(adr): bind coverage review evidence * docs(adr): record review dependency gate * docs(adr): record unbound Strix evidence * docs: record current bound-free Strix result * docs: record Strix tool contract failure * test: reproduce simulation allocation exhaustion bounds * fix: bound simulation allocation dimensions * test: isolate simulation resource-limit boundary --------- Co-authored-by: Seongho Bae <seonghobae@Seonghoui-MacBookAir.local> Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
PR #760 moved public JMLE Adam, L-BFGS, and
adam_lbfgsoptimizer loops into Rust, while issue #626 keeps scientific acceptance open until each advertised mode has true-parameter recovery and convergence evidence. The deterministic recovery study exposed a real production defect rather than a test-only gap: L-BFGS could reach a numerically stationary objective yet continue until the next Armijo search reportedline_search_failed, misclassifying objective convergence as failure.Production fix
This Draft changes the Rust L-BFGS loop in
crates/mlsirm-core/src/jmle_opt.rsto recognize bounded relative objective reduction as convergence in addition to the existing gradient criterion. The stopping check is evaluated only after an accepted objective-decreasing step and uses the configured optimizer tolerance; it does not convert a failed line search or an increasing objective into success. A focused Rust regression fixes the numerical boundary and the hybrid-mode test no longer acceptsline_search_failedas an ordinary successful outcome.Scientific recovery evidence
tests/test_jmle_optimizer_recovery.pyexercises the publicfit(..., estimator="jmle", backend="rust", rust_device="cpu")path foradam,lbfgs, andadam_lbfgson one deterministic, correctly specified unidimensional 2PL-generating sample (gamma=0). For every mode it requires:docs/doctoring/jmle_optimizer_recovery_evidence.mdrecords the identification and interpretation boundary. The finite-sample thresholds are deliberately broad and do not claim penalized JMLE is asymptotically unbiased for item parameters.Exact-current stack evidence
codex/fast-judge-accepted-type-regressionat11291fd5f03cf24e403289b0466a7b633d0d3971;503564b57ecf7ba504557399a3343f6dd203601e;31548759944: success;31548759922: success.These stacked-base results prove the current branch itself is green on its exact predecessor. They do not transfer across a later predecessor merge/rebase and are not protected-main release acceptance.
Scope / merge boundary
This PR changes the Rust optimizer convergence contract plus its recovery/test documentation. It does not change the likelihood, public API shape, dependency set, provider credentials, release version, or advertise end-to-end GPU optimizer parity. Keep Draft until #778 is integrated, this unique slice is reconciled onto the resulting protected main, all base-sensitive CI/security/review evidence is recreated on the unchanged final head, zero valid unresolved findings remain, and actual live repository policy is satisfied.
Advances #626.