Skip to content

feat(reports): leftover-map singular values on leftover-map graphic leftover-map axis ticks independently of leftover-map axis share (v2.84.0) - #868

Draft
seonghobae wants to merge 1 commit into
feat/leftover-map-compare-plot-axis-badge-v2830from
feat/leftover-map-plot-tick-axis-badge-v2840
Draft

feat(reports): leftover-map singular values on leftover-map graphic leftover-map axis ticks independently of leftover-map axis share (v2.84.0)#868
seonghobae wants to merge 1 commit into
feat/leftover-map-compare-plot-axis-badge-v2830from
feat/leftover-map-plot-tick-axis-badge-v2840

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Caption leftover-map graphic leftover-map axis ticks with persisted leftover-map singular values σ_k through leftoverMapPlotTickAxisBadge independently of leftover-map axis share (ADR 0327 / v2.84.0).
  • After make seed, leftover-map graphic leftover-map axis ticks name persisted leftover-map singular values when leftoverMapPlotTickAxisBadge returns a usable leftover-map axis tick σ caption even when leftover-map axis share is omitted; click a leftover pair opens that post.
  • Leftover-map graphic leftover-map axis ticks stay leftover-map axis {k} tick {value} σ {singular} when σ_k is finite so they stay distinct from leftover-map graphic leftover-map axis leftover-map axis {k} σ {value} (ADR 0324), from leftover-axis leftover axis {k} σ {value} (ADR 0325), from comparison leftover-axis leftover map comparison leftover axis {k} σ {value} (ADR 0323), from comparison graphic leftover-map axis leftover map comparison graphic leftover-map axis {k} σ {value} (ADR 0326), and from comparison graphic leftover-map axis ticks leftover map comparison graphic leftover-map axis {k} tick {value} (ADR 0320).
  • A missing, non-finite, or negative singular value omits that σ tick caption and keeps leftover-map axis {k} tick {value}. Rank-0 unused axes still name σ 0.00. Leftover-map graphic leftover-map axis ticks never name leftover-map axis share. 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 comparison graphic leftover-map axis ticks.
  • Stacked onto leftover-map comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge (feat/leftover-map-compare-plot-axis-badge-v2830 / feat(reports): leftover-map comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge (v2.83.0) #867 @ cf7bb55). 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 leftoverMapPlotTickAxisBadge reads 1.84/0.86 on +0.50/−0.02, names rank-0 0, omit NaN/Infinity/null/negative independently of share, σ copy leftover-map axis {axis} tick {value} σ {singular}, never names leftover-map axis share, do not invent σ from leftover-map axis share or share from σ, stay distinct from leftoverMapPlotAxisBadge / leftoverMapComparePlotAxisBadge / leftoverMapCompareAxisBadge / leftoverMapAxisBadge
  • LeftoverMapPlot.test.tsx leftover-map graphic leftover-map axis 1 tick +0.50 σ 1.84 / leftover-map axis 2 tick −0.02 σ 0.86; rank-0 leftover-map axis 1 tick 0.00 σ 0.00; σ-only leftover-map axis 1 tick +0.50 σ 1.84 when share is omitted; comparison graphic ticks stay leftover map comparison graphic leftover-map axis 1 tick +0.50
  • i18n.test.ts required keys for leftover-map graphic leftover-map axis tick σ in ko/zh/ja/vi (잔여 지도 축 1 눈금 +0.50 σ 1.84 / 残差图轴 1 刻度 +0.50 σ 1.84 / 残差マップ軸 1 目盛 +0.50 σ 1.84 / vạch trục bản đồ phần dư 1 +0.50 σ 1.84)
  • frontend oxlint on changed files: 0 warnings, 0 errors
  • frontend tsc -b passed
  • frontend vitest: 608 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 graphic leftover-map axis ticks 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

…eftover-map axis ticks independently of leftover-map axis share (v2.84.0)

Caption leftover-map graphic leftover-map axis ticks with persisted leftover-map singular values σ_k through leftoverMapPlotTickAxisBadge independently of leftover-map axis share (ADR 0327). Tick copy stays leftover-map axis {k} tick {value} σ {singular} when σ_k is finite so it stays distinct from leftover-map axis {k} σ {value}, leftover axis {k} σ {value}, leftover map comparison leftover axis {k} σ {value}, leftover map comparison graphic leftover-map axis {k} σ {value}, and leftover map comparison graphic leftover-map axis {k} tick {value}. Rank-0 unused axes still name σ 0.00. Singular value omits independently of leftover-map axis share. Leftover-map graphic leftover-map axis ticks never name leftover-map axis share. Do not invent σ_k from leftover-map axis share. Never invent a leftover score. Never invent a theta.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31 12:23 KST. Writes work as seonghobae. Exact head 5218a5c (v2.84.0 / ADR 0327). Caption leftover-map graphic leftover-map axis ticks with persisted leftover-map singular values σ_k through leftoverMapPlotTickAxisBadge independently of leftover-map axis share. Distinct copy leftover-map axis {k} tick {value} σ {singular} when σ_k is finite. Rank-0 unused axes still name σ 0.00. Singular value omits independently of leftover-map axis share. Leftover-map graphic leftover-map axis ticks never name leftover-map axis share. 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.

@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: a8fd0f74-2042-4217-aeb7-b64ff0ef7a11

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.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31 12:23 KST. Writes work. Exact head 5218a5c (v2.84.0 / ADR 0327). Frontend oxlint 0/0, tsc -b, vitest 608 passed locally. Do not wait on Checks. Devin/Copilot COMMENTED is not independent APPROVE. Leave #868 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 comparison graphic leftover-map axis ticks naming persisted σ_k independently of leftover-map axis share (named helper leftoverMapComparePlotTickAxisBadge matching leftoverMapPlotTickAxisBadge / leftoverMapComparePlotAxisBadge / leftoverMapPlotAxisBadge / leftoverMapCompareAxisBadge / leftoverMapAxisBadge), 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.

@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 on lines +107 to +112
if (variant === "comparison") {
return tf(LEFTOVER_MAP_COMPARE_PLOT_TICK, { axis: axisIndex, value: tickLabel });
}
const leftoverSingular = leftoverSingularForAxis(leftoverMapAxes, axisIndex);
const badge = leftoverMapPlotTickAxisBadge(axisIndex, tickLabel, leftoverSingular);
return tf(badge.key, badge.values);

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: Comparison labels remain isolated

The comparison branch returns before singular-value lookup. Shared rendering therefore cannot leak the new report caption into comparison ticks.

Devin Review

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

Comment on lines +153 to +166
export function leftoverMapPlotTickAxisBadge(
axisIndex: number,
tickLabel: string,
leftoverSingular: number | null | undefined,
): LeftoverMapCompareAxisBadge {
const singular = formatLeftoverMapPlotAxisSingular(leftoverSingular);
if (singular === null) {
return { key: LEFTOVER_MAP_PLOT_TICK, values: { axis: axisIndex, value: tickLabel } };
}
return {
key: LEFTOVER_MAP_PLOT_TICK_SINGULAR,
values: { axis: axisIndex, value: tickLabel, singular },
};
}

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: Malformed singular values fail closed

formatLeftoverMapPlotAxisSingular rejects missing, negative, and non-finite values while preserving zero. The fallback retains the original tick caption.

Devin Review

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

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31T12:17KST: write-probe. Independent APPROVE required on exact head. Do not self-approve. Issues #79 and #87 stay open.

Copy link
Copy Markdown
Contributor Author

Independent review still required on exact head 5218a5c. Devin Review is COMMENTED, not APPROVE. Do not self-approve. Do not squash-merge onto the unprotected leftover base. GitHub Checks were in progress at comment time; do not wait on queued Checks in this loop. Issues #79 and #87 stay open.

Next buyer increment stacked locally: leftover-map comparison graphic leftover-map axis ticks with persisted leftover-map singular values σ_k as leftoverMapComparePlotTickAxisBadge (ADR 0328 / v2.85.0). Comparison graphic leftover-map axis ticks stay leftover map comparison graphic leftover-map axis {k} tick {value} σ {singular} when σ_k is finite, independently of leftover-map axis share, and stay distinct from leftover-map graphic leftover-map axis ticks leftover-map axis {k} tick {value} σ {singular} (ADR 0327).

Copy link
Copy Markdown
Contributor Author

Stacked follow-on opened: #869 leftover-map comparison graphic leftover-map axis ticks with persisted leftover-map singular values σ_k as leftoverMapComparePlotTickAxisBadge (ADR 0328 / v2.85.0) @ 98a29e4 onto this head. This PR still needs independent APPROVE on exact head 5218a5c. Do not self-approve. Do not squash-merge.

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