Skip to content

feat(reports): leftover-map coordinate ticks (v2.27.0) - #799

Merged
seonghobae merged 1 commit into
feat/leftover-map-coordinates-v2240from
feat/leftover-map-coordinate-ticks-v2270
Aug 29, 2026
Merged

feat(reports): leftover-map coordinate ticks (v2.27.0)#799
seonghobae merged 1 commit into
feat/leftover-map-coordinates-v2240from
feat/leftover-map-coordinate-ticks-v2270

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Caption leftover-map graphic-display axes with persisted leftover-map coordinate ticks (ADR 0270 / v2.27.0).
  • 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, and axis ticks that match ξ (x, y) ζ (x, y) on the pair row; click a post marker or a pair button opens that post.
  • Origin is always named 0. Rank-0 unused axes do not invent −1 / +1 drawing-scale ticks. Duplicate coordinates share one tick. Do not invent evenly spaced ticks that no persisted coordinate occupies.
  • UI-only; no SQL; no new columns. Never invent a leftover score. Never invent a theta. Do not persist leftover-map inner product, cosine, or length.
  • Stacked onto leftover-map coordinates + graphic + axis-share (feat/leftover-map-coordinates-v2240 / feat(reports): persist leftover-map coordinates (v2.24.0) #782 @ 4a0afbf). Do not mix into feat(reports): persist leftover-map coordinates (v2.24.0) #782.

Verification

  • frontend vitest: leftoverMapPlotLayout + LeftoverMapPlot + leftoverMapPlotAxisShare + i18n leftover keys + LeftoverPairList (131 passed)
  • tests/test_leftover_pairs.py and PostgreSQL period-report tests were not executed here (UI-only; no schema change)

Evidence boundary

Authenticated PostgreSQL API and k6 runtime acceptance are not claimed. No real records or credentials. Synthetic fixtures only.

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

Jeon, M., Jin, I. H., Schweinberger, M., & Baugh, S. (2021). Mapping unobserved item–respondent interactions: A latent space item response model with interaction map. Psychometrika, 86(2), 378–403.

Gabriel, K. R. (1971). The biplot graphic display of matrices with application to principal component analysis. Biometrika, 58(3), 453–467.

Caption leftover-map graphic-display axes with persisted leftover-map
coordinate ticks (ADR 0270). 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, and
axis ticks that match ξ (x, y) ζ (x, y) on the pair row; click a post
marker or a pair button opens that post. Origin is always named 0.
Rank-0 unused axes do not invent −1 / +1 drawing-scale ticks. Never
invent a leftover score or a theta. No new columns.
@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 21c68703-2c0c-417b-961c-8eef5f268f15

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@seonghobae
seonghobae merged commit 2a203bf into feat/leftover-map-coordinates-v2240 Aug 29, 2026
1 of 4 checks passed

@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

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: Invalid coordinates stay excluded

The existing plottability gate rejects missing and non-finite values before tick collection. The added casts cannot introduce invalid plot positions.

(Refers to this code)

Devin Review

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

Comment on lines +115 to +126
function uniqueCoordinateTicks(values: number[]): { value: number; label: string }[] {
const byLabel = new Map<string, number>();
for (const value of values) {
const label = formatSignedLeftoverValue(value);
if (label === null) {
continue;
}
if (!byLabel.has(label)) {
byLabel.set(label, value);
}
}
return [...byLabel.entries()].map(([label, value]) => ({ value, label }));

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Distinct coordinates lose tick marks

When two persisted coordinates round to the same two-decimal label, uniqueCoordinateTicks merges them. One coordinate loses its tick despite occupying a different plotted position.

Prompt for agents
Update frontend/src/leftoverMapPlotLayout.ts so coordinate ticks are deduplicated by their finite numeric coordinate, not by the formatted two-decimal label. Distinct values that format identically still need distinct plotted ticks. Also ensure LeftoverMapPlot.tsx gives such ticks unique React keys and choose a labeling strategy that keeps tick labels consistent with the pair-row coordinate formatter without silently hiding coordinates. Add a test with two distinct coordinates that round to the same two-decimal string.
Devin Review

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

seonghobae added a commit that referenced this pull request Aug 30, 2026
* feat(reports): persist leftover-map coordinates (v2.24.0)

Name leftover-map coordinates ξ_{1:2} and ζ_{1:2} on leftover
post–criterion pairs (ADR 0267, migration 0245). After make seed,
closest and farthest leftover pairs sit above the member list with
ξ (x, y) ζ (x, y) next to leftover-map distance d; click opens that
post. Rank-0 unused axes store 0.0. When coordinates, reconstruction,
and distance are finite, R̂ = ξ · ζ and d = ‖ξ − ζ‖. Never invent a
leftover score. Never invent a theta.

Jeon, M., Jin, I. H., Schweinberger, M., & Baugh, S. (2021). Mapping
unobserved item–respondent interactions: A latent space item response
model with interaction map. Psychometrika, 86(2), 378–403.

Gabriel, K. R. (1971). The biplot graphic display of matrices with
application to principal component analysis. Biometrika, 58(3), 453–467.

* feat(reports): leftover-map graphic display (v2.25.0) (#783)

* feat(reports): leftover-map graphic display (v2.25.0)

Draw persisted leftover-map coordinates ξ and ζ as a Gabriel biplot
above leftover pair buttons (ADR 0268). Click a post marker to open
that post. Omit the plot when coordinates are missing. No new columns.
Never invent a leftover score or a theta.

* fix(reports): preserve leftover-map distances

Signed-off-by: Codex <codex@localhost>

* fix(reports): keep plot labels readable

Signed-off-by: Codex <codex@localhost>

* docs(reports): correct leftover plot omission rule

---------

Signed-off-by: Codex <codex@localhost>
Co-authored-by: Codex <codex@localhost>

* feat(reports): leftover-map axis share on graphic display (v2.26.0) (#787)

Caption leftover-map plot axes with persisted ADR 0148 leftover-map
axis share σ_k² / Σ_j σ_j² (ADR 0269). Rank-0 zero-share axes still
name 0%. A missing or non-finite share omits that axis badge and
keeps the existing leftover-map axis text. Click a post marker to
open that post. No new columns. Never invent a leftover score or a
theta.

* test(reports): apply leftover-map migrations in live fixture

Signed-off-by: Codex <codex@localhost>

* fix(reports): align leftover map evidence

* feat(reports): leftover-map coordinate ticks (v2.27.0) (#799)

Caption leftover-map graphic-display axes with persisted leftover-map
coordinate ticks (ADR 0270). 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, and
axis ticks that match ξ (x, y) ζ (x, y) on the pair row; click a post
marker or a pair button opens that post. Origin is always named 0.
Rank-0 unused axes do not invent −1 / +1 drawing-scale ticks. Never
invent a leftover score or a theta. No new columns.

* feat(reports): leftover-map distance on pair segments (v2.28.0) (#800)

Caption leftover-map graphic-display pair segments with persisted
leftover-map distance d (ADR 0271). 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, and
pair segments that match d on the pair row; click a post marker or a
pair button opens that post. A missing or non-finite d omits that
segment caption. Do not invent d from plotted coordinates. Never
invent a leftover score or a theta. No new columns.

---------

Signed-off-by: Codex <codex@localhost>
Co-authored-by: Codex <codex@localhost>
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