Skip to content

feat(reports): leftover-map comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge (v2.83.0) - #867

Open
seonghobae wants to merge 1 commit into
feat/leftover-map-axis-singular-only-v2820from
feat/leftover-map-compare-plot-axis-badge-v2830
Open

feat(reports): leftover-map comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge (v2.83.0)#867
seonghobae wants to merge 1 commit into
feat/leftover-map-axis-singular-only-v2820from
feat/leftover-map-compare-plot-axis-badge-v2830

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Caption leftover-map comparison graphic leftover-map axes with persisted leftover-map singular values σ_k through leftoverMapComparePlotAxisBadge (ADR 0326 / v2.83.0).
  • After make seed, grouping comparison leftover-map graphic leftover-map axes name persisted leftover-map singular values when leftoverMapComparePlotAxisBadge returns a usable leftover-map axis caption even when leftover-map axis share is omitted; click a leftover pair opens that post.
  • Leftover-map comparison graphic leftover-map axes stay leftover map comparison graphic leftover-map axis {k} σ {value} when share is omitted so they stay distinct from leftover-axis leftover axis {k} σ {value} (ADR 0325), from hyphen leftover-map axis {k} σ {value} (ADR 0324), and from comparison leftover-axis leftover map comparison leftover axis {k} σ {value} (ADR 0323).
  • A missing or non-finite leftover-map axis share omits that share caption and keeps leftover map comparison graphic leftover-map axis {k} σ {value}. A missing, non-finite, or negative singular value omits that σ badge and keeps leftover map comparison axis {k} ({share}%). Rank-0 unused axes still name σ 0.00. Do not invent σ_k from leftover-map axis share. Do not invent leftover-map axis share from σ_k.
  • UI-only; no SQL; no new columns. Never invent a leftover score. Never invent a theta. Do not persist leftover-map inner product, cosine, or length. This increment does not change leftover-map singular values on leftover-map graphic-display axes, leftover-axis report badges, or leftover-axis report badges on the grouping comparison strip.
  • Stacked onto leftover-map singular values on leftover-axis report badges independently of leftover-map axis share (feat/leftover-map-axis-singular-only-v2820 / feat(reports): leftover-map singular values on leftover-axis report badges independently of leftover-map axis share (v2.82.0) #866 @ 593b8d8). Leave this PR open for independent review. Do not squash-merge onto the unprotected leftover base. Do not self-approve. After independent review, retarget onto leftover-coordinates (feat/leftover-map-coordinates-v2240 / feat(reports): persist leftover-map coordinates (v2.24.0) #782) rather than squash-merging here. Issues Milestone 2: port verified direct-PostgreSQL analysis into the protected product architecture #79 and Milestone 2.1: add normalized runtime-analysis schema bridge after v0.77 #87 stay open. Do not merge revert: undo #782 squash until independent APPROVE #808 without independent APPROVE.

Test plan

  • leftoverMapPlotAxisSingular.test.ts leftoverMapComparePlotAxisBadge reads 1.84/0.82, names rank-0 0, omit NaN/Infinity/null/negative independently of share, σ-only copy leftover map comparison graphic leftover-map axis {axis} σ {value}, do not invent σ from leftover-map axis share or share from σ, stay distinct from leftoverMapPlotAxisBadge / leftoverMapCompareAxisBadge / leftoverMapAxisBadge
  • LeftoverMapPlot.test.tsx grouping comparison graphic keeps leftover map comparison graphic leftover-map axis 1 σ 1.84 (82%) / leftover map comparison graphic leftover-map axis 2 σ 0.86 (18%); σ-only leftover map comparison graphic leftover-map axis 1 σ 1.84 when share is omitted
  • App.test.tsx grouping comparison graphic leftover-map axis 1 σ 1.84 (82%) stays distinct from leftover axis 1 σ 1.84 82% and leftover map comparison leftover axis 1 σ 1.84 82%
  • frontend oxlint on changed files: 0 warnings, 0 errors
  • frontend tsc -b passed
  • frontend vitest: 597 tests passed (App, LeftoverMapPlot, i18n, leftoverMapPlotLayout, leftoverMapPlotAxisSingular, leftoverMapAxisBadge, leftoverMapPlotAxisShare)
  • CI Full test suite and Frontend lint, test, build on this exact head
  • After make seed, leftover-map comparison graphic leftover-map axes name leftover-map singular values even when leftover-map axis share is omitted; click opens that post.

Evidence boundary

Authenticated PostgreSQL API and k6 runtime acceptance are not claimed. No real records or credentials. Synthetic fixtures only.

Independent approval is required. No self-approval, admin bypass, or force push.

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.


Devin Review

…over-map singular values as leftoverMapComparePlotAxisBadge (v2.83.0)

Caption leftover-map comparison graphic leftover-map axes with persisted leftover-map singular values σ_k through leftoverMapComparePlotAxisBadge (ADR 0326). Comparison graphic copy stays leftover map comparison graphic leftover-map axis {k} σ {value} when share is omitted so it stays distinct from leftover-axis leftover axis {k} σ {value}, from hyphen leftover-map axis {k} σ {value}, and from comparison leftover-axis leftover map comparison leftover axis {k} σ {value}. Rank-0 unused axes still name σ 0.00. Share and singular value omit independently. Do not invent σ_k from leftover-map axis share. Do not invent leftover-map axis share from σ_k. Never invent a leftover score. Never invent a theta.
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7793a590-d85c-4682-a0d7-6408037a2ca1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@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 1 potential issue.

Devin Review

Comment on lines +121 to +144
export function leftoverMapComparePlotAxisBadge(
axisIndex: number,
leftoverSingular: number | null | undefined,
leftoverShare: number | null | undefined,
): LeftoverMapCompareAxisBadge | null {
const singular = formatLeftoverMapPlotAxisSingular(leftoverSingular);
const percent = formatLeftoverMapPlotAxisShare(leftoverShare);
if (singular === null && percent === null) {
return null;
}
if (singular === null && percent !== null) {
return { key: LEFTOVER_MAP_COMPARE_PLOT_AXIS_SHARE, values: { axis: axisIndex, share: percent } };
}
if (singular !== null && percent === null) {
return {
key: LEFTOVER_MAP_COMPARE_PLOT_AXIS_SINGULAR,
values: { axis: axisIndex, value: singular },
};
}
return {
key: LEFTOVER_MAP_COMPARE_PLOT_AXIS_SINGULAR_SHARE,
values: { axis: axisIndex, value: singular as string, share: percent as string },
};
}

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: Badge decision table remains equivalent

leftoverMapComparePlotAxisBadge preserves all four prior singular-value and share combinations. Existing localization keys and fallback text therefore remain unchanged.

Devin Review

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

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31 12:16 KST. Writes work as seonghobae. Exact head cf7bb55 (v2.83.0 / ADR 0326). Caption leftover-map comparison graphic leftover-map axes with persisted leftover-map singular values σ_k through leftoverMapComparePlotAxisBadge. Distinct copy leftover map comparison graphic leftover-map axis {k} σ {value} when share is omitted. Rank-0 unused axes still name σ 0.00. Share and singular omit independently. Do not invent σ_k from leftover-map axis share. Do not invent leftover-map axis share from σ_k. Independent APPROVE required. Do not self-approve. Leave stacked leftover PRs open. Do not squash-merge onto the unprotected leftover base. After independent review, retarget onto leftover-coordinates (#782, MERGED). Issues #79 and #87 stay open. Do not merge #808 without independent APPROVE. Synthetic fixtures only.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31 12:16 KST. Writes work. Exact head cf7bb55 (v2.83.0 / ADR 0326). Frontend oxlint 0/0, tsc -b, vitest 597 passed locally. Do not wait on Checks. Devin/Copilot COMMENTED is not independent APPROVE. Leave #867 open. Do not squash-merge. Do not self-approve. Issues #79 and #87 stay open. Do not merge #808 without independent APPROVE. Independent APPROVE required on this exact head.

Next buyer increment after this stacked σ_k surface: leftover-map graphic leftover-map axis ticks naming persisted σ_k independently of leftover-map axis share (named helper leftoverMapPlotTickAxisBadge matching leftoverMapComparePlotAxisBadge / leftoverMapPlotAxisBadge / leftoverMapCompareAxisBadge / leftoverMapAxisBadge), or leftover-map comparison graphic leftover-map axis ticks naming persisted σ_k independently of leftover-map axis share, or the next already-persisted leftover-map quantity that still has no buyer caption. Do not persist leftover-map inner product, cosine, or length. Synthetic fixtures only.

Copy link
Copy Markdown
Contributor Author

Queue cycle 2026-08-31T12:17 KST: leftover-map comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge (v2.83.0) stays open for independent review on exact head cf7bb55. Do not self-approve. Do not squash-merge onto the unprotected leftover base. Issues #79 and #87 stay open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant