Skip to content

feat(reports): preserve grouping-comparison residual delta for serialized successor - #835

Draft
seonghobae wants to merge 2 commits into
feat/leftover-map-compare-unexplained-v2540from
feat/leftover-map-compare-residual-v2550
Draft

feat(reports): preserve grouping-comparison residual delta for serialized successor#835
seonghobae wants to merge 2 commits into
feat/leftover-map-compare-unexplained-v2540from
feat/leftover-map-compare-residual-v2550

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Preserve the valid grouping-comparison persisted leftover residual R delta while the serialized report stack is repaired. Missing/non-finite R omits only that metric; finite zero and negative values remain explicit and are never clamped. UI/read-model composition only: no SQL/schema, theta authority, invented score, or hidden-population recomputation.

Current serialized authority

The active repair order is #828#829#830#831#833 before this residual successor may be reconstructed.

This PR remains based on historical #833@dbff5bf... with head f0da90928f0a01ba46ad82f3c53104edc910a630. Do not move or promote this residual product tree ahead of repaired #833. When #833 advances, reconstruct this child non-force from the exact repaired parent and regenerate all non-transferable evidence.

Decision/release identity

Historical ADR0298/v2.55.0 is evidence only and collides with the current serialized allocation. Allocate the then-live collision-free ADR/release identity only during reconstruction on exact repaired #833, and keep the decision Proposed while Draft.

Closed #834 is a competing historical implementation of the same residual buyer gap. Its closed state is valid only if the reconstructed successor proves complete inheritance of every valid source/test/fixture/contract/evidence delta. Before treating #834 as fully superseded, compare it against the rebuilt #835; if any valid delta is missing, reopen it or preserve the missing delta through an explicit successor under the no-drop rule. Do not duplicate the stale implementation merely because it is closed.

Product/accessibility invariants

Keep Draft until exact repaired #833 exists, this residual delta is reconstructed non-force, realistic current-parent RED → minimum causal repair → exact-head backend/frontend/security GREEN is complete, rendered responsive/pointer/touch/keyboard/focus/a11y evidence and canonical translation-ledger consumption are current, applicable authenticated PostgreSQL/k6 evidence exists, and qualifying independent approval/governance conditions are satisfied. No self-approval, bypass, force-push, destructive rebase, ancestor skip, stale-head evidence transfer, 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.

Caption leftover residual R on grouping comparison leftover-pair
buttons through formatLeftoverMapResidual (ADR 0298). 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
R on the pair row; click a post marker or a pair button opens that post. A missing
or non-finite R omits that leftover-map comparison residual badge and
keeps leftover-map unexplained leftover U when finite. A finite negative leftover is shown,
never clamped. Do not invent R from Y and E or from U 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.
@coderabbitai

coderabbitai Bot commented Aug 30, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31 01:35 KST. Head a825c33. Independent collaborator APPROVE required. Copilot/Devin COMMENTED is not independent APPROVE. Only collaborator is seonghobae — no second human reviewer to request.

Leave this PR open. Do not squash-merge onto the unprotected leftover base (#833). Do not self-approve. After independent review, retarget onto leftover-coordinates (feat/leftover-map-coordinates-v2240 / #782) rather than squash-merging here.

Parallel residual #834 on #832 is a competing stack of the same buyer gap; leave both open.

Next increment on this head: leftover observed Y on grouping comparison leftover-pair buttons (ADR 0299 / v2.56.0). Synthetic fixtures only. NVIDIA_NIM_API_KEY only. Do not merge revert #808 without independent APPROVE.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Devin Review

Comment thread frontend/src/App.tsx
const unexplainedLeftover = formatLeftoverMapUnexplained(
pair.leftover_map_unexplained,
);
const residual = formatLeftoverMapResidual(pair.leftover_residual);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: Residual remains persisted evidence

formatLeftoverMapResidual reads the comparison payload directly. Missing or non-finite residuals omit only this badge, preserving neighboring measurements.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +23 to +24
export const LEFTOVER_MAP_COMPARE_RESIDUAL_LABEL =
"Leftover map comparison residual";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: Signed residual values remain intact

The finiteness gate retains zero and negative residuals. Formatting matches the existing pair-row badge without clamping.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31 01:42 KST. Head a825c33. Leftover observed Y (ADR 0299 / v2.56.0) is stacked as #836 (feat/leftover-map-compare-observed-v2560 @ ada0c86). Leave both open. Independent APPROVE still missing. Do not squash-merge. Do not self-approve.

Preserve #835 ADR 0298/product delta while inheriting current #833 ancestry through a normal two-parent merge. No force-push or destructive rebase.
seonghobae added a commit that referenced this pull request Sep 5, 2026
Preserve #836 ADR 0299/product delta while inheriting current #835 ancestry through a normal two-parent merge. No force-push or destructive rebase.
@seonghobae seonghobae changed the title feat(reports): leftover residual on grouping comparison strip (v2.55.0) feat(reports): preserve grouping-comparison residual delta for serialized successor Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant