Skip to content

feat(reports): leftover-map singular values on leftover-axis report badges independently of leftover-map axis share (v2.82.0) - #866

Merged
seonghobae merged 25 commits into
feat/leftover-map-plot-axis-singular-v2810from
feat/leftover-map-axis-singular-only-v2820
Sep 20, 2026
Merged

seonghobae merged 25 commits into
feat/leftover-map-plot-axis-singular-v2810from
feat/leftover-map-axis-singular-only-v2820

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 31, 2026 •

Copy link
Copy Markdown
Contributor

Final authority — merged 2026-09-20

This lane owned the report-axis singular-only contract repair: three-state copy (share only, singular only, singular+share), independent formatter delegation, and no σ/share derivation. Its valid product/test/ADR/CHANGELOG delta is now materially present in #865; this is not a simple Close or successor substitution.

The former child #867 has been retargeted from this closed branch to active #865 after verifying #865 a51b0ec... is its exact merge-base and behind_by=0. Pre-merge workflow receipts do not transfer to #865 or descendants.

…adges independently of leftover-map axis share (v2.82.0)

Caption leftover-axis report badges with persisted leftover-map singular
values σ_k independently of leftover-map axis share (ADR 0325). Period
leftover-axis copy stays leftover axis {k} σ {value} when share is omitted
so it stays distinct from leftover-axis leftover axis {k} σ {value} {share}%,
from hyphen leftover-map axis {k} σ {value}, from comparison leftover-axis
leftover map comparison leftover axis {k} σ {value}, and from comparison
graphic leftover map comparison graphic leftover-map 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

Review Change StackReview Change Stack

📝 Walkthrough

Walkthrough

남은 축 배지가 singular 값과 share 값의 유무를 독립적으로 처리합니다. share가 없으면 singular-only 배지를 생성하고, 유효하지 않은 값은 표시하지 않습니다. 관련 테스트, ADR, 변경 로그를 추가했습니다.

Changes

남은 축 배지 투영

Layer / File(s) Summary
배지 상태 및 포매팅 구현
frontend/src/leftoverMapAxisBadge.ts
share 포매팅이 공용 헬퍼를 사용합니다. singular-only 템플릿과 배지 타입을 추가했습니다. singular 값과 share 값에 따라 combined, singular-only, share-only, empty 상태를 생성합니다.
배지 계약 및 문서 검증
frontend/src/leftoverMapAxisBadge.test.ts, tests/test_leftover_axis_report_singular_only_contract.py, docs/adr/0325-leftover-map-report-axis-singular-only.md, CHANGELOG.d/2.82.0-leftover-map-axis-singular-only.md
템플릿, 비유한 share 처리, 네 가지 배지 상태를 검증합니다. ADR과 변경 로그에 투영 규칙을 기록합니다.

Priority: ⬇️ Low

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

Change: Feature

Merge Risk: 🔵 Low · up to c2676

Reports can show an empty leftover-axis badge when neither persisted value is usable. Route rendering through the new projection before merging.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 83.33% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 3 files. (2 skipped: 2 u…
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 제목은 leftover-axis report badge에 leftover-map singular value를 axis share와 독립적으로 표시하는 주요 변경을 정확하게 설명합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/leftover-map-axis-singular-only-v2820

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 11:16 KST. Writes work as seonghobae. Exact head 593b8d8 (v2.82.0 / ADR 0325). Caption leftover-axis report badges with persisted leftover-map singular values σ_k independently of leftover-map axis share. Distinct copy leftover 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.

@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: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31 11:16 KST. Writes work. Exact head 593b8d8 (v2.82.0 / ADR 0325). Frontend oxlint 0/0, tsc -b, vitest 514 passed locally. Do not wait on Checks. Devin/Copilot COMMENTED is not independent APPROVE. Leave #866 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 leftover-map singular values as leftoverMapComparePlotAxisBadge (named helper matching leftoverMapPlotAxisBadge / leftoverMapCompareAxisBadge / leftoverMapAxisBadge), or leftover-map 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.

Adopt exact reconstructed #865 as the current tree while preserving historical #866 as first parent. Retain the v2.82 singular-only product delta as executable RED: a valid persisted σ must remain visible when share is absent, σ/share missingness stays independent, and neither value may be inferred from the other. Exact #865 is the second parent. No force update or destructive rebase.
seonghobae added a commit that referenced this pull request Sep 10, 2026
Adopt exact reconstructed #866 as the current tree while preserving historical #867 as first parent. Retain the v2.83 product delta as executable RED: comparison-graphic axes must preserve persisted σ when share is missing and keep σ/share states independent, without inference or clamping. Exact #866 is the second parent. No force update or destructive rebase.
…rent

Adopt exact converged #865 head 88e88b2 without force-updating or replaying stale historical source. Preserve the existing #866 reconstruction as first parent, retain its singular-only report-badge RED unchanged, and take the converged parent tree as the second parent.
seonghobae added a commit that referenced this pull request Sep 11, 2026
Adopt exact converged #866 head 265e91e without force-updating or replaying stale historical source. Preserve the existing #867 reconstruction as first parent, retain its comparison-graphic axis-badge RED unchanged, and take the converged parent tree as the second parent.
…parent

Adopt exact converged #865 head 1705a96 without force-updating or replaying stale source. Preserve the existing #866 convergence as first parent, retain its singular-only report-badge RED unchanged, and take the updated parent tree as second parent.
seonghobae added a commit that referenced this pull request Sep 11, 2026
…ed parent

Adopt exact converged #866 head e26f523 without force-updating or replaying stale source. Preserve the existing #867 convergence as first parent, retain its comparison-graphic axis-badge RED unchanged, and take the updated parent tree as second parent.
chore(stack): converge #866 onto repaired #865 head
seonghobae added a commit that referenced this pull request Sep 12, 2026
chore(stack): converge #867 onto repaired #866 head
Ordinary non-force ancestry adoption. Preserve #866 report-axis singular-only contract delta while inheriting repaired comparison-distance assertions.
Ordinary non-force ancestry adoption. Preserve the #866 singular-only report-axis contract while inheriting the repaired singular projection chain.
seonghobae added a commit that referenced this pull request Sep 15, 2026
Ordinary non-force ancestry adoption. Preserve the #867 comparison-graphic axis badge contract while inheriting the repaired singular projection chain.
Ordinary non-force ancestry adoption. Preserve the #866 report-axis singular-only contract as the local delta while inheriting the repaired report-axis singular foundation through #865.
seonghobae added a commit that referenced this pull request Sep 15, 2026
Ordinary non-force ancestry adoption. Preserve the #867 comparison-graphic axis-badge contract as the local delta while inheriting the repaired report-axis singular foundation through #866.
seonghobae added a commit that referenced this pull request Sep 15, 2026
This was referenced Sep 15, 2026
github-actions Bot added a commit that referenced this pull request Sep 15, 2026

@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.

Current-head RCA closes the automation ambiguity but not the product RED. Run 35016883619 checked out the predecessor RED, confirmed it, staged the correct minimal App.tsx change, and then failed only because the older contract required comma-sensitive import punctuation; commit/push was skipped. Concurrent ordinary commit 047cefc5b439cf4f4c8e33ca0585ac4b4ca26a3b repairs that harness only. Current App.tsx still bypasses leftoverMapAxisBadge(axis), so the executable contract remains RED and the buyer-visible empty-badge defect remains. Apply the already-proven minimal consumer change against exact 047cefc5...: import leftoverMapAxisBadge, map each axis through it, return null for a null projection, otherwise render tf(badge.template, badge.values). Do not alter helper semantics or thresholds.

assert "badge === null ? null" in app_source
assert "tf(badge.template, badge.values)" in app_source
assert "leftoverMapAxisBadgeShare" not in app_source
assert "leftoverMapAxisBadgeSingular" not in app_source

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.

This exact-head contract is now intentionally semantic rather than comma-sensitive, but production App.tsx is still RED. The earlier one-shot run already demonstrated the causal patch in-workspace; it never pushed because the predecessor test itself rejected import punctuation. Please apply only that consumer repair now: use leftoverMapAxisBadge(axis), omit null projections, and render tf(badge.template, badge.values) otherwise. Preserve all existing helper behavior.

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.

@coderabbitai autofix

@coderabbitai

coderabbitai Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

Rate Limit Exceeded. @seonghobae has exceeded the limit for autofix commands. Please wait 13 minutes and 41 seconds before requesting another autofix run.

Copy link
Copy Markdown
Contributor Author

Current repair-writer authority after the harness-only head movement:

  • product target remains exact 047cefc5b439cf4f4c8e33ca0585ac4b4ca26a3b; App.tsx is still the executable buyer-path RED and no staged workspace patch is source evidence;
  • predecessor repair 35016883619 is terminal failure after staging the intended consumer patch but failing the old comma-sensitive GREEN assertion, so commit/push did not occur;
  • sole retargeted exact-head writer is run 35038331683, job 104612365030, on auxiliary head 725b8e89b20539860f176e93e7269c2c52a22d28;
  • the job is still pre-runner queued with labels=[ubuntu-latest], runner_id=0, empty runner identity and steps=[].

Do not add a competing source writer, no-op wake commit, blind rerun, or runs-on change while this exact-head-guarded writer is current. If the target moves legitimately first, the guard should fail closed and descendants must be reconverged ordinary/non-force from the new exact parent. Queue-owner evidence is refreshed on ContextualWisdomLab/.github#712 comment 5690833066.

seonghobae added a commit that referenced this pull request Sep 16, 2026
@seonghobae
seonghobae merged commit a51b0ec into feat/leftover-map-plot-axis-singular-v2810 Sep 20, 2026
3 of 4 checks passed
seonghobae added a commit that referenced this pull request Sep 20, 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