Skip to content

test(reports): reconstruct #878 comparison criterion-coordinate contract - #1033

Draft
seonghobae wants to merge 38 commits into
feat/leftover-map-plot-criterion-coordinates-v2920from
repair/leftover-map-compare-plot-criterion-coordinates-v2930
Draft

seonghobae wants to merge 38 commits into
feat/leftover-map-plot-criterion-coordinates-v2920from
repair/leftover-map-compare-plot-criterion-coordinates-v2930

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

Current exact authority — 2026-09-21

This reconstruction preserves the stronger comparison criterion-coordinate/tick-evidence contracts on the repaired report ancestry. The current head directly inherits #876 and, through current #861 69bdb2fc..., retains the exact σ+share App expectation repair, right-bounded axis captions, responsive screenshot evidence, and numeric tick identity. The historical Tests 35449469635 Vitest mismatch belonged to predecessor dc9efcb0... and remains causal history only; it is no longer a current source contradiction.

#1034 inherits this exact head by ordinary/non-force ancestry and carries only its four post-coordinate/accessibility deltas. Fresh exact-head repository/browser/accessibility/security evidence and independent review remain required; no predecessor receipt transfers.

…on graphic leftover-map criterion markers independently of leftover-map post ξ markers (v2.93.0)

Caption leftover-map comparison graphic leftover-map criterion markers with persisted leftover-map item coordinates through leftoverMapComparePlotCriterionBadge independently of leftover-map post ξ markers (ADR 0336). Rank-0 unused axes still name leftover-map item coordinates (0.00, 0.00). A missing or non-finite leftover-map item coordinate pair omits independently of leftover-map post ξ. Do not invent leftover-map item coordinates from leftover-map post ξ. UI-only; no SQL; never invent a leftover score or a theta.
@coderabbitai

coderabbitai Bot commented Sep 12, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 51f83e28-9f6b-4181-a8af-fee8be10657a

📥 Commits

Reviewing files that changed from the base of the PR and between d8b7f42 and 1b3ce95.

📒 Files selected for processing (3)
  • frontend/src/components/LeftoverMapPlot.tsx
  • frontend/src/leftoverMapPlotLayout.ts
  • tests/test_grouping_comparison_graphic_criterion_item_coordinate_contract.py

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

비교 그래픽에 전용 기준 배지 생성기를 추가했습니다. 비교 변형은 생성된 배지를 우선 사용하고, 좌표가 없으면 기존 표시를 유지합니다. 접근성 이름 규칙과 관련 소스 계약 테스트도 갱신했습니다.

Changes

비교 기준 배지

Layer / File(s) Summary
비교 기준 배지 계약과 연결
frontend/src/leftoverMapPlotLayout.ts, frontend/src/components/LeftoverMapPlot.tsx
비교 전용 캡션 상수와 배지 생성기를 추가했습니다. 좌표 쌍이 없으면 null을 반환합니다. 비교 변형은 배지가 있으면 이를 사용하고, 없으면 기존 Criterion ζ와 marker label을 사용합니다.
접근성 이름과 계약 검증
frontend/src/components/LeftoverMapPlot.tsx, tests/test_grouping_comparison_graphic_criterion_item_coordinate_contract.py
report와 comparison criterion marker의 접근성 이름 규칙을 분리했습니다. 테스트는 캡션 키, 비교 배지 사용, 좌표 전달, null 처리, person-axis 추론 제외를 확인합니다.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 1b3ce

The comparison graphic now exposes its criterion coordinates through a dedicated accessible label while preserving safe behavior for absent or invalid coordinates. No actionable current-head risk remains.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 비교 criterion-coordinate contract 재구축이라는 PR의 주요 변경을 명확하게 설명합니다. test(reports) 범위와 이슈 번호도 변경 내용과 관련됩니다.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch repair/leftover-map-compare-plot-criterion-coordinates-v2930

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.

Ordinary non-force ancestry adoption. Preserve #1033 reconstructed comparison criterion-coordinate contract and historical #878 product ancestry.

Copy link
Copy Markdown
Contributor Author

Reconstruction authority has moved non-force with its live parent. Exact head is now 6db5cb714f58050e6a70c67618ca52fcdda3b41b, based on repaired #876 259e2d1ad8545bda75873a15c9e1b0de13996e4f. The reconstructed #878 comparison criterion-coordinate contract and historical #878 product ancestry are preserved; the stale full historical tree is still not replayed. #1034 was subsequently converged from this exact head. No ancestor validation receipt transfers; remain Draft pending fresh gates.

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

Please review the complete current diff from base d8b7f420bfb651f535c1b378b3d33ea71a6683a2 through exact head 1b3ce95e7b3850f4dd48ff883bc6c2da83319321. Focus on the comparison-criterion boundary: distinct comparison naming, ζ derived only from the marker's persisted finite item-axis pair via formatLeftoverMapCoordinatePair, zero preservation, fail-closed invalid coordinates, no ξ/geometry/distance/rank inference, and no regression to the report criterion action. This does not replace required repository/security/browser gates.

@coderabbitai

coderabbitai Bot commented Sep 15, 2026 •

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='d8b7f420bfb651f535c1b378b3d33ea71a6683a2'
head='1b3ce95e7b3850f4dd48ff883bc6c2da83319321'

git rev-parse --verify "${base}^{commit}"
git rev-parse --verify "${head}^{commit}"

printf '\n== Changed files and diffstat ==\n'
git diff --stat "$base" "$head"
git diff --name-status "$base" "$head"

printf '\n== Complete diff ==\n'
git diff --find-renames --find-copies --no-ext-diff "$base" "$head"

printf '\n== Coordinate/action references at exact head ==\n'
git grep -n -I -E 'formatLeftoverMapCoordinatePair|leftoverMapComparePlotCriterionBadge|leftoverMapPlotCriterionBadge|leftover map comparison graphic leftover-map criterion|ζ|zeta|coordinate' "$head" -- ':!node_modules' ':!dist' ':!build' || true

Length of output: 240592


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== Coordinate formatter =='
sed -n '1,65p' frontend/src/leftoverMapCoordinates.ts

printf '%s\n' '== Layout helpers and imports =='
sed -n '1,85p' frontend/src/leftoverMapPlotLayout.ts

printf '%s\n' '== Criterion text and component interfaces =='
sed -n '1,190p' frontend/src/components/LeftoverMapPlot.tsx

printf '%s\n' '== Translation helper definitions and fallback behavior =='
rg -n -A18 -B8 -P '\bfunction\s+(?:t|tf)\b|\bconst\s+(?:t|tf)\b|\b(?:t|tf)\s*=' frontend/src frontend/src/components -g '*.ts' -g '*.tsx' | head -240

printf '%s\n' '== Existing LeftoverMapPlot comparison tests =='
rg -n -A18 -B8 -P '\bcomparison\b|Criterion ζ|leftover map comparison graphic leftover-map criterion' frontend/src/components/LeftoverMapPlot.test.tsx frontend/src/leftoverMapPlotLayout.test.ts || true

printf '%s\n' '== New action-key translation entries =='
rg -n -F 'leftover map comparison graphic leftover-map criterion {label} at ζ {item}' frontend/src/i18n.ts frontend/src/i18n.test.ts || true

Length of output: 179005


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== Signed formatter =='
rg -n -A25 -B8 -P '\bfunction\s+formatSignedLeftoverValue\b' frontend/src/leftoverMapUnexplained.ts

printf '%s\n' '== Criterion marker render path =='
sed -n '470,555p' frontend/src/components/LeftoverMapPlot.tsx

printf '%s\n' '== Direct tests for criterion marker action names =='
rg -n -A12 -B8 -P 'criterion.*(?:marker|accessible|label)|getByLabelText\(.*criterion|LEFTOVER_MAP_(?:COMPARE_)?PLOT_CRITERION|leftoverMap(?:Compare)?PlotCriterionBadge' \
  frontend/src/components/LeftoverMapPlot.test.tsx frontend/src/leftoverMapPlotLayout.test.ts \
  frontend/src/leftoverMapCoordinates.test.ts || true

printf '%s\n' '== Complete modification line numbers =='
git diff --unified=0 d8b7f420bfb651f535c1b378b3d33ea71a6683a2 1b3ce95e7b3850f4dd48ff883bc6c2da83319321 -- \
  frontend/src/components/LeftoverMapPlot.tsx frontend/src/leftoverMapPlotLayout.ts \
  tests/test_grouping_comparison_graphic_criterion_item_coordinate_contract.py

Length of output: 10428


@seonghobae Full review complete for d8b7f420bfb651f535c1b378b3d33ea71a6683a2..1b3ce95e7b3850f4dd48ff883bc6c2da83319321.

I found no blocking issues in the inspected diff.

The comparison criterion marker now has a distinct action key. The comparison path uses leftoverMapComparePlotCriterionBadge. That helper reads only the persisted item-axis pair through formatLeftoverMapCoordinatePair.

The formatter rejects nullish and non-finite coordinates. It preserves finite zero coordinates as 0.00. The changed path does not infer ζ from ξ, geometry, distance, rank, coverage, or neighboring values. The report criterion action remains separate.

I did not run repository, security, browser, accessibility, or performance gates. Keep the PR in Draft until those fresh exact-head checks and qualifying independent approval are available.

✅ Action performed

Full review finished.

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

Re-review the complete current diff from base 7fbcc5e326ce168b95182784284c97a539639244 through exact head e4146b5c88caac94968da67976ca0f8973186aae. The parent i18n/a11y finding is now inherited, and this head also avoids an untranslated comparison-only key by composing the existing localized comparison-graphic label plus localized Criterion ζ with persisted ζ. Verify distinct report/comparison naming, persisted finite item axes only, zero preservation, fail-closed invalid pairs, no ξ/geometry/distance/rank inference, and no new static translation debt. Required repository/security/browser gates remain separate.

@coderabbitai

coderabbitai Bot commented Sep 15, 2026 •

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='7fbcc5e326ce168b95182784284c97a539639244'
head='e4146b5c88caac94968da67976ca0f8973186aae'

git rev-parse --verify "${base}^{commit}"
git rev-parse --verify "${head}^{commit}"

printf '%s\n' '== Changed files and diffstat =='
git diff --stat "$base" "$head"
git diff --name-status "$base" "$head"

printf '%s\n' '== Complete diff =='
git diff --find-renames --find-copies --no-ext-diff "$base" "$head"

printf '%s\n' '== Relevant files at requested head =='
git ls-tree -r --name-only "$head" | rg '(^|/)(LeftoverMapPlot\.tsx|leftoverMapPlotLayout\.ts|leftoverMapCoordinates\.ts|i18n\.ts|.*[Tt]est.*\.(ts|tsx|py))$' | head -250

printf '%s\n' '== Relevant identifiers at requested head =='
git grep -n -I -E 'leftoverMapComparePlotCriterionBadge|leftoverMapPlotCriterionBadge|formatLeftoverMapCoordinatePair|LEFTOVER_MAP_(COMPARE_)?PLOT_CRITERION|Criterion ζ|comparison graphic|leftover_map_person_axis|Math\.(sqrt|abs)|coordinate' "$head" -- 'frontend' 'tests' || true

printf '%s\n' '== Commit ancestry =='
git merge-base --is-ancestor "$base" "$head" && echo 'base is an ancestor of head' || echo 'base is NOT an ancestor of head'
git log --oneline --decorate -12 "$base..$head"

Length of output: 160431


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='e4146b5c88caac94968da67976ca0f8973186aae'

printf '%s\n' '== Coordinate formatter =='
git show "$head:frontend/src/leftoverMapCoordinates.ts" | nl -ba | sed -n '1,70p'

printf '%s\n' '== Layout criterion helpers and marker construction =='
git show "$head:frontend/src/leftoverMapPlotLayout.ts" | nl -ba | sed -n '1,80p'
git show "$head:frontend/src/leftoverMapPlotLayout.ts" | nl -ba | sed -n '200,245p'
git show "$head:frontend/src/leftoverMapPlotLayout.ts" | nl -ba | sed -n '360,430p'

printf '%s\n' '== Component criterion text and render path =='
git show "$head:frontend/src/components/LeftoverMapPlot.tsx" | nl -ba | sed -n '80,120p'
git show "$head:frontend/src/components/LeftoverMapPlot.tsx" | nl -ba | sed -n '270,310p'
git show "$head:frontend/src/components/LeftoverMapPlot.tsx" | nl -ba | sed -n '490,545p'

printf '%s\n' '== All runtime references to comparison criterion static key =='
git grep -n -I -F 'LEFTOVER_MAP_COMPARE_PLOT_CRITERION' "$head" -- 'frontend' 'tests' || true

printf '%s\n' '== Translation API behavior =='
git show "$head:frontend/src/i18n.ts" | nl -ba | sed -n '1,90p'
git show "$head:frontend/src/i18n.ts" | rg -n -A14 -B5 'export function (t|tf)|function (t|tf)|const (t|tf)' | head -180

printf '%s\n' '== Criterion tests and changed executable contract =='
git show "$head:frontend/src/components/LeftoverMapPlot.test.tsx" | rg -n -A22 -B8 'criterion|Criterion ζ|non-finite.*item|item.*non-finite|item.*coordinate' | tail -300
git show "$head:tests/test_grouping_comparison_graphic_criterion_item_coordinate_contract.py" | nl -ba
git show "$head:tests/test_leftover_map_report_criterion_item_coordinate_contract.py" | nl -ba

printf '%s\n' '== Dynamic translation calls in changed files =='
git show "$head:frontend/src/components/LeftoverMapPlot.tsx" | rg -n '\b(t|tf)\('
git show "$head:frontend/src/leftoverMapPlotLayout.ts" | rg -n '\b(t|tf)\(' || true

Length of output: 45932


@seonghobae: Full re-review is complete for 7fbcc5e326ce168b95182784284c97a539639244..e4146b5c88caac94968da67976ca0f8973186aae.

I found no blocking issues in the inspected diff.

The comparison marker uses leftoverMapComparePlotCriterionBadge. The report marker continues to use leftoverMapPlotCriterionBadge. The accessible names are distinct.

The comparison helper derives ζ only with formatLeftoverMapCoordinatePair(axis1, axis2). It returns null for nullish or non-finite coordinates. The formatter preserves a finite zero pair as (0.00, 0.00).

The comparison path does not use ξ, geometry, distance, rank, coverage, or neighboring values to derive ζ.

The comparison accessible name composes the existing localized LEFTOVER_MAP_COMPARE_PLOT_LABEL and localized "Criterion ζ" values with the persisted ζ pair. LEFTOVER_MAP_COMPARE_PLOT_CRITERION is not passed to t or tf at runtime. I found no new untranslated runtime key.

I did not run repository, security, browser, accessibility, or performance gates. These gates remain required separately.

⚠️ Action not completed

Review rate limited.


Your included review limit is currently reached under our Fair Usage Limits Policy. This review may still proceed through usage-based billing if eligible. Your next included review will be available in 50 minutes.

seonghobae added a commit that referenced this pull request Sep 17, 2026
seonghobae added a commit that referenced this pull request Sep 18, 2026
seonghobae added a commit that referenced this pull request Sep 20, 2026

This branch has not been deployed

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

Labels

bug Something isn't working priority: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant