feat(leftover): persist leftover-map explained share (ADR 0232) - #728
Conversation
Name e = R̂² / R² of raw residual after two-axis Gabriel reconstruction on leftover pair rows (ADR 0232 / migration 0232). Unexplained leftover share s stays omitted. A finite share greater than 1 is stored, never clamped. Next action opens the named post.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI 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 |
|
Independent review requested. seonghobae will not self-approve. Leftover-map explained share |
|
Rust boundary evidence:
|
|
Exact dependency refresh: concurrent upstream work unified the result with the versioned interaction-map envelope. This PR now pins current #1457 head |
Persist leftover-map unexplained leftover share s = U² / R² of raw residual on leftover post–criterion pairs so the leftover the truncated two-axis map cannot reconstruct is not read as leftover residual R, leftover-map distance d, unexplained leftover U, or leftover-map cross share x. Do not persist leftover-map explained share e. After make seed, closest and farthest leftover pairs sit above the member list with U²/R² next to leftover-map distance d; click opens that post. Missing or non-finite share omits the badge rather than inventing a leftover score. A share greater than 1 is stored, never clamped. The grouping comparison strip stays on its reduced leftover payload (distance, residual, reconstruction). Independent of leftover stacks #640, #680, #720 and dashboard explained share ADR 0232 (#728).
Persist leftover-map unexplained leftover share s = U² / R² of raw residual on leftover post–criterion pairs so the leftover the truncated two-axis map cannot reconstruct is not read as leftover residual R, leftover-map distance d, unexplained leftover U, or leftover-map cross share x. Do not persist leftover-map explained share e. After make seed, closest and farthest leftover pairs sit above the member list with U²/R² next to leftover-map distance d; click opens that post. Missing or non-finite share omits the badge rather than inventing a leftover score. A share greater than 1 is stored, never clamped. The grouping comparison strip stays on its reduced leftover payload (distance, residual, reconstruction). Independent of leftover stacks #640, #680, #720 and dashboard explained share ADR 0232 (#728).
Summary
Period leftover pair rows now name leftover-map explained share
e = R̂² / R²of raw residual after two-axis Gabriel reconstructionR̂ = ξ_{1:2} · ζ_{1:2}(ADR 0232 / migration 0232). Closest and farthest leftover pairs sit above the member list withR̂²/R²next to leftover-map distanced; click opens that post.This is not closed historical PR #539. That reconstruction used a centered formula
e = R̂_c² / R̃²under ADR 0185. Current main already persists raw-residual cross sharex = 2 R̂ U / R²(ADR 0185) and signed reconstructionR̂(ADR 0201). This increment completes the cell identitye + s + x = 1by persistinge. Unexplained leftover shares = U² / R²is not persisted.Buyer next action
Leftover map explains
{share}of raw residual after IRT main effects. Open this post to read{criterion}. A missing or non-finite share omits the badge and keeps the existing cross-share / reconstruction / unexplained fallback. A finite share greater than 1 is stored and shown, never clamped: truncated two-axis reconstruction of a higher-rank cell can make|R̂| > |R|. Do not invent a leftover score. Do not invent a theta.Evidence
uv runleftover pair tests: 23 passed (tests/test_leftover_pairs.py)add column if not exists, no unit/nonnegative CHECK)Does not mix into #680 / #714 / #643 stacks. Independent review required; seonghobae will not self-approve.