From e8e0eb473fc806c5a5122a3f7030282992bf24f0 Mon Sep 17 00:00:00 2001 From: Diego Palacios <98249751+CodingDiego@users.noreply.github.com> Date: Sun, 11 Oct 2026 10:07:12 -0300 Subject: [PATCH 1/3] FIX: idle CPU, reload storms, hover prefetch and slow terminal; #17 backlog Perf fixes for #9-#16: change-notification reloads debounced to at most 1/s and paused while minimized; sidebar rebuilt every 30 s while shown; hover prefetch only for text and light images, after the pointer stops, with the window in front; preview handler kept for the same file; Home build and icon repaints cheaper; system icon export only for icon_theme=default; icons instead of thumbnails for heavy types in the Icons view; terminal launched off the UI thread by absolute path. #17 backlog: sort and cell cache on the load worker, superseded loads stop early, background tabs keep their change watch and reload only when changed, thumbnails limited to the visible window and fitted on the worker, search hit cap, cancellable USN search, CMF_OPTIMIZEFORINVOKE for canonical verbs, network crumbs not enumerated, 64 KB text preview, second-launch hand-off waits for a busy (not hung) first window. Review fixes: sorting keeps selection and focus on the same items and resets the icon views' image slots; a shell-wide notification no longer restarts a search tab; network tabs catch up on every show; Open terminal also finds wt.exe in PATH's absolute folders. Co-Authored-By: Claude Opus 5.5 --- README.md | 9 +- crates/app/src/commands.rs | 2 +- crates/app/src/folder_options.rs | 10 ++ crates/app/src/home.rs | 34 +++++- crates/app/src/instance.rs | 78 ++++++++++--- crates/app/src/list.rs | 26 +++++ crates/app/src/main.rs | 73 +++++++++--- crates/app/src/nav.rs | 189 ++++++++++++++++++++++++++----- crates/app/src/panes.rs | 33 +++++- crates/app/src/preview_pane.rs | 77 ++++++++++--- crates/app/src/session.rs | 7 ++ crates/app/src/source.rs | 33 ++++-- crates/app/src/thumbs.rs | 92 ++++++++++++--- crates/app/src/ui.rs | 31 ++++- crates/app/src/views.rs | 89 ++++++++++++--- crates/core/src/icons.rs | 9 +- crates/core/src/menu.rs | 5 +- crates/core/src/notify.rs | 75 ++++++++++-- crates/core/src/preview.rs | 24 +++- crates/core/src/settings.rs | 4 +- crates/core/src/usn.rs | 16 ++- scripts/bench-vs-explorer.ps1 | 9 +- 22 files changed, 777 insertions(+), 148 deletions(-) diff --git a/README.md b/README.md index 095cc2e..d31174a 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Sidebar, every row read from the shell with its localized name and icon: Click a row to go there; the row of the current folder, or of its nearest ancestor, is highlighted. Right-click a pinned Quick Access folder for **Unpin from Home**, a frequent (not pinned) one for **Pin to Home**, a bookmark for **Remove bookmark** (its `bookmark.