Fix the viewer model items from the review - #889
Merged
Merged
Conversation
- Removing the entry being read, locally or from the owner's listing, no longer leaves the selection on an entry inside a folded group: it moves to the nearest visible one, with the search Toggle already had. - A text selection is tied to the text it was dragged across, the entry's built view, so a re-run under the same key ends it rather than highlighting and copying rows the reader never selected. A status change keeps it. - Moving the selection closes an open entry menu, whose items act on whatever is selected when clicked. A focus from the tray or an IDE, or one riding a re-sent snapshot's listing, retargeted Discard onto another entry. - "Accept all in <solution>" holds its deletes on its own members' accepts, failed ones included, not on statuses other accepts left in the queue. - The variant a reader cycled to is kept by the frameworks it holds, not by its index, across a settle or a re-run that drops or merges variants before it. - A BMP height of int.MinValue reads as unknown rather than throwing in Math.Abs, which made the side unreadable. - A tracked file that stats but cannot be read is retried every two seconds rather than re-read and re-diffed five times a second, and an unchanged re-read keeps the entry held, so an attached viewer's menu stays open. - A watch pass applies what it found only to the entries it looked at, so a pair re-staged under the same key since its stat is not dropped. - Selection columns count code points, one to a cell as every head draws them, so a character outside the basic plane no longer shifts the copy or splits.
This was referenced Sep 23, 2026
Merged
Merged
Merged
Merged
Merged
This was referenced Sep 24, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The "Viewer model" group from
todo.md. Every item had a failing repro on c37bf9e. Those repros are now tests in the class for their topic.RemoveandSyncmove to the nearest visible entry, using the searchTogglealready had (NearestVisible,Reopen)CollapseTests.Accepting_the_entry_being_read…,…A_listing_without_the_entry_being_read…TextSelection.Textholds the entry's built view, andDescribescompares it by reference. Awithkeeps the view and a rebuild replaces itSelectionTests.A_rerun_that_replaces_the_text…,A_status_change_keeps_the_selectionSelectcloses the menu when the entry changesEntryMenuTests(wire focus; a focus riding the owner's listing)notWritten + failed). The queue-wideInlineRefusedscan is gone, and its reasoning moved toSweepTracked'srefusedHeldDeleteTests.An_earlier_failure…,A_failure_in_this_solution_holds_its_deletesSameVariant), falling back to the index only when none matchReEnqueueTests.A_settle_of_an_earlier_variant…,A_rerun_that_merges…int.MinValuethrowsImageHeaderTests,FileSideTestsReadChangesreplaces an unreadable file's entry every pumpReadRetry) rather than five times a secondAttachedViewerTests.AnUnreadableTrackedFileLeavesTheMenuOpen,TrackedWatchTests.AnUnreadableFileIsNotReReadEveryPassTrackedWatchdrops a pair re-staged mid-passRefreshtakes the entries the pass saw and matches them by reference, not by keyTrackedWatchTests.APassDoesNotDropAPairReStagedAfterItsStat,ARefreshLeavesAnEntryThatArrivedAfterThePassSelectionText.Cells)SelectionTests.A_drag_across_one_non_bmp_character…,…after_a_non_bmp_character…,Select_all_ends_on_the_last_cellThe UTF-16 item stays in
todo.md, narrowed: wide CJK characters and combining marks still don't take exactly one cell. Fixing that needs each head to report string positions from its own layout.Refresh's signature changed, so fourTrackedFileTestswere updated to pass the entries a pass saw.The full solution passes locally in Release: 2,065 passed, 24 skipped.