feat(reports): preserve grouping-comparison expected delta for serialized successor - #837
Conversation
Caption leftover expected E on grouping comparison leftover-pair buttons through formatLeftoverMapExpected (ADR 0300). 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 E on the pair row; click a post marker or a pair button opens that post. A missing or non-finite E omits that leftover-map comparison expected badge and keeps leftover observed Y when finite. A finite negative leftover is shown, never clamped. Do not invent E from Y 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 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 |
|
Cycle 2026-08-31 01:45 KST. Head Leave this PR open. Do not squash-merge onto the unprotected leftover base (#836). Do not self-approve. After independent review, retarget onto leftover-coordinates ( Next increment on this head: leftover-map rank on grouping comparison leftover-pair buttons. Synthetic fixtures only. NVIDIA_NIM_API_KEY only. Do not merge revert #808 without independent APPROVE. |
There was a problem hiding this comment.
📝 Info: Valid edge values remain visible
formatLeftoverMapExpected rejects only nullish and non-finite values. Zero and finite negatives remain visible without clamping.
(Refers to this code)
Was this helpful? React with 👍 or 👎 to provide feedback.
| ); | ||
| const residual = formatLeftoverMapResidual(pair.leftover_residual); | ||
| const observed = formatLeftoverMapObserved(pair.observed_response); | ||
| const expected = formatLeftoverMapExpected(pair.expected_response); |
There was a problem hiding this comment.
🟡 Expected values never reach comparisons
Real comparison responses omit expected_response, so formatLeftoverMapExpected always receives undefined. Persisted expected-value badges never appear outside mocked tests.
Prompt for agents
Update backend/app/report_ingestion.py fetch_period_comparison so its leftover-pair query selects report_leftover_pair.expected_response and its payload serializes the nullable numeric value. Add or extend the authenticated /api/reports/compare/{period_code} integration test to assert that expected_response reaches comparison leftover pairs. The frontend already reads this property at App.tsx formatLeftoverMapExpected.
Was this helpful? React with 👍 or 👎 to provide feedback.
|
Cycle 2026-08-31T02:03 KST write probe. Independent APPROVE still required on exact head |
|
Cycle overlay 2026-08-31 02:15 KST: leftover-map rank on grouping comparison leftover-pair buttons (ADR 0301 / v2.58.0) is stacked as #838 ( |
Summary
Preserve the valid grouping-comparison persisted expected value
Edelta while the serialized report stack is repaired. Missing/non-finiteEomits only that badge; finite zero and negative values remain explicit. UI/read-model composition only: no SQL/schema, theta authority, or invented score.Current stack authority
GitHub base metadata points to immediate predecessor #836 (
feat/leftover-map-compare-observed-v2560@9f9cc71324d3197bf582bb30a935105803517d75). #836 now explicitly waits on reconstructed #835, which waits on the repaired #833 and #828→#831 chain. Historical ADR0300/v2.57.0 and its focused validation are evidence only, not current release authority.Reconstruct this
Edelta only after exact promoted #836, allocate the then-next unclaimed ADR/release identity, and keep it Proposed while Draft. The historical instruction to retarget directly to #782 is superseded; doing so would bypass valid serialized predecessors.Product invariants
Eomits only the comparison expected badge; finite zero/negative values remain explicit.EfromYandR, geometry, reconstruction, shares, rank, coverage, pair counts, or unused-axis count.Evidence boundary
Historical focused frontend evidence was 341 passing tests plus oxlint success, but it predates current-parent reconstruction and does not transfer. Canonical KO/EN/JA/ZH/VI/ES/DE/FR translation authority remains #922/#929/#932. Keep Draft until realistic current-parent RED, causal repair, exact-head backend/frontend GREEN, lint/build/Storybook, applicable browser/responsive/keyboard/focus/a11y evidence, translation-ledger convergence, applicable authenticated PostgreSQL/k6 acceptance, and qualifying independent approval are current. No self-approval, bypass, force-push, destructive rebase, or ancestor skip.
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.