feat(reports): leftover-map unexplained leftover on pair segments (v2.33.0) - #805
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.
|
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 unexplainedLeftoverY = leftoverMapStackedCaptionY( | ||
| labelPosition.labelY, | ||
| (distanceLabel !== null ? 1 : 0) + | ||
| (reconstructionLabel !== null ? 1 : 0) + | ||
| (explainedShareLabel !== null ? 1 : 0) + | ||
| (unexplainedShareLabel !== null ? 1 : 0) + | ||
| (crossShareLabel !== null ? 1 : 0), |
There was a problem hiding this comment.
🟡 Lower leftover captions disappear
When a segment lies near the plot's lower edge, unexplainedLeftoverY always stacks the new caption downward. The finite U caption falls outside the SVG viewport.
Prompt for agents
The segment-caption layout in frontend/src/leftoverMapPlotLayout.ts always stacks captions toward increasing Y. With all six persisted labels present, the new unexplained-leftover caption sits 60 pixels below the segment midpoint. A valid horizontal segment near the lower plot boundary can therefore place the caption beyond the 320-pixel SVG viewport, where it is clipped. Make the stack direction or starting position boundary-aware so every finite caption remains inside the plot, while preserving spacing and handling any subset of missing labels. Add layout and component tests for segments near both vertical boundaries with all captions present.
Was this helpful? React with 👍 or 👎 to provide feedback.
| const unexplainedLeftoverLabel = formatLeftoverMapUnexplained( | ||
| pair.leftover_map_unexplained, | ||
| ); |
| {segment.unexplainedLeftoverLabel !== null ? ( | ||
| <text | ||
| className="leftover-map-plot-segment-label leftover-map-plot-segment-unexplained" | ||
| x={segment.unexplainedLeftoverX} | ||
| y={segment.unexplainedLeftoverY} | ||
| textAnchor="middle" | ||
| aria-label={tf(LEFTOVER_MAP_PLOT_SEGMENT_UNEXPLAINED, { | ||
| label: segment.unexplainedLeftoverLabel, | ||
| })} | ||
| > | ||
| {segment.unexplainedLeftoverLabel} | ||
| </text> | ||
| ) : null} |
|
Cycle 2026-08-30: write probe. Independent APPROVE still required on exact head e3fdfd7. Do not self-approve. Strix fail-closed on Vulnerabilities [1-9] remains. Next buyer gap continues locally if this comment lands. |
seonghobae
left a comment
There was a problem hiding this comment.
Successor-carryover verification: #806 has been retargeted directly to #804 exact base c513002bea9e0ee3e6ccd0931c5256e52dbbd878 without changing either feature branch. Fresh compare shows #804@c513002b… → #806@33f6c3dd… is exactly two commits ahead / zero behind, and fresh compare from this PR head e3fdfd741a5b4a063843120d01243febb3d304f8 to #806 head is exactly one commit ahead / zero behind with this head as the merge base. Therefore #806 now preserves this PR's entire commit/tree (implementation, ADR 0276, changelog/docs, i18n/layout/component tests/fixtures) plus its own residual delta. No historical check/review result is being promoted; only the immutable commit ancestry is inherited. Closing #805 is valid only under the verified-successor exception, not as a no-delta discard.
Superseded by verified full carryover in #806
This PR is closed without merge only under the verified-successor exception. Its exact head
e3fdfd741a5b4a063843120d01243febb3d304f8is now an immutable ancestor of open successor #806 exact head33f6c3dda7f80b1bcf7b244d5e6d65068d582ba7.#806 was retargeted directly to #804 exact base
c513002bea9e0ee3e6ccd0931c5256e52dbbd878without rewriting either feature branch. Fresh compare proves #806 is exactly two commits ahead / zero behind that base, and fresh compare from this PR head to #806 head is exactly one commit ahead / zero behind withe3fdfd741…as the merge base. Therefore #806's current diff contains this PR's complete unexplained-leftover implementation, ADR 0276, changelog/docs, i18n/layout/component code and tests/fixtures, plus the successor residual delta.Review
5120233182records the carryover evidence. Historical checks/reviews from #805 do not transfer to #806; #806 must regenerate exact-head evidence and independent review before any normal merge. No force-push, squash, destructive rebase, gate weakening, or source deletion was used.