Skip to content

feat(reports): leftover-map explained leftover share on grouping comparison graphic (v2.68.0) - #851

Draft
seonghobae wants to merge 17 commits into
feat/leftover-map-compare-plot-reconstruction-v2670from
feat/leftover-map-compare-plot-explained-share-v2680
Draft

feat(reports): leftover-map explained leftover share on grouping comparison graphic (v2.68.0)#851
seonghobae wants to merge 17 commits into
feat/leftover-map-compare-plot-reconstruction-v2670from
feat/leftover-map-compare-plot-explained-share-v2680

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Captions persisted leftover-map explained leftover share e on the grouping-comparison graphic when the persisted formatter yields a usable value (ADR 0311 / v2.68.0). Read-model/UI composition only: no SQL/new columns, no invented score, and no derivation from neighbouring statistics.

Current exact authority

Repaired RED→GREEN evidence

#999 preserved explicit Vietnamese explained-share semantics in the report segment, comparison graphic accessible name, and expanded plot caption; regenerated uv.lock with repository-authoritative uv; and updated only the stale Vietnamese expectations exposed by the repaired production copy.

  • comparison-key RED 26bf97ab0ba0228cb22253590f1ebd68c66f2c33: exactly one failing Vietnamese comparison assertion while the earlier assertions stayed GREEN; minimal source repair then produced lint GREEN and 96/96 focused tests GREEN.
  • stale-fixture RCA: harness 34529174433 reproduced 3/252 obsolete Vietnamese expectations, changed those expectations only, then produced lint GREEN and 348/348 focused tests GREEN.
  • generated-lock harness 34528462950: uv lock --check GREEN and editable lineageweave 2.65.0 -> 2.68.0.
  • successor exact-head repository Tests 34529327417: frontend and full suite terminal GREEN before normal integration.
  • exact moved-head repository Tests 34531209969: new validation admission after integration; do not transfer predecessor GREEN while this run is incomplete.

Descendant convergence

Parent movement invalidates predecessor descendant evidence. #852 owns the next unexplained-share increment and its separate Vietnamese accessible-name RED. It must inherit this exact repaired parent non-force before its own fix/acceptance; then #853#857 must converge in order and #858 remains a semantic-reconstruction lane. No descendant may copy this parent-owned repair independently or transfer an older GREEN across the moved parent.

Product invariants

  • Missing/non-finite e omits only its graphic caption; finite zero remains displayable.
  • Reconstruction, distance, coverage, unexplained share, cross share, residual/observed/expected values stay independent.
  • No synthetic share, clamping, new measurement authority, or cross-service SQL.
  • Canonical translation-ledger authority remains outside this report increment; this PR consumes customer-facing copy and does not create a competing translation store.

Keep Draft until exact-head repository/security validation is GREEN, descendants are non-force converged/revalidated, browser/a11y/performance evidence is current, and qualifying independent approval exists. No self-approval, bypass, force push, destructive rebase, generated-lock hand edit, ancestor skip, or stale-evidence transfer.

…arison graphic (v2.68.0)

Caption persisted leftover-map explained leftover share e on the grouping
comparison leftover-map graphic from already-named leftover_map_explained_share
(ADR 0311). Comparison copy uses leftover map comparison graphic explained
leftover share {label} so it stays distinct from hyphen leftover-map explained
leftover share {label} and from strip Leftover map comparison explained leftover
share. A missing or non-finite e omits that caption and keeps leftover-map
reconstruction and comparison graphic coverage notes. Rank-0 origin cells still
name R̂²/R² 0.00 when that explained leftover share is finite. Do not invent e
from leftover-map reconstruction or leftover residual. Never invent a leftover
score. Never invent a theta. 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.

Copy link
Copy Markdown
Contributor Author

Queue retry: leftover-map explained leftover share on grouping comparison graphic (v2.68.0 / ADR 0311). Independent APPROVE required before squash-merge. Do not self-approve. Next stacked increment is leftover-map unexplained leftover share on that comparison graphic. Issues #79 and #87 stay open. #96 is already closed.

Copy link
Copy Markdown
Contributor Author

Cycle retry 2026-08-31 06:40 KST: exact head 2d6e8e7 still has no independent APPROVE (CodeRabbit skipped on non-default base). Copilot review requested this cycle. Leave #851 open. Do not self-approve. Do not squash-merge onto the unprotected leftover base. After independent review, retarget onto leftover-coordinates (#782, already on main) rather than squash-merging here.

Next stacked increment (ADR 0312 / v2.69.0) captions leftover-map unexplained leftover share on the grouping comparison leftover-map graphic with distinct accessible name leftover map comparison graphic unexplained leftover share {label}. It does not caption leftover-map unexplained leftover U this increment. Stack onto this PR; leave that PR open for independent review. Issues #79 and #87 stay open.

@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 1 potential issue.

Devin Review

Comment thread pyproject.toml
[project]
name = "lineageweave"
version = "2.67.0"
version = "2.68.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Version bump leaves frozen lock stale

The version bump declares 2.68.0, but the frozen lock still identifies lineageweave as 2.65.0. Frozen installs can fail or package the old release.

Prompt for agents
Regenerate uv.lock from the updated pyproject.toml so the local lineageweave package entry records version 2.68.0. Verify the repository's frozen CI sync and backend Docker installation succeed with the refreshed committed lock.
Devin Review

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

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.

유효한 finding으로 재현했습니다. 직전 exact head 72df615a8fb1350217039c6a62007243a6322ccc에서 pyproject.toml2.68.0인데 editable lineageweaveuv.lock 항목은 2.65.0입니다. RED 0ec28288cbc051ea65887e67d18a6f58ef2ed143에서 tests/test_project_lock_version_parity.py를 추가해 project/lock version 불일치를 executable gate로 고정했습니다. 현재 runtime에서는 uv.lock 전체를 안전하게 재생성·검증할 수 있는 locked dependency 환경을 확보하지 못했으므로 숫자만 수동 치환하거나 frozen-install GREEN을 가장하지 않습니다. uv lock으로 재생성한 정확한 lock blob과 frozen install 검증이 생길 때까지 이 thread는 unresolved/Draft로 유지합니다.

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 exact-head evidence confirms this finding remains active on 86f1d822df1b5989b6625cbbec9c3e909b5593de. Tests run 34514477701, full-suite job 102996374642, uses uv 0.11.28; uv sync --frozen --extra dev --extra backend succeeds and installs local lineageweave==2.68.0, but the full suite then fails only tests/test_project_lock_version_parity.py: committed uv.lock records editable LineageWeave 2.65.0 while pyproject.toml is 2.68.0 (1 failed, 1767 passed, 147 skipped). This is exactly why frozen-install success is insufficient evidence. Keep this thread unresolved until repository-authoritative uv lock regeneration updates the committed generated lock and the same parity/frozen-install path is GREEN; no manual lock edit.

Copy link
Copy Markdown
Contributor Author

Cycle 2026-08-31T06:40 KST: retrying GitHub writes (close/merge/comment/push). Head 2d6e8e7 v2.68.0 leftover-map explained leftover share on grouping comparison graphic. Not self-approving. Independent APPROVE required before squash-merge.

Copy link
Copy Markdown
Contributor Author

Stacked next increment opened as #852 (feat/leftover-map-compare-plot-unexplained-share-v2690 @ 2c34896, ADR 0312 / v2.69.0). Leave #851 open for independent review. Exact head 2d6e8e7 still has no independent APPROVE. Do not self-approve. Do not squash-merge.

Copy link
Copy Markdown
Contributor Author

Stacked #852 leftover-map unexplained leftover share on grouping comparison graphic (v2.69.0 / ADR 0312) is open on this head. Independent APPROVE required. Do not self-approve. Do not squash-merge onto the unprotected leftover base.

@seonghobae
seonghobae marked this pull request as draft September 4, 2026 08:06
Adopt the conflict-free GitHub test-merge tree for exact parent #850 e14d7e0 while preserving existing #851 product head 2d6e8e7 as first-parent ancestry. No force push and no product delta is dropped.
seonghobae added a commit that referenced this pull request Sep 6, 2026
Adopt the conflict-free GitHub test-merge tree for exact parent #851 89fe034 while preserving existing #852 product head 2c34896 as first-parent ancestry. No force push and no product delta is dropped.
Adopt the GitHub-verified conflict-free merge tree for exact parent #85040a6b04 and child 74e22f0. The tree preserves ADR 0311/v2.68.0 and inherits ADR 0304 Proposed plus its regression. No force push and no valid delta is dropped.
seonghobae added a commit that referenced this pull request Sep 6, 2026
Adopt the GitHub-verified conflict-free merge tree for exact parent #85172df615 and child ed6502e. The tree preserves ADR 0312/v2.69.0 and inherits ADR 0304 Proposed plus its regression. No force push and no valid delta is dropped.
@opencode-agent

Copy link
Copy Markdown
Contributor

Scheduled review-feedback autofix for this PR head.

  • Head SHA: 72df615a8fb1350217039c6a62007243a6322ccc

@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-head RCA from predecessor 0ec28288cbc051ea65887e67d18a6f58ef2ed143 broadened the release-identity finding: hosted PostgreSQL run 34479382143 installed successfully with uv sync --frozen, then test_release_versions_are_synchronized failed because runtime lineageweave.__version__ was 2.41.0 while pyproject.toml and frontend/package.json were 2.68.0; the new lock parity regression separately failed because the editable uv.lock entry remained 2.65.0. Frozen installation therefore was not evidence of coherent release identity. Current ordinary child 9a3dbe93b72fadba588bad89d34fa5049954f70f causally repairs the runtime leg only by aligning __version__ to 2.68.0; the generated-lock RED remains and is not hand-edited. The same predecessor frontend run also has independent small-canvas and Vietnamese-copy REDs, so this PR remains Draft and is not claimed GREEN.

seonghobae added a commit that referenced this pull request Sep 10, 2026
seonghobae added a commit that referenced this pull request Sep 10, 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 head 9a3dbe93b72fadba588bad89d34fa5049954f70f의 기존 RED를 current source와 대조했습니다. layoutLeftoverMapPlot()은 requested height와 무관하게 PLOT_PADDING=40을 person/item/origin/ticks 좌표 변환에 넘기므로 {height: 20}에서 innerH=-60이 되어 실제 음수 좌표를 생성합니다. 이어 caption stack도 고정 12px offset만 사용하고 canvas bounds를 알지 못해 labelY=-20 같은 결과가 발생합니다. 이는 fixture artifact가 아니라 size contract의 causal defect입니다. 최소 repair는 requested dimensions에 맞춰 geometric padding과 caption baseline/stack Y를 bound하되 persisted d//e truth, omission rules, axis coordinate semantics는 바꾸지 않는 것입니다. Vietnamese 두 RED는 별도 copy defect로 유지하며 canonical translation authority #929/#932를 우회하지 않아야 합니다.

seonghobae added a commit that referenced this pull request Sep 10, 2026
@seonghobae
seonghobae marked this pull request as ready for review September 10, 2026 18:33
@seonghobae
seonghobae marked this pull request as draft September 10, 2026 18:39

@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-head verification narrows this PR to two causal RED groups. 34514477701 / frontend 102996374268 proves the compact-canvas repair is GREEN: lint passes, layout 53/53, plot 40/40, and the dedicated small-canvas regression passes. The only frontend failures are the two Vietnamese-copy assertions: the explained-share label still says phần dư giải thích... rather than an explicit share (tỷ phần phần dư được giải thích...), and the expanded graphic description falls back to English. Full-suite job 102996374642 independently finishes 1 failed / 1767 passed / 147 skipped; the sole failure is the generated-lock parity gate (uv.lock editable LineageWeave 2.65.0 vs project 2.68.0), even though uv sync --frozen successfully installed the project as 2.68.0. Keep Draft. Repair only the Vietnamese product resources plus repository-authoritative uv lock regeneration; do not regress the now-GREEN compact layout or hand-edit the generated lock.

@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 verification found the second Vietnamese RED is partially a test-authority defect, not only production copy. frontend/src/leftoverMapPlotVietnameseCopy.test.tsx duplicates a historical shortened graphic-caption string that omits the current production clause about complete-case/item/incomplete coverage. LEFTOVER_MAP_PLOT_CAPTION on this exact head contains that clause, and i18n.ts has a Vietnamese resource for the current full key. Therefore the test's direct tf(GRAPHIC_DISPLAY_COPY, {}) call can fall back to English for a key the production component no longer uses. Repair the regression to import/use the production caption constant (or otherwise bind to the exact production key) before using it as causal RED evidence. Keep the explicit Vietnamese-share assertion: the current full Vietnamese resource still says phần dư giải thích e, so the intended terminology defect remains reproducible after the harness is corrected. This is a test-harness repair, not a reason to weaken or drop the production Vietnamese-copy requirement.

@seonghobae
seonghobae marked this pull request as ready for review September 10, 2026 19:56
@seonghobae
seonghobae marked this pull request as draft September 10, 2026 20:06

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

현재 RED 두 건은 유효하지만, 이번 PR이 새로 도입한 production key leftover map comparison graphic explained leftover share {label}의 베트남어 값도 같은 의미 손실(phần dư giải thích ...)을 갖고 있습니다. e는 residual 자체가 아니라 explained leftover share이므로 이 key도 tỷ phần ... được giải thích ...처럼 share를 명시해야 합니다. 기존 Vietnamese regression이 inherited strip key와 plot caption만 검사하므로, 새 comparison-graphic key 자체를 production constant에 묶어 RED로 추가한 뒤 세 문자열을 함께 고치는 편이 causal boundary에 맞습니다. 기존 수치/finite-zero/non-finite omission 계약은 변경하지 않아야 합니다.

@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 head에서 남은 Vietnamese RED 두 건을 재확인하는 과정에서, 이 PR 자체가 추가한 grouping-comparison graphic의 접근성 이름도 같은 의미 손실을 갖고 있습니다. LEFTOVER_MAP_COMPARE_PLOT_SEGMENT_EXPLAINED_SHAREleftover map comparison graphic explained leftover share {label}을 사용하지만 vi 번역은 phần dư giải thích đồ họa so sánh bản đồ phần dư {label}이라 share/tỷ phần 의미가 사라집니다. LeftoverMapPlot의 comparison variant가 이 상수를 segment aria-label에 직접 사용하므로 buyer-visible/a11y copy 결함입니다. 기존 두 assertion만 고치면 이 PR의 주 경로가 여전히 의미적으로 불완전합니다. Vietnamese regression에 comparison production constant를 직접 추가하고, report segment/full caption과 함께 명시적 explained-share 용어를 쓰도록 causal repair해야 합니다. 다른 locale나 측정 의미는 변경하지 않습니다.

github-actions Bot pushed a commit that referenced this pull request Sep 10, 2026
Adopt #851 repaired explained-share/lock delta, preserve #852 unexplained-share product delta, and repair its Vietnamese production accessible-name share semantics after an exercised RED.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant