feat(reports): leftover-map unexplained leftover on grouping comparison strip (v2.54.0) - #833
Conversation
…on strip (v2.54.0) Caption leftover-map unexplained leftover U on grouping comparison leftover-pair buttons through formatLeftoverMapUnexplained (ADR 0297). After make seed, closest and farthest leftover pairs sit above the member list with the Gabriel biplot of already-named coordinates and grouping comparison leftover-pair buttons that match U on the pair row; click a post marker or a pair button opens that post. A missing or non-finite U omits that leftover-map comparison unexplained leftover badge and keeps leftover-map cross share x when finite. A finite negative leftover is shown, never clamped. Do not invent U from R and R̂. UI-only; no new columns. Never invent a leftover score or a theta. Jeon, M., Jin, I. H., Schweinberger, M., & Baugh, S. (2021). Mapping unobserved item–respondent interactions: A latent space item response model with interaction map. Psychometrika, 86(2), 378–403. Gabriel, K. R. (1971). The biplot graphic display of matrices with application to principal component analysis. Biometrika, 58(3), 453–467.
|
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 |
|
Cycle 2026-08-31T01:19 KST. Writes work (comment/create-PR/push). Token still empty X-OAuth-Scopes; GitHub App Grok has contents/PR/issues write as seonghobae. This PR (#833 / v2.54.0 / ADR 0297 / Verification: Leave open for independent review. Do not squash-merge onto the leftover base. Do not self-approve. Copilot review is not independent APPROVE. Stacked onto #831 @ Next buyer increment after this: leftover residual |
| const unexplainedLeftover = formatLeftoverMapUnexplained( | ||
| pair.leftover_map_unexplained, | ||
| ); |
There was a problem hiding this comment.
🟡 Production unexplained badges never appear
Real comparisons omit leftover_map_unexplained in fetch_period_comparison, so formatLeftoverMapUnexplained always hides the new badge. Only mocked responses display it.
Prompt for agents
Expose the persisted unexplained leftover through the real comparison API. In backend/app/report_ingestion.py, update fetch_period_comparison so its leftover-pair query selects report_leftover_pair.leftover_map_unexplained and its payload serialization returns the nullable finite value, matching fetch_period_reports. Add or extend the backend /api/reports/compare/{period_code} integration test to verify the field reaches authorized comparison pairs. Keep the frontend formatter fail-closed for missing or non-finite values.
Was this helpful? React with 👍 or 👎 to provide feedback.
|
Cycle 2026-08-31 01:19 KST. Head Local leftover residual Parallel stack #832 / #834 is a competing U-then-R increment on the same buyer gap; leave those open too. After independent review, retarget onto leftover-coordinates ( Next after R: leftover observed |
Summary
Uon grouping comparison leftover-pair buttons through formatLeftoverMapUnexplained (ADR 0297 / v2.54.0).make seed, closest and farthest leftover pairs sit above the member list with the Gabriel biplot of already-named coordinates, leftover-map axis share when finite, axis ticks that matchξ (x, y) ζ (x, y)on the pair row, pair segments that matchdon the pair row, pair segments that matchR̂on the pair row, pair segments that matchR̂²/R²on the pair row, pair segments that matchU²/R²on the pair row, pair segments that match2R̂U/R²on the pair row, pair segments that matchUon the pair row, pair segments that matchRon the pair row, pair segments that matchYon the pair row, pair segments that matchEon the pair row, pair segments that match leftover-map rank on the pair row, a plot caption that matches leftover-map complete-case coverage above the pair list, a plot caption that matches leftover-map item complete-case coverage, a plot caption that matches leftover-map incomplete post coverage, a plot caption that matches leftover-map incomplete item coverage, a pair-list note that matches leftover-map post complete-case coverage, a pair-list note that matches leftover-map item complete-case coverage, a pair-list note that matches leftover-map incomplete post coverage, a pair-list note that matches leftover-map incomplete item coverage, a grouping comparison note that matches leftover-map post complete-case coverage, a grouping comparison note that matches leftover-map item complete-case coverage, a grouping comparison note that matches leftover-map incomplete post coverage, a grouping comparison note that matches leftover-map incomplete item coverage, grouping comparison leftover-pair buttons that match leftover-map reconstructionR̂on the pair row, grouping comparison leftover-pair buttons that match leftover-map explained leftover shareeon the pair row, grouping comparison leftover-pair buttons that match leftover-map unexplained leftover shareson the pair row, grouping comparison leftover-pair buttons that match leftover-map cross sharexon the pair row, and grouping comparison leftover-pair buttons that match leftover-map unexplained leftoverUon the pair row; click a post marker or a pair button opens that post.Uomits that leftover-map comparison unexplained leftover badge and keeps leftover-map cross sharexwhen finite, leftover-map unexplained leftover shareswhen finite, leftover-map explained leftover shareewhen finite, leftover-map reconstructionR̂when finite, leftover-map distanced, the strip leftover-map post coverage note, leftover-map item coverage note, leftover-map incomplete post note, leftover-map incomplete item note, leftover pairs, and any leftover-map captions on the pair list and graphic. Rank-0 origin cells still nameU 0.00when that persisted leftover is finite. A finite negative leftover is shown, never clamped. Do not inventUfromRandR̂, leftover-map distance, plotted coordinates, leftover-map reconstruction, leftover residual, leftover-map explained leftover share, leftover-map unexplained leftover share, leftover-map cross share, leftover-map rank, leftover-map post coverage, leftover-map item coverage, leftover-map incomplete post coverage, leftover-map incomplete item coverage, or the count of unused axes.Leftover map comparison unexplained leftover. Copy is the sameU {signed}formatter as the pair-row badge. The strip does not gain the leftover-map graphic. Never invent a leftover score. Never invent a theta. Do not persist leftover-map inner product, cosine, or length.feat/leftover-map-compare-cross-share-v2530/ feat(reports): leftover-map cross share on grouping comparison strip (v2.53.0) #831 @2cefc0b). Leave this PR open for independent review. Do not squash-merge onto the unprotected leftover base. Do not self-approve. After independent review, retarget onto leftover-coordinates (feat/leftover-map-coordinates-v2240/ feat(reports): persist leftover-map coordinates (v2.24.0) #782) rather than squash-merging here.Verification
pnpm exec vitest run src/leftoverMapUnexplained.test.ts src/leftoverMapUnexplainedShare.test.ts src/leftoverMapCrossShare.test.ts src/leftoverMapExplainedShare.test.ts src/leftoverMapReconstruction.test.ts src/i18n.test.ts src/App.test.tsx: 7 files, 317 passed.pnpm exec oxlinton changed frontend files: 0 warnings, 0 errors.Evidence boundary
Authenticated PostgreSQL API and k6 runtime acceptance are not claimed. No real records or credentials. Synthetic fixtures only.
Independent approval is required. No self-approval, admin bypass, or force push.
Jeon, M., Jin, I. H., Schweinberger, M., & Baugh, S. (2021). Mapping unobserved item–respondent interactions: A latent space item response model with interaction map. Psychometrika, 86(2), 378–403.
Gabriel, K. R. (1971). The biplot graphic display of matrices with application to principal component analysis. Biometrika, 58(3), 453–467.