Skip to content

feat(reports): leftover-map coordinates on grouping comparison payload (v2.60.0) - #840

Draft
seonghobae wants to merge 2 commits into
feat/leftover-map-compare-coordinates-v2590from
feat/leftover-map-compare-coordinates-payload-v2600
Draft

feat(reports): leftover-map coordinates on grouping comparison payload (v2.60.0)#840
seonghobae wants to merge 2 commits into
feat/leftover-map-compare-coordinates-v2590from
feat/leftover-map-compare-coordinates-payload-v2600

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Return persisted leftover-map coordinates ξ / ζ on GET /api/reports/compare/{period} leftover pairs (ADR 0303 / v2.60.0). Compare payload only; no new SQL/columns, invented coordinates/score/theta, or persisted inner-product/cosine/length derivation.

Local product findings

Current product head remains b5732ba2a6de25595989db0b5fb74308b8eae75a on #839. Hosted tests on this old downstream tree exposed inherited small-canvas/Vietnamese/runtime drift. Existing automation/840-foundation-tests-repair-20260906, run 34015056955, is diagnostic evidence only and is not promotion authority.

Current structural owner order

Fresh ancestry correction is now further advanced than the earlier body recorded. The reviewed small-canvas/Vietnamese/rank-boundary source truth has been carried through #812 df419c5a2f75782fa883915806d8cada7a78ff78 and #813 44ace39111664a9b39a81e575a8dbdf06506050f by verified non-force current-parent convergence. #814 is now the earliest structurally stale descendant; its exact-parent lane automation/814-current-813-convergence-20260907, run 34043779954, is active but not yet GREEN.

Release-identity repair still begins from the historical first mismatch at v2.42 (#816) and must remain coherent for each reconstructed successor. Therefore continue #814#839 in order, preserving each valid product/governance/release delta, before reconstructing this v2.60 coordinate payload on the then-current exact #839. The old #840 diagnostic tree must not bypass that ancestry or become a branch-local source fork.

Descendant boundary

#841 and #842 both currently depend on this provisional #840 head. After #840 is rebuilt, preserve each sibling product decision separately, repair their duplicate release identity explicitly rather than collapsing deltas, and reconstruct their descendants from exact promoted parents.

Product invariant

A missing/non-finite axis remains absent rather than inferred from rank, distance, Y/E/R/U, reconstruction/share terms, coverage, pair count, or unused axes. Stored origin zeros remain valid. The compare payload may carry only persisted coordinates and existing persisted measurement outputs.

Keep Draft. Exact-product-head required checks, authenticated PostgreSQL/k6 where applicable, current browser/a11y evidence, safe descendant convergence, and qualifying independent approval remain unclaimed.

…d (v2.60.0)

Return persisted leftover-map coordinates ξ / ζ on GET /api/reports/compare/{period} leftover pairs so grouping comparison leftover-pair buttons can match the pair-row coordinate badge on live responses (ADR 0303).
@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 overlay 2026-08-31 02:35 KST

Writes work (gh OIDC). Do not self-approve. Do not squash-merge. Do not merge #808 without independent APPROVE.

Independent approval is required. No self-approval, admin bypass, or force push.

@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 3 potential issues.

Devin Review

Comment on lines +1128 to +1132
"leftover_map_person_axis_1": (
None
if pair["leftover_map_person_axis_1"] is None
else float(pair["leftover_map_person_axis_1"])
),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Non-finite coordinates break comparisons

When a stored coordinate is NaN or infinite, float forwards it into JSON. The entire comparison request fails instead of omitting coordinates.

Prompt for agents
Make fetch_period_comparison serialize each of the four leftover-map coordinate fields only when its database numeric is finite; return null for missing or non-finite values. The report_leftover_pair coordinate columns are unconstrained PostgreSQL numeric values, which can contain NaN or infinities, while FastAPI's JSON serializer rejects their float forms. Apply the same handling consistently to person axes 1/2 and item axes 1/2, and add coverage for non-finite persisted coordinates without deriving replacement coordinates.
Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +1128 to +1147
"leftover_map_person_axis_1": (
None
if pair["leftover_map_person_axis_1"] is None
else float(pair["leftover_map_person_axis_1"])
),
"leftover_map_person_axis_2": (
None
if pair["leftover_map_person_axis_2"] is None
else float(pair["leftover_map_person_axis_2"])
),
"leftover_map_item_axis_1": (
None
if pair["leftover_map_item_axis_1"] is None
else float(pair["leftover_map_item_axis_1"])
),
"leftover_map_item_axis_2": (
None
if pair["leftover_map_item_axis_2"] is None
else float(pair["leftover_map_item_axis_2"])
),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: Redaction preserves new coordinates

Authorization filtering still removes hidden pairs before stripping internal metadata. The four coordinate fields remain in each surviving public pair.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +1128 to +1147
"leftover_map_person_axis_1": (
None
if pair["leftover_map_person_axis_1"] is None
else float(pair["leftover_map_person_axis_1"])
),
"leftover_map_person_axis_2": (
None
if pair["leftover_map_person_axis_2"] is None
else float(pair["leftover_map_person_axis_2"])
),
"leftover_map_item_axis_1": (
None
if pair["leftover_map_item_axis_1"] is None
else float(pair["leftover_map_item_axis_1"])
),
"leftover_map_item_axis_2": (
None
if pair["leftover_map_item_axis_2"] is None
else float(pair["leftover_map_item_axis_2"])
),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: Partial coordinates fail closed

Each missing axis remains independently null. The existing formatter requires four finite values, so partial coordinates cannot produce a misleading badge.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Contributor Author

Cycle write probe 2026-08-31T03:23+09:00: leftover-map coordinates payload #840 remains open for independent APPROVE. No self-approval. Do not squash-merge onto the unprotected leftover base.

Copy link
Copy Markdown
Contributor Author

Cycle write probe 2026-08-31T03:24+09:00: exact head cbf994462ec787d4d3e7a2749f913f62fd9c96d0 still lacks independent APPROVE. Collaborators are only the author, so this cycle cannot request a second human reviewer without self-approval. Leave #840 open. Do not squash-merge. Do not self-approve. Next buyer gap is leftover-map graphic display of already-named ξ / ζ on the grouping comparison strip (ADR 0304 / v2.61.0), stacked on this payload.

Copy link
Copy Markdown
Contributor Author

Cycle overlay 2026-08-31 03:38 KST: leftover-map graphic display of already-named ξ / ζ on the grouping comparison strip is stacked as feat/leftover-map-compare-graphic-v2610 (ADR 0304 / v2.61.0) onto this payload head cbf9944. Leave #840 open for independent APPROVE. Do not self-approve. Do not squash-merge.

Preserve #840 ADR 0303/product delta while inheriting current #839 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 #841 ADR 0304 graphic/product delta while inheriting current #840 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 #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.

Current-head repair finding on b5732ba2a6de25595989db0b5fb74308b8eae75a: required Tests already fail in both frontend and full-suite lanes, and the same causal drift later reproduced on both direct children #841 and #842. The shared defects are owned here, not in either child: lineageweave.__version__ is still 2.41.0 while pyproject/frontend ship 2.60.0; the small-canvas segment-caption stack can escape the viewport; and Vietnamese explained-share copy/regression has drifted from the production caption. Repair #840 once with a realistic exact-head RED→GREEN and then reconstruct #841/#842 non-force. Do not duplicate the patch independently in sibling branches, and do not transfer predecessor checks or approval.

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

Correction to the earlier foundation note: #840 is the nearest shared parent for sibling #841/#842, but it is not the structural root of every inherited defect. Fresh ancestry inspection shows release-identity drift starts at #816: #815 is v2.41.0 with runtime 2.41.0, while #816 is v2.42.0 but still reports runtime 2.41.0. The active #840 isolated lane remains useful to verify the shared small-canvas/Vietnamese patch on this exact tree, but its clean result must not be promoted ahead of current-parent convergence beginning at #813 and per-release identity repair from #816 onward. After that ancestry reaches #840, adapt/replay the verified shared source delta on the reconstructed exact head, then rebuild #841/#842.

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