Skip to content

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

Draft
seonghobae wants to merge 4 commits into
feat/leftover-map-compare-plot-tick-share-badge-v2880from
feat/leftover-map-plot-tick-share-badge-v2890
Draft

feat(reports): leftover-map axis share on leftover-map graphic leftover-map axis ticks independently of leftover-map singular values (v2.89.0)#873
seonghobae wants to merge 4 commits into
feat/leftover-map-compare-plot-tick-share-badge-v2880from
feat/leftover-map-plot-tick-share-badge-v2890

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Caption leftover-map graphic axis ticks with persisted leftover-map axis share through leftoverMapPlotTickAxisBadge independently of persisted singular-value evidence (ADR 0332 / v2.89.0).
  • Finite share may appear with or without finite σ_k; missing/non-finite share omits only share. Rank-0 unused axes retain 0%.
  • Do not infer share from σ_k or σ_k from share. UI-only; no SQL or new columns; never invent a leftover score or theta.

Current exact authority

Preserved local delta

  • leftoverMapPlotAxisSingular.test.ts: finite/rank-0 share, independent σ omission, invalid share omission, and comparison-tick distinctness.
  • LeftoverMapPlot.test.tsx and App.test.tsx: report-graphic tick share while comparison graphics remain distinct.
  • i18n.test.ts: ko/zh/ja/vi share and singular-share tick keys.

The inherited #859 consumer-test RED remains unresolved on this ancestry: comparison-only distance assertions in LeftoverMapPlot.test.tsx still demand the report accessible name while production intentionally composes the localized comparison-graphic and generic distance labels. Do not revert the localized production name or introduce a comparison-only static translation key.

Fresh exact-head repository/security/browser-a11y/performance evidence plus qualifying independent approval remain required before promotion. No self-approval, bypass, force-push, destructive rebase, stale feature-branch retarget, or stale-evidence transfer.

…er-map axis ticks independently of leftover-map singular values (v2.89.0)

Caption leftover-map graphic leftover-map axis ticks with persisted leftover-map axis share through leftoverMapPlotTickAxisBadge independently of leftover-map singular values (ADR 0332). Share and σ omit independently. Rank-0 unused axes still name leftover-map axis share 0%. Leftover-map comparison leftover-axis ticks and leftover-axis ticks stay σ-only. Do not invent leftover-map axis share from σ_k. Do not invent σ_k from leftover-map axis share. Never invent a leftover score or a theta. No new columns.
@coderabbitai

coderabbitai Bot commented Aug 31, 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

Leave open for independent APPROVE. Do not self-approve. Frontend lint and leftover-map + App tests are green (677 passed, oxlint 0, tsc -b). After independent review, retarget onto leftover-coordinates rather than squash-merging onto the leftover base. Issues #79 and #87 stay open. Do not merge #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 3 potential issues.

Devin Review

Comment on lines +196 to +200
leftoverShare?: number | null,
): LeftoverMapCompareAxisBadge {
const singular = formatLeftoverMapPlotAxisSingular(leftoverSingular);
if (singular === null) {
const percent = formatLeftoverMapPlotAxisShare(leftoverShare);
if (singular === null && percent === null) {

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: Existing callers preserve old labels

An omitted leftoverShare formats as null. Existing three-argument calls therefore retain coordinate-only or singular-only labels.

Devin Review

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

Comment on lines +115 to +118
);
return tf(badge.key, badge.values);
}
const badge = leftoverMapPlotTickAxisBadge(axisIndex, tickLabel, leftoverSingular);
const badge = leftoverMapPlotTickAxisBadge(axisIndex, tickLabel, leftoverSingular, leftoverShare);

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 still uses leftoverMapComparePlotTickAxisBadge. Only report plots pass the share into leftoverMapPlotTickAxisBadge.

(Refers to this code)

Devin Review

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

Comment on lines +198 to +206
const singular = formatLeftoverMapPlotAxisSingular(leftoverSingular);
if (singular === null) {
const percent = formatLeftoverMapPlotAxisShare(leftoverShare);
if (singular === null && percent === null) {
return { key: LEFTOVER_MAP_PLOT_TICK, values: { axis: axisIndex, value: tickLabel } };
}
if (singular === null && percent !== null) {
return {
key: LEFTOVER_MAP_PLOT_TICK_SHARE,
values: { axis: axisIndex, value: tickLabel, share: percent },

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: Zero share remains visible

The shared formatter rejects only null and non-finite values. A persisted zero therefore renders as 0% instead of disappearing.

Devin Review

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

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31T05:35Z: writes retry on #873. Devin's three notes (omitted leftoverShare keeps 3-arg σ-only labels; comparison ticks stay leftoverMapComparePlotTickAxisBadge; rank-0 share 0% remains visible) match ADR 0332 and are not defects. Independent APPROVE still required. Do not self-approve. Do not squash leftover stack onto unprotected leftover base. Next stacked increment is leftover-map comparison leftover-axis ticks with leftover-map axis share independently of leftover-map singular values (leftoverMapCompareAxisTickBadge, v2.90.0 / ADR 0333) onto this head. Issues #79 and #87 stay open. Do not merge #808 without independent APPROVE.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Leave open for independent APPROVE. Do not self-approve. Devin infos match ADR 0332 (share omits independently; comparison ticks stay on leftoverMapComparePlotTickAxisBadge; rank-0 share 0% remains). After independent review, retarget onto leftover-coordinates rather than squash-merging onto the leftover base. Issues #79 and #87 stay open. Do not merge #808 without independent APPROVE.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31 14:40 KST: leftover-map graphic leftover-map axis tick leftover-map axis share (ADR 0332 / v2.89.0) remains MERGEABLE at 923bcfe with Frontend lint SUCCESS and Full test suite SUCCESS. Independent APPROVE still required. Do not self-approve. Do not squash-merge. #874 (v2.90.0) is stacked on this head. Issues #79 and #87 stay open. Do not merge #808.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31 15:24 KST: leave open for independent APPROVE. Devin COMMENT is not independent APPROVE. Do not self-approve. Do not squash-merge. Stacked #874 (ADR 0333) remains MERGEABLE at ba58c21. Next increment ADR 0334 names leftover-axis ticks leftover-map axis share as leftoverMapAxisTickBadge independently of leftover-map singular values. Issues #79 and #87 stay open.

Copy link
Copy Markdown
Contributor Author

Cycle note (2026-08-31 15:24 KST): stacked leftover-map PRs stay open. #874 (v2.90.0 / ADR 0333) is green with Devin COMMENT only — not independent APPROVE. Next increment ADR 0334 leftover-axis ticks leftover-map axis share as leftoverMapAxisTickBadge stacks onto #874. Do not self-approve. Do not squash-merge.

@seonghobae
seonghobae marked this pull request as draft September 4, 2026 08:04
Adopt exact reconstructed #872 as the repaired tree while preserving historical #873 as first parent. Retain v2.89 intent as an executable RED only: report-graphic ticks must expose persisted axis share independently of singular evidence, preserve finite zero, omit invalid evidence, and never infer share from singular values. No force update or stale source replay.
seonghobae added a commit that referenced this pull request Sep 11, 2026
Adopt exact reconstructed #873 as the repaired tree while preserving historical #874 as first parent. Retain v2.90 intent as an executable RED only: comparison-strip ticks must expose persisted axis share independently of singular evidence, preserve finite zero, omit invalid evidence, and never infer share from singular values. No force update or stale source replay.
chore(stack): converge #873 onto repaired #872 head
seonghobae added a commit that referenced this pull request Sep 12, 2026
chore(stack): converge #874 onto repaired #873 head
seonghobae added a commit that referenced this pull request Sep 12, 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