feat(reports): leftover expected on pair segments (v2.36.0) - #810
feat(reports): leftover expected on pair segments (v2.36.0)#810seonghobae wants to merge 4 commits into
Conversation
….33.0) Caption leftover-map graphic-display pair segments with persisted leftover-map unexplained leftover U = R − R̂ (ADR 0276). After make seed, closest and farthest leftover pairs sit above the member list with the Gabriel biplot of already-named coordinates, leftover-map axis share when finite, axis ticks that match ξ (x, y) ζ (x, y) on the pair row, pair segments that match d on the pair row, pair segments that match R̂ on the pair row, pair segments that match R̂²/R² on the pair row, pair segments that match U²/R² on the pair row, pair segments that match 2R̂U/R² on the pair row, and pair segments that match U on the pair row; click a post marker or a pair button opens that post. A missing or non-finite U omits that unexplained leftover caption. A finite negative leftover is shown; do not clamp to nonnegative. Do not invent U from R and R̂ or from plotted coordinates. Never invent a leftover score or a theta. No new columns.
Caption leftover-map graphic-display pair segments with persisted leftover residual R so U + R̂ = R is graphic-auditable. UI-only; no new columns. Do not invent R from Y and E, from U and R̂, or from plotted coordinates.
Caption leftover-map graphic-display pair segments with persisted leftover observed Y so Y − E = R is graphic-auditable. UI-only; no new columns. Do not invent Y from R and E or from plotted coordinates.
Caption leftover-map graphic-display pair segments with persisted leftover expected E[Y|θ, item] (ADR 0279). After make seed, closest and farthest leftover pairs sit above the member list with pair segments that match E on the pair row; click a post marker or a pair button opens that post. A missing or non-finite E omits that leftover expected caption. A finite negative expected is shown; do not clamp to nonnegative. Do not invent E from Y and R or from plotted coordinates. Never invent a leftover score or a theta. UI-only; no new columns.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
| const expectedY = leftoverMapStackedCaptionY( | ||
| labelPosition.labelY, | ||
| (distanceLabel !== null ? 1 : 0) + | ||
| (reconstructionLabel !== null ? 1 : 0) + | ||
| (explainedShareLabel !== null ? 1 : 0) + | ||
| (unexplainedShareLabel !== null ? 1 : 0) + | ||
| (crossShareLabel !== null ? 1 : 0) + | ||
| (unexplainedLeftoverLabel !== null ? 1 : 0) + | ||
| (residualLabel !== null ? 1 : 0) + | ||
| (observedLabel !== null ? 1 : 0), | ||
| ); |
There was a problem hiding this comment.
🟡 Expected captions can be clipped
For low segments with several measurements, expectedY places the finite expected value outside the fixed SVG viewport. The graphic silently omits it.
Prompt for agents
The expected caption is appended to a downward-only label stack in frontend/src/leftoverMapPlotLayout.ts. A segment midpoint near the bottom of the 320px SVG can place expectedY beyond the viewport when preceding finite captions consume several 12px offsets. Adjust segment caption placement or the plot bounds so the complete stack remains inside the SVG for both upper and lower edge segments. Add a layout/component test with a low segment and all finite measurements that asserts the E caption coordinates remain within the viewport.
Was this helpful? React with 👍 or 👎 to provide feedback.
|
Cycle note (2026-08-30T19:10 KST): retrying GitHub writes from this session. Leave this PR open for independent review. Do not self-approve. Do not squash-merge onto the unprotected leftover base. After independent review, retarget onto leftover-coordinates (#782) rather than squash-merging here. Synthetic fixtures only. |
|
Queue 2026-08-30T19:08 KST. Head 6e37757 v2.36.0 leftover expected E on pair segments is green (Frontend lint/test/build + Full test suite). Independent APPROVE still required. Do not squash-merge onto the leftover base. Do not self-approve. |
|
Cycle 2026-08-30T19:22 KST. Writes recovered this session (#96 closed). Head 6e37757 v2.36.0 leftover expected E on pair segments stays open for independent APPROVE. Do not self-approve. Do not squash-merge onto the leftover base. Next buyer gap: leftover-map rank on pair segments (ADR 0164 already names rank on pair rows; segments still omit it). Synthetic fixtures only. |
Superseded by verified full carryover in #811
This PR is closed without merge only because every valid delta is preserved in open successor #811. Exact head
6e37757aae8b37b729cf16f076ffcec6c94cd445is an immutable ancestor of #811 exact heade626a1d0770208d6f821e06542091aa2ead87f25.#811 now directly targets #804 exact base
c513002bea9e0ee3e6ccd0931c5256e52dbbd878; fresh compare is ahead by 5 / behind by 0. Fresh compare from this head to #811 is ahead by 1 / behind by 0 with this head as the merge base. The successor therefore carries this PR's expected-value implementation and every earlier unexplained/residual/observed commit, ADR/changelog/docs, i18n/layout/component code and executable tests/fixtures, plus #811's rank delta.Current-head review
5120237656on #811 records the consolidated ancestry. Historical checks/reviews from this PR do not transfer to #811. No force-push, squash, destructive rebase, gate weakening, or source deletion was used.