Skip to content

fix(pixel): show omitted lines across alternating diff rows - #5077

Merged
gabsprogrammer merged 1 commit into
Osmantic:public-betafrom
0xacee:fix/pixel-diff-retain-gaps-across-replacement-rows
Sep 14, 2026
Merged

gabsprogrammer merged 1 commit into
Osmantic:public-betafrom
0xacee:fix/pixel-diff-retain-gaps-across-replacement-rows

Conversation

@0xacee

@0xacee 0xacee commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

A truncated Pixel file diff can display nonconsecutive replacements without an omission marker. Added rows have no old line number and removed rows have no new line number, so comparing only adjacent rows loses both positions across alternating replacements.

Track the last observed old and new positions independently. Mark each omitted span before the affected side's next retained row, without synthesizing context or changing verified counts.

Why this matters

Reviewers must see where source text was omitted instead of reading separated edits as contiguous. The shipped snapshot producer skips an individual row that exceeds its remaining response budget, then retains smaller later rows, so this is reachable with a long unchanged line between two replacements.

Overlap check

Searched open/closed titles and PixelFileChanges.jsx changes for diff gaps, omitted lines and context. #4027 is a broader UI/workspace proposal; #4147 (merged) adds filters/folding and #4320 (merged) binds clipboard receipts. None preserves line coordinates across opposite-side rows.

Validation

  • Generated the committed small receipt fixture through real publish_snapshot + snapshot_changes calls using two temporary 300 KB publications; their oversized unchanged middle row is omitted by the real 256 KiB diff budget.
  • Baseline: three failing component cases. Fixed: all 21 file-change, snapshot, filter, folding and clipboard tests pass.
  • Consecutive replacements retain four displayed rows and do not acquire false gaps.
  • Production frontend build passes. Full lint has no errors; the pre-existing 597 warnings remain after suppressing the JSX false-positive on the new test import.
  • No publication bytes, source comparison logic or clipboard payloads change.

AI assistance and review

AI-assisted implementation and validation. Independent review remains pending. This is a frontend presentation change; the publisher was exercised on isolated real filesystem snapshots, not a running user stack.

Review status and composition

Candidate ab93c45: 4 skipped, 32 success. Independent review remains outstanding.

All 20 companion changes compose at local synthetic head aef9e2e41b8acfe6e7f3e548d0affae03c88fb7f: 1,112 frontend tests, 72 focused API tests and the related CLI suites pass; frontend build/lint pass (0 errors, 597 existing warnings), and all 24 workflow YAML files parse. This unpublished test head also includes #4986/#4987, #3039 and the #3189/#3288 tests; it is not an installed-stack qualification.

@gabsprogrammer
gabsprogrammer merged commit 6a3277b into Osmantic:public-beta Sep 14, 2026
36 checks passed
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.

2 participants