Skip to content

feat(reports): leftover-map axis share on grouping comparison strip (v2.61.0) - #842

Draft
seonghobae wants to merge 4 commits into
feat/leftover-map-compare-coordinates-payload-v2600from
feat/leftover-map-compare-axis-share-v2610
Draft

feat(reports): leftover-map axis share on grouping comparison strip (v2.61.0)#842
seonghobae wants to merge 4 commits into
feat/leftover-map-compare-coordinates-payload-v2600from
feat/leftover-map-compare-axis-share-v2610

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Return persisted leftover-map axis share on GET /api/reports/compare/{period} grouping rows and caption the grouping comparison strip through leftoverMapCompareAxisShare. No new schema, invented psychometric score, or theta authority.

Valid product delta / provisional ancestry

Current base remains provisional #840 b5732ba2a6de25595989db0b5fb74308b8eae75a; current product head is f013dfb53b255e8e0be1dfb783cb41dca7eeb83e. This branch's distinct axis-share decision is ADR0368 Proposed. Its already-promoted mixed-visibility repair remains valid product truth: persisted leftover_map_axes is 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 df419c5a2f75782fa883915806d8cada7a78ff78 and #813 exact 44ace39111664a9b39a81e575a8dbdf06506050f, carrying the reviewed rank-boundary/small-canvas/Vietnamese truth. #814 is now the earliest structurally stale descendant; run 34043779954 is 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.

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

@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

Preserve #842 axis-share product delta while inheriting current #840 ancestry through a normal two-parent merge. ADR/version collision remains an explicit repair finding. 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.

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.

Copy link
Copy Markdown
Contributor Author

@codex address that feedback

Adopt the non-force current head 93f52af35e5643e77cfe5dff4501c5ee06ac4932, which adds the executable mixed-visibility RED tests/test_compare_axis_share_visibility.py for review 5122978008. Repair only that authorization defect: in compare_period_groupings(), expose persisted leftover_map_axes only when every persisted grouping member represented by the aggregate is visible to the current account; otherwise return an empty axis list. Do not recompute axis share/singular value from visible pairs, alter the persisted report model, weaken ABAC, or change ADR 0304/coordinate behavior. Preserve the current #840 ancestry and all fully-visible tests. Keep this PR Draft, use non-force commits only, and run the new RED plus focused report/axis-share tests before claiming GREEN.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@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 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 added a commit that referenced this pull request Sep 6, 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.

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

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant