feat(reports): leftover-map axis share on grouping comparison strip (v2.61.0) - #842
Conversation
…v2.61.0)
Return persisted leftover_map_axes on GET /api/reports/compare/{period} and
caption each grouping row through leftoverMapCompareAxisShare (ADR 0304).
Share 0 is shown, including rank-0 unused axes. Missing or non-finite share
omits that leftover-map comparison axis share badge. Do not invent leftover-map
axis share from leftover-map singular value. Do not add leftover-map graphic
or singular values to the strip. No new columns.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
seonghobae
left a comment
There was a problem hiding this comment.
Fresh successor verification: this later ADR 0304 implementation reproduces the same authorization defect found on #828. Its branch still uses compare_period_groupings() to filter members and leftover_pairs after fetch_period_comparison() has loaded full-group persisted aggregates, then spreads **row and rewrites only post_count. Therefore leftover_map_axes can disclose full-population axis share/singular-value aggregates to an account that sees only one member of a mixed-visibility grouping. This means #842 is not yet a verified safe successor for #828 despite the non-colliding ADR number. Add the same mixed-visibility API RED and fail closed for leftover_map_axes unless the caller sees the entire persisted grouping population; do not recompute psychometric truth from visible pair geometry. Preserve fully-visible behavior, ADR 0304, and existing coordinate/axis-share contracts.
|
@codex address that feedback Adopt the non-force current head |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
seonghobae
left a comment
There was a problem hiding this comment.
Current-head governance finding: #842 and sibling #841 are both based on exact #840 b5732ba2a6de25595989db0b5fb74308b8eae75a, but they assign two different decisions to ADR 0304 and both claim v2.61.0. #841 uses ADR 0304 for the grouping-comparison graphic; this branch creates docs/adr/0304-leftover-map-compare-axis-share.md for axis-share disclosure. The axis-share ADR is also marked Accepted in source even though #842 is Draft and has no qualifying independent current-head approval, while the PR body says it remains Proposed. This is a repair finding, not a reason to close either valid product delta. Keep #842 Draft; move the axis-share decision to a verified-unclaimed ADR identity (0368 is currently unclaimed in repository/default-branch and open-PR search) and return it to Proposed, updating all branch-local references without changing the product/authorization semantics. Do not renumber this candidate to ADR 0305: direct descendant #843 already owns ADR 0305. Keep the parallel v2.61.0 release collision explicit until one candidate is normally integrated or a verified successor fully inherits the other; do not silently overwrite release identity. Existing mixed-visibility RED remains authoritative and must still fail closed rather than recomputing the aggregate from visible geometry.
seonghobae
left a comment
There was a problem hiding this comment.
Exact product-head Tests 34007417526 is now terminal RED with real inherited source defects, not a failure of the axis-share authorization repair. Frontend has the same three failures already reproduced on sibling #841: the 20px small-canvas segment caption escapes above the viewport (labelY=-20 instead of >=12), Vietnamese explained-share copy regressed to phần dư giải thích..., and the Vietnamese caption regression duplicates the pre-coverage English caption instead of binding to production LEFTOVER_MAP_PLOT_CAPTION. The full PostgreSQL/Python suite reached 1768 passed / 147 skipped / 1 failed; the sole failure is runtime provenance (lineageweave.__version__ == 2.41.0 versus pyproject/frontend 2.61.0). Preserve the mixed-visibility leftover_map_axes fail-close and ADR 0368 Proposed exactly; repair only the inherited plot-bounds/copy/version defects, then rerun against an exact clean tree. #843 reconstruction on f013dfb... becomes stale if this product head moves and must be rebuilt from the repaired parent.
seonghobae
left a comment
There was a problem hiding this comment.
Foundation correction: the inherited plot-bounds/Vietnamese/runtime drift on this exact head is owned by direct parent #840 (b5732ba2a6de25595989db0b5fb74308b8eae75a), not by this sibling branch. Keep the already-promoted mixed-visibility fail-close and ADR 0368 Proposed delta intact. After #840 reaches a verified clean repair, reconstruct #842 non-force from that parent and synchronize runtime identity to 2.61.0; the current child-local r2 lane must not be promoted as an independent source fork even if it later turns GREEN.
Summary
Return persisted leftover-map axis share on
GET /api/reports/compare/{period}grouping rows and caption the grouping comparison strip throughleftoverMapCompareAxisShare. No new schema, invented psychometric score, or theta authority.Valid product delta / provisional ancestry
Current base remains provisional #840
b5732ba2a6de25595989db0b5fb74308b8eae75a; current product head isf013dfb53b255e8e0be1dfb783cb41dca7eeb83e. This branch's distinct axis-share decision is ADR0368Proposed. Its already-promoted mixed-visibility repair remains valid product truth: persistedleftover_map_axesis exposed only when the caller-visible population covers the full persisted grouping population, otherwise the aggregate fails closed to[]without recomputing psychometric truth.The shared source ancestry has moved since the old diagnostic lane: #812 is now exact
df419c5a2f75782fa883915806d8cada7a78ff78and #813 exact44ace39111664a9b39a81e575a8dbdf06506050f, carrying the reviewed rank-boundary/small-canvas/Vietnamese truth. #814 is now the earliest structurally stale descendant; run34043779954is its active exact-parent convergence and is not yet GREEN. Per-release runtime identity must remain coherent from the historical first mismatch at #816 onward.Therefore continue #814→#840 in order. Only after exact reconstructed #840 exists should this branch be rebuilt non-force with its axis-share/ADR0368/mixed-visibility delta and a coherent distinct release identity. Sibling #841 remains a separate valid graphic-composition decision; do not collapse the two product deltas merely because both historically used v2.61.0.
#843 and later descendants that currently contain this provisional #842 head must be reconstructed after #842 moves. Existing child-local repair trees are diagnostic only; predecessor checks and approvals do not transfer.
Keep Draft. Exact-product-head required checks, backend/frontend/browser/a11y evidence, safe descendant convergence, release identity, authenticated acceptance where applicable, and qualifying independent approval remain required.