feat(reports): preserve grouping comparison incomplete-post coverage for serialized reconstruction - #824
Conversation
…arison strip (v2.48.0)
Caption persisted leftover-map incomplete post coverage on GET /api/reports/compare/{period} through leftoverMapIncompletePostCount (ADR 0291). Distinct aria-label Leftover map comparison incomplete posts. Omit when dropped counts are unusable. Do not invent dropped posts from scored minus used. No SQL. No leftover score or theta.
|
Cycle 2026-08-30T14:26Z: stacked leftover-map incomplete post coverage on the grouping comparison strip (ADR 0291 / v2.48.0) @ exact head |
|
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 |
| const comparisonIncompletePostCount = leftoverMapIncompletePostCount( | ||
| row.leftover_map_coverage, | ||
| ); |
There was a problem hiding this comment.
| const comparisonIncompletePostCount = leftoverMapIncompletePostCount( | ||
| row.leftover_map_coverage, | ||
| ); |
There was a problem hiding this comment.
|
Stacked next buyer gap opened as #825 ( |
seonghobae
left a comment
There was a problem hiding this comment.
Parent-first finding: Ready is premature while base #822 and the upstream leftover-map chain remain unmerged. Preserve this incomplete-post coverage delta and return the dependent PR to Draft.
seonghobae
left a comment
There was a problem hiding this comment.
Current-head stack-authority finding: metadata is already safely converged onto #822 exact c5f9653a889841da7b524e8763d1aae8f6eb2c46, but the PR body still names obsolete parent 6726353a and predecessor verification as current. Preserve the product/ADR delta and Draft state, but make live parent/head/evidence authority explicit; predecessor tests do not transfer.
seonghobae
left a comment
There was a problem hiding this comment.
Fresh descendant-authority finding: this historical branch is structurally based on current historical #822, but #821 now owns ADR 0290 / v2.47.0 and #822 must be reconstructed afterward under the next unique successor identity. Therefore this PR's historical ADR 0291 / v2.48.0 cannot be treated as durable authority; that slot may be consumed by reconstructed #822.
Preserve the valid incomplete-post comparison delta, keep it Draft, and after #821 then #822 clean promotion reconstruct it on the exact current serialized parent under the next collision-free ADR/release identity. Inherit the full-visible-grouping confidentiality boundary for persisted coverage aggregates: when ABAC hides any persisted grouping member, do not expose a full-group dropped-post/coverage denominator or recompute a psychometric count from visible rows.
The body claim that the Vietnamese terminology repair is unresolved is also stale. Do not carry it forward as a blocker; use fresh exact-head eight-locale/translation-ledger/browser/a11y evidence instead. No close, parent bypass, force push, destructive rebase, self-approval, or predecessor GREEN transfer.
seonghobae
left a comment
There was a problem hiding this comment.
Exact parent #823 has now moved to d9db463 with ADR0292/v2.49.0. This head remains a valid but stale historical incomplete-post comparison delta with collided ADR0291/v2.48.0 identity. I am reconstructing only the incomplete-post comparison behavior from exact #823, preserving inherited ADR0290/0291 authorization fail-close and ADR0292 singular-badge semantics, reproducing the identity/governance RED first, then assigning ADR0293/v2.50.0 as Proposed. No historical GREEN or parent bypass will be reused.
Summary
Preserve the valid grouping-comparison leftover-map incomplete-post coverage delta while serializing it on the promoted exact #823 parent. Historical ADR/release numbering is evidence only, not current authority.
Current stack authority
#824 targets exact
#823@d9db46353c4a5ca5298b1376d27570b7091b59b3. Product head is now499d653ed6e9206249e3f3a07518ad3fc01f14bd, preserving historical #824 head41d65a82ef0f0397714f4876093aee0acc66357aas first parent and exact #823 as second parent with the independently GREEN clean reconstruction tree. Promotion was non-force.Current identity order is #820 ADR0289/v2.46.0 → #821 ADR0290/v2.47.0 → #822 ADR0291/v2.48.0 → #823 ADR0292/v2.49.0 → #824 ADR0293/v2.50.0. ADR0293 remains Proposed while Draft; the historical ADR0291/v2.48.0 identity is evidence only.
The product delta is narrow: grouping-comparison rows may show persisted leftover-map incomplete-post count through
leftoverMapIncompletePostCount; missing, non-integer, negative, or complete-case-inconsistent dropped count omits only the comparison note, while persisted valid dropped0remains visible. Never derive dropped posts from scored-minus-used, leftover-pair count, plotted markers, distance, rank, post/item coverage, incomplete-item coverage, or unused-axis count. No SQL/schema/new measurement authority.Authorization invariant
This aggregate inherits ADR0290's full-visible-grouping boundary. Persisted grouping-level coverage or incomplete-count facts are shown only when the caller can see the full persisted grouping population. If ABAC hides any grouping member, omit the aggregate rather than disclose a hidden full-population count or recalculate psychometric coverage/counts from the visible subset.
RED → repair → GREEN evidence
Fresh review
5127078809recorded the stale-parent/identity finding. r134068275700failed before RED on an App.tsx 3-way conflict with #823 singular-badge changes. r234068418924removed that overlap but failed closed before RED because it used the historical multiline count marker rather than current #823's one-line marker. Neither lane contributes product evidence.r3
34068514467restarted from exact #823 and completed terminal GREEN: non-overlapping historical regressions/locales reapplied, App source synthesized against exact current markers, realistic missing-ADR0293 governance RED reproduced, minimal ADR0293/v2.50 repair applied, ADR0290/0291/0292/0293 governance plus package-version GREEN, focused coverage/App/i18n GREEN, oxlint GREEN, production build GREEN, Storybook GREEN, authority verification GREEN, and workflow-free clean staging creation. Clean staging commit8fd7ec2b38fa710bf0d9caa43c2288a62dc08456has tree12ed25168e66e65b8090a9edf3ff42a62b302c56and exact #823 as its sole parent. The product merge commit uses that exact tree.Descendant boundary
#825 remains the explicit child and must now refresh to exact
#824@499d653ed6e9206249e3f3a07518ad3fc01f14bd, then reconstruct its valid incomplete-item comparison delta as ADR0294/v2.51.0. Do not close valid deltas, keep collided historical identities, bypass parents, force-push, destructively rebase, self-approve, weaken gates, or reuse predecessor evidence.UI / i18n delivery boundary
The canonical eight-locale/versioned translation-ledger and material-screen consumer path remain owned by #922/#929/#932. This PR does not create a competing ledger or treat English fallback as translated coverage. Source contracts/lint/production build/Storybook are GREEN, but fresh exact-product-head rendered responsive, keyboard/focus/a11y and eight-locale consumer evidence remain required.
Evidence boundary
Keep Draft. Isolated reconstruction GREEN is not hosted exact-product-head required-check GREEN, authenticated PostgreSQL/k6 acceptance, browser/a11y acceptance, immutable release evidence, or a qualifying independent current-head APPROVE.
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.