Repository navigation
Conversation
[Medium impact] The PR appears safe to merge; no actionable issues were found. SummaryLoads nearby ancestor columns on demand and retains recently viewed columns within a viewport-sized budget.
No actionable issues were found. Tests were inspected but not run during this review. Acknowledgment:
|
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.
Summary
Deep column paths currently create a model and rows for every ancestor. Load only nearby ancestors initially, and retain recently shown columns within a viewport-sized count budget so returning does not rebuild them.
Protect the whole current area before eviction, keep short trails resident within the same limit, and preserve selection, scroll restoration, RTL and drag-source lifetime. Retained offscreen models continue watching their folders.
Evidence
Local full suite: 200 passed, 0 failed. Tests cover warm model identity, actual eviction and fresh data, resize bounds, cache/fresh scroll restoration, settings, shrink, RTL, context menus and drops. Actual Left/Right also passes in standalone Qt windows at depths 4 and 24 in both directions. Independent review found no blockers.
Eight interleaved runs per version and scenario, synthetic 500-file ancestor folders, a 783 × 480 software/offscreen Qt 6.12 window on Ryzen 9700X; medians against main:
The 32-alternation stress series still costs 16.4 ms versus 5.3 ms on main, although it creates no new models. Short-path startup is 42.3 → 42.9 ms, approximately unchanged. These are instrumented actual-row readiness measurements, not monitor presentation; native compositor drag and physical smoothness were not measured.
Merge Danger
Door: two-way.
Blast Radius: columns.
Residency is bounded by column count, not arbitrary folder bytes; current/peek models and an active drag are accounted separately. Existing entry caching and already-running directory counts retain their previous behavior. Pending pane-width work will need semantic reconciliation if it lands first. No new runtime dependencies.