feat(reports): preserve grouping comparison cross-share delta for serialized successor - #831
Conversation
…ip (v2.50.0)
Caption persisted leftover-map reconstruction R̂ on GET /api/reports/compare/{period} leftover-pair buttons through formatLeftoverMapReconstruction (ADR 0293). Distinct aria-label Leftover map comparison reconstruction. Omit when R̂ is missing or non-finite. Do not invent R̂ from leftover-map distance or plotted coordinates. No SQL. No leftover score or theta.
…arison strip (v2.51.0)
Caption persisted leftover-map explained leftover share e on GET /api/reports/compare/{period} leftover-pair buttons through formatLeftoverMapExplainedShare (ADR 0294). Distinct aria-label Leftover map comparison explained leftover share. Omit when e is missing or non-finite. Do not invent e from R̂ and R. No SQL. No leftover score or theta.
…mparison strip (v2.52.0) Caption persisted leftover-map unexplained leftover share s = U²/R² on grouping comparison leftover-pair buttons through formatLeftoverMapUnexplainedShare (ADR 0295). Distinct aria-label Leftover map comparison unexplained leftover share. Missing or non-finite s omits that badge and keeps e, R̂, d, and coverage notes. Do not invent s from U and R. UI-only; no new columns.
…(v2.53.0) Caption persisted leftover-map cross share x = 2R̂U/R² on grouping comparison leftover-pair buttons through formatLeftoverMapCrossShare (ADR 0296). Distinct aria-label Leftover map comparison cross share. Missing or non-finite x omits that badge and keeps s, e, R̂, d, and coverage notes. Do not invent x from R̂, U, and R. Finite negative share is shown, never clamped. UI-only; no new columns.
|
Cycle probe 2026-08-31 ~00:50 KST. Writes work (comment/close/create-PR/push). Token still empty X-OAuth-Scopes; GitHub App Grok has contents/PR/issues write as seonghobae. This PR (#831 / v2.53.0 / ADR 0296 / 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 #829 @ Next buyer increment after this: leftover-map unexplained leftover |
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
| const crossShare = formatLeftoverMapCrossShare( | ||
| pair.leftover_map_cross_share, | ||
| ); |
There was a problem hiding this comment.
🟡 Comparison cross share never appears
For real responses, formatLeftoverMapCrossShare receives undefined; the comparison payload never selects the persisted cross share. The badge only appears with mocked data.
Prompt for agents
Update backend/app/report_ingestion.py fetch_period_comparison so its leftover-pair query selects report_leftover_pair.leftover_map_cross_share and its response payload serializes that value as a nullable float. Add or extend backend comparison-endpoint tests to verify finite, zero, negative, null, and authorization-filtered values reach the frontend contract. Keep the frontend formatter as the fail-closed display boundary.
Was this helpful? React with 👍 or 👎 to provide feedback.
|
Queue cycle 2026-08-31T01:06KST: write probe. Leave open for independent review. Do not self-approve. |
|
Cycle 2026-08-31T01:19 KST: write-retry on #831 (v2.53.0 leftover-map cross share). Independent APPROVE required; no self-approve. Next buyer gap continues from this head if checks/reviews allow. |
|
Stacked #833 ( |
|
Cycle 2026-08-31 01:19 KST. Head Downstream: #833 (U / v2.54.0 on this head) then local residual |
seonghobae
left a comment
There was a problem hiding this comment.
Parent-first/capacity finding: this PR is Ready while its base #829 remains an unmerged feature prerequisite and the live leftover-map foundation is still #802 with #811 Draft/conflicting. Preserve the cross-share delta and evidence, but this descendant has no current protected-main merge path. Return it to Draft so the prerequisite lane remains the only active validation lane; do not close, squash, or discard its ADR/product delta.
seonghobae
left a comment
There was a problem hiding this comment.
Current-head stack-authority finding: live base already equals #829 exact 118500f73251eaaf717d5329b8fb6d9895196fe7, but the PR body still cites obsolete parent 4d82c28, predecessor verification, and historical retarget guidance. Preserve ADR 0296/product semantics and Draft state; make live parent/head/evidence authoritative and do not transfer predecessor tests.
seonghobae
left a comment
There was a problem hiding this comment.
Current-stack finding: #830 has been reopened because its distinct comparison-axis-singular delta was previously closed without merge or verified succession. This PR can no longer treat historical #829 as its final parent authority or ADR0296/v2.53.0 as reserved. Preserve the cross-share delta, stay Draft, and reconstruct after exact promoted #830 with a then-unclaimed ADR/release identity. Do not bypass the recovered valid delta or transfer historical verification.
|
Fresh review finding on historical |
Summary
Preserve the valid grouping-comparison persisted cross-share
x = 2R̂U / R²delta while serialized ancestry is repaired. Missing/non-finitexomits only that badge; finite zero and negative values remain explicit and are never clamped. UI/read-model composition only: no SQL, new measurement authority, theta, or invented score.Current stack authority
#828 is promoted at
7b6dbbb99a09d0523bce43c6872bbd9fa382a43aas ADR0367/v2.54.0. #829 is the immediate active successor; r434098420270starts directly from exact #828 and has passed exact-parent/live-head verification, semantic reconstruction, frozen graph installation, the realistic grouping-pair accessible-name RED, and its minimal causal fix. Full reconstructed GREEN/non-force product promotion is still required before #829 becomes the exact parent for #830.#830 remains the next distinct valid delta and is based on the #829 product branch. Its historical
ef5fcf63b6bcc2f6b451cb22b277116fb10fe138/ ADR0294/v2.51.0 identity is evidence only; it must reconstruct only the singular-value feature-origin delta after promoted #829. This #831 cross-share delta therefore waits behind exact promoted #830 and must not skip either predecessor.GitHub base remains the immediate predecessor branch
feat/leftover-map-compare-axis-singular-v2510(#830), currently at its historical head until #830 converges. Parent movement must be adopted non-force before this PR reconstructs.Accessibility finding carried forward
Historical
frontend/src/App.tsxgives grouping-comparison pair buttons an explicitaria-label; descendant metric badges therefore do not automatically enter the actionable accessible name. #829 repairs that composition for its unexplained-share increment. During #831 reconstruction preserve that predecessor repair and append the localized finite cross-share value to the same parent button name; mark the duplicate visual cross-share badgearia-hidden. Missing/non-finite cross-share remains absent. Add a realistic role/name RED rather than a descendant-text-only assertion.A broader pre-existing pair-list composition defect is tracked separately as #976. Do not widen this serialized comparison-strip lane into
LeftoverPairListsource work.Product invariants
xomits only the comparison cross-share badge and accessible-name suffix.2R̂U/R² 0.00; finite negative values are shown rather than clamped.xfromR̂,U,R, distance, plotted coordinates, reconstruction, residual, explained/unexplained shares, rank, coverage counts, or unused-axis count.Reconstruction / evidence boundary
After exact #830 promotion, choose the then-next unclaimed ADR/release identity against live authority, keep it Proposed while Draft, reconstruct the distinct historical delta on that exact parent, require realistic RED → minimal fix → full backend/frontend GREEN → lint/build/Storybook → clean non-force promotion, then obtain hosted exact-product-head security checks and qualifying independent approval. Canonical KO/EN/JA/ZH/VI/ES/DE/FR translation authority remains #922/#929/#932. No self-approval, force-push, destructive rebase, source-copy, psychometric reimplementation, or gate weakening.
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.