Skip to content

feat(reports): preserve grouping comparison unexplained-share delta for serialized successor - #829

Draft
seonghobae wants to merge 5 commits into
feat/leftover-map-compare-axis-share-v2500from
feat/leftover-map-compare-unexplained-share-v2520
Draft

feat(reports): preserve grouping comparison unexplained-share delta for serialized successor#829
seonghobae wants to merge 5 commits into
feat/leftover-map-compare-axis-share-v2500from
feat/leftover-map-compare-unexplained-share-v2520

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Preserve the grouping-comparison persisted unexplained-leftover-share s = U² / R² as the serialized successor of #828 and carry that persisted field through the authorized comparison read model. Missing/non-finite s omits only that metric; finite zero and values above 1 remain explicit and are never clamped. No new measurement authority, theta, derived score, or schema column.

Current serialized authority

The current head is a non-destructive convergence of the distinct #829 unexplained-share/read-model/ADR/release delta onto exact #828. This ancestry is current, but it is not acceptance GREEN.

Verified #829 causal repair

Earlier run 34160813983 reproduced the real missing-SELECT defect on a prior parent and applied the minimum leftover_map_unexplained_share SELECT/serialization repair. Focused tests, complete backend tests, authenticated PostgreSQL/Keycloak/Valkey comparison acceptance, frontend lint/test/build/Storybook, and narrow product-delta inspection passed on that prior candidate. Those receipts establish the causal delta but do not transfer to current cad63ed... or across the pending #828 source movement.

Inherited #828 owner RED

#828 exact 1472d98... contains the merged dedicated axis-share accessibility regression and exact product-head run 34180159005 proves its generic <span> still carries an author aria-label. Fresh owner review also found the #828 repair boundary was incomplete: Proposed ADR0367 and the v2.54.0 changelog still require/claim distinct accessible naming, so the parent repair must update source, stale visible-text regression, normative ADR/changelog, and any dead label resource together. A synthetic role is not an acceptable shortcut.

Therefore this PR stays Draft. After #828 advances to its repaired exact head, converge #829 non-force again and recollect exact-product evidence; no predecessor or current-parent receipt transfers.

Product invariants

  • Persisted leftover_map_unexplained_share is transported from PostgreSQL through fetch_period_comparison and the authenticated comparison endpoint; it is not recomputed in the read model or frontend.
  • SQL NULL / missing or non-finite presentation input omits only the comparison unexplained-share badge and accessible-name suffix.
  • Finite zero remains U²/R² 0.00; finite values above 1 remain visible rather than clamped.
  • Never derive s from U, R, distance, plotted coordinates, reconstruction, residual, explained share, rank, coverage counts, or unused-axis count.
  • A finite persisted metric inside an actionable comparison pair must be present in that button's accessible name; duplicate visual text must not become a second accessibility-tree announcement.
  • Preserve whole-population authorization for persisted grouping aggregates; never rebuild hidden-population psychometric truth over a caller-visible subset.

Descendant boundary

#830 currently resolves to exact #829 cad63ed... and head 367498ed59396f490ce9b475175d748f7c43fc31; #831 resolves to exact #830 but remains Draft/conflicting at historical product head 8a12062cd8efef0c99abe794ef3e9f8dcbc31617. After repaired #828, reconverge this PR first, then #830, then reconstruct #831. Canonical KO/EN/JA/ZH/VI/ES/DE/FR translation-ledger authority remains #922/#929/#932.

Keep Draft until repaired #828 is adopted, this head is freshly converged and exact-product backend/frontend/build/Storybook/security receipts are current, rendered responsive/keyboard/focus/a11y evidence exists, applicable authenticated performance evidence exists, and qualifying independent review/governance conditions are satisfied. No synthetic status, self-approval, parent bypass, force-push, destructive rebase, no-op validation churn, or gate weakening.

…mparison strip (v2.52.0)

Caption persisted leftover-map unexplained leftover share s = U²/R² on
grouping comparison leftover-pair buttons through
formatLeftoverMapUnexplainedShare (ADR 0295). Distinct aria-label
Leftover map comparison unexplained leftover share. Missing or
non-finite s omits that badge and keeps e, R̂, d, and coverage notes.
Do not invent s from U and R. UI-only; no new columns.
@coderabbitai

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

Cycle probe 2026-08-31 ~00:45 KST. Writes work (comment/close/create-PR/push). Token still empty X-OAuth-Scopes; GitHub App Grok has contents/PR/issues write as seonghobae.

This PR (#829 / v2.52.0 / ADR 0295 / 4d82c28) captions persisted leftover-map unexplained leftover share s = U²/R² on grouping comparison leftover-pair buttons through formatLeftoverMapUnexplainedShare. Distinct aria-label Leftover map comparison unexplained leftover share. UI-only; no new columns. Missing or non-finite s omits that badge independently of e, , d, and coverage notes. Do not invent s from U and R.

Verification: pnpm exec vitest run src/leftoverMapUnexplainedShare.test.ts src/leftoverMapExplainedShare.test.ts src/leftoverMapReconstruction.test.ts src/i18n.test.ts src/App.test.tsx — 5 files, 303 passed. pnpm exec oxlint on changed frontend files — 0 warnings, 0 errors.

Leave open for independent review. Do not squash-merge onto the leftover base. Do not self-approve. Copilot review is not independent APPROVE. Stacked onto #827 @ ead81bd. Issues #79 and #87 stay open. #96 remains closed. Do not merge revert #808 without independent APPROVE.

Next buyer increment after this: leftover-map cross share x = 2R̂U/R² on the same grouping comparison leftover-pair buttons so e + s + x = 1 is strip-auditable.

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

Copilot review requested via GitHub App. Copilot review is not independent APPROVE. Leave this PR open.

@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 thread frontend/src/App.tsx

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

Parent-first/capacity finding: this Ready PR is a dependent increment on still-open #827, while the current leftover-map foundation #802 has not merged and #811 is Draft/conflicting. Preserve the v2.52.0 unexplained-share delta, but keep this child Draft until prerequisite convergence provides a legal protected-main path. No close, squash, or evidence transfer.

Preserve #829 ADR 0295/product delta while inheriting current #827 ancestry through a normal two-parent merge. No force-push or destructive rebase.
seonghobae added a commit that referenced this pull request Sep 5, 2026
Preserve #831 ADR 0296/product delta while inheriting current #829 ancestry through a normal two-parent merge. No force-push or destructive rebase.

@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 stack-authority finding: live base already equals #827 exact 8b3011b03777822a23af831b4fddcc06e7837019, but the PR body still cites obsolete parent ead81bd, predecessor verification, and historical retarget guidance. Preserve ADR 0295/product semantics and Draft state; make live parent/head/evidence authoritative and do not transfer predecessor tests.

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

Serialized-descendant finding: #825's reconstructed identity and #826/#827 collision repairs make this PR's historical ADR0295/v2.52.0 non-authoritative. Preserve the unexplained-share delta and exact historical ancestry as evidence, but do not promote that identity. After #825#826#827 converge, reconstruct from exact promoted #827 with an unclaimed ADR/release identity and inherited authorization/UI contracts.

@seonghobae seonghobae changed the title feat(reports): leftover-map unexplained leftover share on grouping comparison strip (v2.52.0) feat(reports): preserve grouping comparison unexplained-share delta for serialized successor Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

Fresh review finding on historical #829@118500f73251eaaf717d5329b8fb6d9895196fe7: valid accessibility defect, same causal class already repaired in #827. frontend/src/App.tsx gives each grouping-comparison pair button an explicit aria-label containing only pair title/criterion, while the persisted U²/R² value is rendered in a descendant span with its own aria-label. The explicit button label therefore suppresses the descendant metric from the actionable accessible name. Reconstructing this delta after #828 must append the localized unexplained-share label + formatted persisted value to the button's accessible name when finite, and mark the duplicate visible badge aria-hidden; missing/non-finite values must remain absent. This is a repair finding, not a reason to close the valid delta or copy #827 source wholesale.

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

Verified current historical-head accessibility finding for successor reconstruction. The grouping-comparison pair button sets an explicit aria-label to Open leftover … pair from comparison: <title> · <criterion>, while the persisted unexplained-share value is rendered only inside a descendant badge with its own aria-label. Because the button already has an explicit accessible name, that descendant metric is not part of the actionable name. Preserve the valid unexplained-share delta, but on reconstruction after exact promoted #828 append the localized unexplained-share label and finite persisted value to the button name and make the duplicate visual badge non-name-bearing (aria-hidden). Add a regression that locates the button by an accessible name containing the persisted U²/R² value. Missing/non-finite share must remain absent; do not derive or clamp psychometric truth.

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

r3 run 34096383373 is a harness RED, not a product-conflict RED. Exact #828/live-head verification passed, then reconstruction exited before dependency setup. The failing guard quotes the i18n semantic key as grep -c '"'Leftover map comparison unexplained leftover share'"' ...; Bash splits the unquoted spaces into additional grep operands, so the guard exits 2 even when reconstruction is valid. Repair by replacing this shell-quoting assertion with a semantic Python count/assertion, start again from exact #828, and do not reuse failed staging. Preserve the planned realistic accessible-name RED, minimal parent-name/duplicate-badge fix, full exact-head GREEN, and non-force product promotion only after live-head re-verification.

…urrent stack

Preserve valid historical #829 delta on exact #828, repair actionable naming, and allocate ADR0369/v2.55.0 without rewriting history.
seonghobae added a commit that referenced this pull request Sep 7, 2026
seonghobae added a commit that referenced this pull request Sep 7, 2026
github-actions Bot pushed a commit that referenced this pull request Sep 7, 2026
… current stack

Preserve the valid historical #830 delta on exact #829; consume only persisted singular values, accept the persisted field as optional at the read boundary, and keep share/singular omission independent.
seonghobae added a commit that referenced this pull request Sep 7, 2026
seonghobae added a commit that referenced this pull request Sep 7, 2026
seonghobae added a commit that referenced this pull request Sep 8, 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