feat(reports): preserve grouping-comparison observed delta for serialized successor - #836
Conversation
Caption leftover observed Y on grouping comparison leftover-pair buttons through formatLeftoverMapObserved (ADR 0299). 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 Y on the pair row; click a post marker or a pair button opens that post. A missing or non-finite Y omits that leftover-map comparison observed badge and keeps leftover residual R when finite. A finite negative leftover is shown, never clamped. Do not invent Y from R and E. 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:42 KST. Head Leave this PR open. Do not squash-merge onto the unprotected leftover base (#835). Do not self-approve. After independent review, retarget onto leftover-coordinates ( Next increment on this head: leftover expected |
There was a problem hiding this comment.
📝 Info: Formatter preserves valid edge values
formatLeftoverMapObserved keeps zero and finite negatives while rejecting missing or non-finite values. Its result cannot suppress neighboring badges.
(Refers to this code)
Was this helpful? React with 👍 or 👎 to provide feedback.
| pair.leftover_map_unexplained, | ||
| ); | ||
| const residual = formatLeftoverMapResidual(pair.leftover_residual); | ||
| const observed = formatLeftoverMapObserved(pair.observed_response); |
There was a problem hiding this comment.
🟡 Observed comparison badges never appear
Real comparison responses omit observed_response in fetch_period_comparison, so formatLeftoverMapObserved always receives undefined. Every new Y badge stays hidden.
Prompt for agents
The frontend now renders pair.observed_response in frontend/src/App.tsx, but backend/app/report_ingestion.py fetch_period_comparison does not select observed_response from report_leftover_pair or serialize it into comparison leftover_pairs. Extend that comparison query and payload to carry the persisted nullable value without deriving it from residual or expected response. Add comparison-endpoint coverage using a real fetch_period_comparison-shaped payload, including finite, null, and zero values, so frontend mocks cannot mask future API omissions.
Was this helpful? React with 👍 or 👎 to provide feedback.
|
Cycle 2026-08-31 01:45 KST. Head |
Summary
Preserve the valid grouping-comparison persisted observed value
Ydelta while the serialized report stack is repaired. Missing/non-finiteYomits 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 already points to immediate predecessor #835 (
feat/leftover-map-compare-residual-v2550@f0da90928f0a01ba46ad82f3c53104edc910a630). #835 itself must first converge after #833 and the repaired #828→#831 chain. Historical ADR0299/v2.56.0 and this branch's old validation are evidence only; they are not a current release allocation or transferable GREEN.Reconstruct this
Ydelta only after exact promoted #835, choose the then-next unclaimed ADR/release identity from live authority, and keep it Proposed while Draft. The old instruction to bypass the repaired stack and retarget directly to #782 is superseded and must not be followed.Product invariants
Yomits only the comparison observed badge; finite zero/negative values remain explicit.YfromRandE, geometry, reconstruction, shares, rank, coverage, pair counts, or unused-axis count.Evidence boundary
Historical focused frontend evidence was 336 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.