feat(reports): preserve grouping-comparison rank delta for serialized successor - #838
Conversation
Caption leftover-map rank on grouping comparison leftover-pair buttons through formatLeftoverMapRank (ADR 0301). 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 leftover-map rank on the pair row; click a post marker or a pair button opens that post. A missing, negative, or non-integer rank omits that leftover-map comparison rank badge and keeps leftover expected E when finite. Rank-0 origin cells still name rank 0. Do not invent rank from plotted coordinates, leftover-map distance, or the count of unused axes. 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 overlay 2026-08-31 02:15 KSTWrites work (
Independent approval is required. No self-approval, admin bypass, or force push. |
| const residual = formatLeftoverMapResidual(pair.leftover_residual); | ||
| const observed = formatLeftoverMapObserved(pair.observed_response); | ||
| const expected = formatLeftoverMapExpected(pair.expected_response); | ||
| const rank = formatLeftoverMapRank(pair.leftover_map_rank); |
There was a problem hiding this comment.
🟡 Comparison rank badges never appear
Real comparison responses omit leftover_map_rank, so formatLeftoverMapRank always receives undefined. Every production comparison hides the new rank badge, including rank 0.
Prompt for agents
Update backend/app/report_ingestion.py in fetch_period_comparison so its report_leftover_pair query selects leftover_map_rank and its leftover_pairs payload serializes the persisted nullable integer. Add or extend the authenticated /api/reports/compare/{period} integration test to assert that rank is present, including rank 0 where available. Keep the existing authorization filtering and metadata stripping unchanged.
Was this helpful? React with 👍 or 👎 to provide feedback.
|
Cycle overlay 2026-08-31 02:25 KST: leftover-map coordinates |
Summary
Preserve the valid grouping-comparison persisted leftover-map rank delta while the serialized report stack is repaired. Only non-negative integer rank is displayable and rank
0remains explicit. UI/read-model composition only: no SQL/schema, theta authority, or invented score.Current stack authority
GitHub base metadata points to immediate predecessor #837 (
feat/leftover-map-compare-expected-v2570@d40cdf5847c3844acd54a952691fba69b18d6f7c). #837 now waits on reconstructed #836 and the repaired predecessor chain. Historical ADR0301/v2.58.0 and its focused validation are evidence only, not current release authority.Reconstruct this rank delta only after exact promoted #837, allocate the then-next unclaimed ADR/release identity, and keep it Proposed while Draft. The historical instruction to retarget directly to #782 is superseded because it would bypass valid predecessors.
Product invariants
0remains explicit.Evidence boundary
Historical focused frontend evidence was 352 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.