FOLDER SPACE DETECTIVE v1.1.13
==============================

Live commercial release: Pro is €9.99 one-time through Lemon Squeezy, with a perpetual licence for up to 3 PCs and 12 months of updates. The newest eligible version remains usable indefinitely. New installations retain the local 14-day Pro trial.

- Verified the existing live checkout at €9.99; existing product and variant licence bindings are preserved.
- Retains the v1.1.12 active Quick Search stale-delete fixes and continuous NTFS journal correctness backstop.
- Updated the Index Service build identity to match v1.1.13.

FOLDER SPACE DETECTIVE v1.1.12
==============================

Folder Space Detective v1.1.12 fixes the remaining visible stale-delete case in an already-open Quick Search. If Explorer/OneDrive removes a file but both the filesystem watcher and NTFS-journal path reconstruction miss that delete, FSD now verifies the results the user is actually looking at and removes physically missing files instead of leaving a dead row on screen.

WHAT'S NEW
----------
- Returning to FSD after switching to Explorer triggers a one-off existence check of the current Quick Search results, matching the common search -> delete externally -> return workflow.
- Narrow active Quick Searches also verify displayed result paths every 750 ms as a lightweight final correctness backstop.
- Physically missing rows are written into the live search tombstone delta, so they disappear from the current grid and do not simply reappear on the next keystroke.
- Broad searches do not continuously stat thousands of paths; periodic checks are limited to 512 displayed results, while the activation check runs only once when the FSD window regains focus.
- Ambiguous failures such as access denied or a temporarily unavailable provider are not treated as deletion, preventing false removal of valid files.
- Added a regression using the exact `Teren_BattleMaterialize_Step01_v001 - Copy.mp4` / `teren battle .mp4` scenario: the file is indexed, deleted without any live-monitor notification, detected as physically gone, tombstoned and confirmed absent from Quick Search.

FOLDER SPACE DETECTIVE v1.1.11
==============================

Folder Space Detective v1.1.11 fixes a long-running live-index gap where a newly created file could appear in Everything immediately but remain absent from FSD indefinitely. FileSystemWatcher is still the fastest notification path, but FSD now keeps the NTFS change journal running as a permanent correctness backstop for the whole open session instead of stopping that journal tail after detailed-index startup finishes.

WHAT'S NEW
----------
- NTFS journal tailing now continues for the entire live-monitoring session, including after the detailed mutable index has fully loaded.
- Missed FileSystemWatcher or OneDrive/Cloud Files notifications are recovered on the next journal poll instead of leaving Quick Search permanently stale.
- The journal runs as a slightly slower correctness backstop while FileSystemWatcher remains the low-latency first line, avoiding a second high-frequency UI event stream.
- Duplicate watcher/journal records are collapsed and no-op mutable-tree updates are suppressed before publishing Quick Search changes.
- A rolled or invalid runtime journal cursor is rebased so future live changes remain protected rather than silently losing the journal safety net.
- Continuous journal progress uses a runtime-only cursor. It does not advance the persisted saved-index checkpoint unless the corresponding mutable tree has also been saved, preserving restart correctness.
- Added a regression that disables every FileSystemWatcher after live-index handoff, creates the exact `Teren_BattleMaterialize_Step01_v001.mp4` case, verifies `teren .mp4 battle` reaches Quick Search through the journal alone, then verifies journal-only deletion as well.

FOLDER SPACE DETECTIVE v1.1.10
==============================

Folder Space Detective v1.1.10 fixes the remaining stale-delete case seen in OneDrive-backed locations while the detailed live index is still loading. FileSystemWatcher remains the low-latency first line, but FSD now also tails the NTFS journal during that long loading window so Explorer/OneDrive deletes and renames cannot remain visible just because a cloud filesystem notification was missed.

WHAT'S NEW
----------
- While the detailed mutable index loads, FSD continuously tails the NTFS change journal from the latest known position and immediately publishes delete/rename tombstones into Quick Search.
- Lightweight filesystem and OneDrive watchers remain active in parallel, so normal changes still arrive with the lowest latency while the journal acts as a correctness backstop.
- Detailed-index loading now reports an approximate percentage based on compressed index bytes consumed instead of leaving the status at an indefinite “Loading live index…” message.
- Quick Search remains usable during detailed loading; the percentage describes background live-index attachment, not a requirement to wait before searching.
- Retains the v1.1.9 all-roots pre-arm/handoff fixes, the v1.1.8 near-immediate active-search refresh and the v1.1.7 per-keystroke Quick Search preview.

FOLDER SPACE DETECTIVE v1.1.9
=============================

Folder Space Detective v1.1.9 fixes a startup ordering bug that could leave later indexed roots stale while an earlier root was still loading its detailed mutable index. In that state Ctrl+Alt+F could search the saved catalogue immediately, but create/delete/rename changes under a later root were not being watched yet, so the visible results stayed stale even though Quick Search itself was responsive.

WHAT'S NEW
----------
- Lightweight live-search watchers are now armed for every enabled saved index before any expensive per-root journal catch-up or detailed tree loading begins.
- A slow first root can no longer delay live change monitoring for the second, third, or later indexed roots.
- OneDrive/cloud auxiliary watchers are also pre-armed in that first pass, so cloud-backed folders under a broad indexed root can publish create/delete/rename deltas while detailed loading is still in progress.
- Detailed mutable-index loading remains sequential to avoid disk/GC storms; only the cheap search-freshness watchers start together.
- Startup watcher handoff remains lossless and queued watchers are disposed safely on cancellation or failure.
- Delete and rename events now emit search tombstones even when the detailed mutable tree has not yet attached a path that the lightweight watcher already exposed, preventing stale create-then-delete rows or duplicate old/new rename results.
- Retains the v1.1.8 near-immediate active-search refresh and the v1.1.7 per-keystroke Quick Search preview.

FOLDER SPACE DETECTIVE v1.1.8
=============================

Folder Space Detective v1.1.8 makes live changes in already-indexed locations appear in an active Ctrl+Alt+F / All Indexed search almost immediately. The previous build deliberately waited for a long quiet window before refreshing visible search results after filesystem changes, which could make a newly-created, renamed or deleted file feel stale even though the index had already received the update.

WHAT'S NEW
----------
- Active Quick Search now consumes ordinary live create/delete/rename deltas immediately once the index monitor publishes them, instead of waiting for the old 900 ms quiet-window refresh.
- Repeated filesystem activity no longer restarts the live-search guard timer, so busy indexed folders cannot postpone visible freshness indefinitely.
- User typing still takes priority through a short 180 ms guard, preventing background index churn from interrupting keyboard-driven searches.
- The visible live-update UI drain is reduced to 50 ms while remaining coalesced, so normal indexed-file changes feel immediate without restoring the old Dispatcher backlog problem.
- Bulk/startup reconciliation remains on the slower coalesced path so OneDrive/build churn cannot continuously rebuild large views.
- Retains the v1.1.7 per-keystroke progressive Quick Search work and the long-session protections from earlier 1.1.x releases.

FOLDER SPACE DETECTIVE v1.1.7
=============================

Folder Space Detective v1.1.7 makes Ctrl+Alt+F / Quick Search react on each filename keystroke instead of waiting for the full catalogue query to finish. It paints a small immediate preview, narrows the already-visible in-memory matches synchronously as more characters arrive, and performs the authoritative full-index refinement asynchronously after a short quiet window. The release remains Live through Lemon Squeezy and new installations retain the 14-day Pro trial.

WHAT'S NEW
----------
- Plain one-term filename searches now update the result grid immediately on each keystroke with a small progressive preview instead of waiting behind the old debounce/full-query path.
- Additional characters synchronously narrow the currently visible preview before any catalogue I/O, so typing such as `r` -> `rp` -> `rpg` visibly reacts within the next UI frames.
- The full multi-root catalogue result still replaces the provisional view asynchronously, preserving authoritative correctness and live-index freshness.
- The cold first Find keystroke enters All Indexed mode and schedules Quick Search immediately while still using the progressive filename path.
- Reduced provisional materialization to a viewport-sized result set so interactive typing does not spend time constructing thousands of rows the user cannot yet see.
- Updated the NTFS Index Service build identity so same-version service-side fixes are detected and stale services can be updated correctly.
- Added real Internal Pro UI validation covering `r`, `rp`, and `rpg` result updates at 50 ms after each input change on the active indexed machine.

FOLDER SPACE DETECTIVE v1.1.4
=============================

Folder Space Detective v1.1.4 fixes the long-open Ctrl+Alt+F degradation that still remained in v1.1.3. The previous regression held the detailed-tree gate, but aged name-only searches could instead touch the mutable search-snapshot gate while background snapshot/catalogue compaction repeatedly rebuilt multi-million-entry structures. v1.1.4 keeps ordinary name-only queries on the persisted name catalogue plus bounded live delta, counts unique overlay paths instead of raw filesystem events, and waits for a quiet period before expensive snapshot/catalogue compaction. The release remains Live through Lemon Squeezy and new installations retain the 14-day Pro trial.

WHAT'S NEW
----------
- Fixed Ctrl+Alt+F becoming extremely slow again after FSD had been left open for hours on a busy monitored C:\ / OneDrive / development tree.
- Name-only Quick Search such as `rpg` no longer touches the mutable search-snapshot gate after live-delta overflow; it stays on the persisted name catalogue plus bounded live changes.
- Common one-term filename searches now scan a cached UTF-8 name catalogue without allocating a .NET string for every indexed item, removing the remaining full-name-catalogue allocation cost from interactive Ctrl+Alt+F searches.
- Mutable search-snapshot rebuilds are now driven by unique changed paths instead of every repeated watcher event, use a much higher threshold, and wait for a quiet window before allocating a replacement multi-million-entry array.
- Full persisted Quick Search catalogue compaction is also quiet-period debounced, preventing continuous full rewrites while filesystem activity is still arriving.
- Strengthened the regression to hold the actual mutable search-snapshot gate; the v1.1.3 test held the wrong gate and therefore missed the real aged-process failure.
- Name-only Quick Search no longer falls back to a full mutable-namespace enumeration after the live delta reaches its long-session threshold; it uses the compact persisted name catalogue and merges the retained recent live overlay instead.
- Added a regression that deliberately overflows the long-session live delta and fails if a short `rpg` query performs a full mutable namespace walk.
- Retains the v1.1.2 fix that keeps whole-index serialization plus Quick Search/folder catalogue generation off the WPF dispatcher during scheduled/background persistence.
- Added a Cleanup guidance column to scan/search results with conservative categories: Usually safe, Review first, Use app/Windows, and Protected.
- Added right-click Cleanup guidance… details explaining why FSD classified the item that way and what action is recommended.
- Windows-managed files such as pagefile.sys/hiberfil.sys, Windows Update/system content, Recycle Bin internals, Program Files, ProgramData/AppData and launcher-managed game folders are routed away from blind manual deletion.
- Downloaded installers/archives and ordinary user data are marked Review first rather than being falsely labelled safe.
- User temporary files, browser caches and scanned empty folders are surfaced as usually-safe candidates with caveats.
- Direct Recycle Bin/permanent cleanup is blocked for app/Windows-managed or protected items; CleanupService enforces the same guard even if a UI path is bypassed.
- Added regression coverage for classification, guard enforcement and Cleanup Guidance UI wiring.
- Fixed the remaining cold-launch and post-warm Ctrl+Alt+F delay: large OneDrive/restart reconciliation batches are now bounded before the detailed mutable index has loaded, and the tiny bounded live-delta snapshot is taken synchronously with a non-blocking TryEnter instead of queueing behind startup work on the ThreadPool. The first global search and later searches can immediately use the saved/live accelerator; browsing a folder first is no longer required to make Quick Search fast.
- Fixed the real post-startup Ctrl+Alt+F slowdown: after live restart reconciliation switched a large index into mutable-search mode, selective queries such as `2026 .mkv` were bypassing the fast saved-index accelerator and traversing the entire mutable tree. The live tree now maintains its own extension lookup, so the same selective search remains fast before and after live monitoring warms up.
- Quick Search now writes and uses compact extension-postings sidecars, so selective searches such as `.mkv 2026` jump directly to matching-extension catalogue rows instead of linearly scanning every indexed file and folder.
- Existing saved indexes are upgraded to the new Quick Search accelerator in the background without rescanning the disk, while live upserts/deletes continue to override the persisted postings correctly.
- Fixed `pick:latest per:name` returning an older executable when a newer source-version directory arrived but its nested files were not fully ingested by live indexing.
- Large or slow directory arrivals now receive an off-UI-thread deferred subtree reconciliation after the fast 500 ms watcher attempt, preserving responsiveness while restoring eventual correctness.
- Child file events self-heal missed parent-directory notifications by scheduling the highest missing attachable directory for targeted reconciliation.
- Shallow non-empty directory placeholders are automatically reconciled when later filesystem activity proves they contain content.
- Known directories now receive a cheap one-level child probe after a metadata Changed event, covering synced/cloud folders that collapse a child creation into a parent-directory notification.
- Startup Quick Search/journal handoff preserves timed-out directory reconciliations instead of dropping them.
- Refresh handoff and restart journal replay now finish changed-directory reconciliation before advancing the NTFS journal checkpoint; a partial/shallow subtree can no longer be treated as fully consumed.
- Older affected saved indexes receive a bounded recent-refresh verification pass that repairs mismatched recent subtrees against the real filesystem and persists the corrected baseline.
- Added a regression reproducing a Downloads Detective v0.3.21 baseline followed by a live v0.3.22 directory publish and verifying that the newest-per-name query selects v0.3.22.
- Fixed newly published folders occasionally disappearing from Quick Search during the startup-watcher to detailed-watcher handoff.
- The detailed watcher now starts first, then the startup watcher stops accepting new events, waits for in-flight processing, flushes its remaining queue, and only then disposes.
- Pending startup events can no longer be cancelled merely because the detailed mutable index finished loading.
- Added regression coverage that enforces flush-before-dispose ordering and the handoff guard.
- Added a dedicated Find syntax reference covering plain AND terms, quoted phrases, \folder path shorthand, .ext extension shorthand, ext:, in:, path:, name:, name=, type:, ! exclusions, pick: variants and per:name.
- Added a Find FAQ & powerful examples section with copyable recipes for common workflows.
- Added examples for the latest matching item, latest per unique filename, excluding BrowserHost/QA helpers before picking latest, second/third/newest-three/oldest selection, ancestor-folder searches, exact filenames, folder-only searches and path exclusions.
- Clarified the difference between a leading backslash path shorthand, in: ancestor-folder matching and path: full-path matching.
- Clarified that per:name requires pick:, and that pick:new, pick:latest and pick:newest are equivalent.
- Added regression QA to keep the syntax reference and power-search examples from disappearing.
- Added per:name to group matching results by exact filename, case-insensitively, before applying pick:.
- pick:latest per:name returns one newest result from each unique filename group.
- pick:2 per:name, pick:3 per:name and pick:1-3 per:name apply the same Nth/range semantics independently inside every name group.
- pick:oldest per:name and pick:last per:name return the oldest result from each unique filename group.
- per:name without pick: is treated as incomplete and shows a clear hint instead of silently assuming newest.
- Unsupported per: groupings show a clear message; per:name is the only grouping mode currently supported.
- Per-name candidate pooling works in persisted catalogue search, mutable live-index fallback and the final multi-root merge.
- Filename grouping is exact but case-insensitive.
- Updated Help, Find tooltip and regression QA for per:name.
- Added pick:new as an alias for pick:newest.
- Added pick:latest as an alias for pick:newest.
- Updated Search Help, Find tooltip and regression QA to document and verify the aliases.
- Added pick:newest to return only the newest matching result by Modified date.
- Added pick:2, pick:3 and other numeric ranks for the Nth-newest matching result.
- Added pick:1-3 style ranges to return a Modified-date rank range.
- Added pick:oldest and the pick:last alias for the oldest matching result.
- Spaces after pick: are optional, consistent with the rest of the search grammar.
- pick: is a result modifier, not a filename/path term, so normal matching remains unchanged.
- Multi-root Quick Search keeps enough candidates from each indexed root and applies the final rank globally.
- Excluded paths are removed before pick: ranking, preventing an excluded newest item from hiding the next valid result.
- Persisted catalogue and mutable live-index search both support pick:, including live delta items.
- Added Help/tooltip examples and regression coverage for newest, Nth-newest, ranges, oldest/last, result caps, exclusions and live deltas.
- Fixed FSD becoming Not Responding when Ctrl+Alt+F / Find is used while live-monitor startup reconciliation is active.
- Isolated the failure with UI Automation: plain startup remained responsive, Quick Search passed with live monitoring disabled, and hung with live monitoring enabled even when autocomplete warming was disabled.
- SearchCatalogAsync no longer waits synchronously on SearchCatalogDeltaState.Gate from WPF's UI thread.
- Search-delta snapshots are now acquired on a worker thread with cancellation support before catalogue search continues.
- Large restart-journal batches check the delta cap before walking thousands of incoming paths under the delta lock; when possible they switch immediately to authoritative mutable-index search.
- Binary catalogue scanning remains fully worker-threaded after the asynchronous delta snapshot.
- Added regression wiring that fails if Quick Search can again synchronously acquire/copy the live search delta before background execution.
- Startup maintenance is also sequenced: live-monitor setup first, autocomplete warming second, overdue scheduled refresh last, with render/idle gaps between them.
- Fixed Ctrl+Alt+F / Quick Search becoming unresponsive again after several hours of accumulated filesystem activity.
- The live UI coalescer now caps pending detailed paths at 512; larger undrained batches collapse to a single indexed-root invalidation.
- A hidden/locked/sleeping session can no longer retain tens of thousands of ScanNode objects behind one delayed Dispatcher callback.
- Bulk live notifications immediately discard redundant detailed UI payload.
- The authoritative search-catalog delta is capped at 8,192 paths once the mutable live index is available.
- After that cap, Quick Search stops retaining duplicate per-path history and searches the already-current mutable index directly on a worker thread.
- Mutable-index search returns flat result copies so UI decoration cannot mutate the authoritative live tree.
- Saving/rebuilding the search catalogue resets mutable-search fallback cleanly.
- Replaced the old 5,000-event regression that incorrectly expected all 5,000 paths to remain queued with a 50,000-event stress test that verifies bounded payload plus one Dispatcher drain.
- Added a long-session search-delta regression that overflows the delta cap and verifies Quick Search still finds a newly added live item through mutable-index fallback.
- Added optional whitespace after ':' and '=' for all structured search filters.
- in:"10 jrpgs" and in: "10 jrpgs" now behave identically.
- name:, name=, path:, ext: and type: support the same compact/spaced forms.
- Quoted values remain grouped correctly when separated from the filter token by whitespace.
- A spaced unquoted value consumes only the next token, preserving normal AND semantics for later terms.
- Added regression coverage combining spaced in:/ext:/path:/type:/name: filters and exact spaced name= folder matching.
- Updated Search Help and the Find tooltip to explain that spaces after ':'/'=' are optional.
- Fixed Find keystrokes and mouse clicks feeling delayed while an in:/path-heavy Quick Search was running over a large saved index.
- in: ancestor matching now scans path segments allocation-light with spans instead of GetDirectoryName + Split allocations for every item.
- Query words and wildcard patterns are compiled once per search rather than rebuilt per catalogue row.
- Duplicate search terms typed accidentally (for example .mp4 appearing twice) are de-duplicated before catalogue evaluation.
- Path/in: queries with a cheap name, extension or type condition now reject non-candidates before allocating/decoding their full path from the binary search catalogue.
- Cancellation checks are more frequent for path-heavy catalogue scans so superseded searches unwind faster.
- Partial path-only queries wait for a 550 ms typing pause; path queries that already have a cheap non-path constraint use 300 ms; normal name-only searches remain at 140 ms.
- Live filesystem changes no longer immediately cancel/restart the active user search; they are coalesced behind a 900 ms quiet window.
- Direct SearchCatalogAsync results are not evaluated by the same query a second time before being shown.
- Added allocation/regression QA for the exact in:"10 jrpgs" .mp4 \Output .mp4 style of search.
- Added in: to mean "inside an ancestor folder", without requiring the result filename itself to contain that text.
- Quoted multi-word in: searches match all words within the same ancestor folder name, in any order and not necessarily adjacent.
- Multiple in: filters are ANDed, e.g. in:"10 jrpgs trapped" in:output ext:mp4.
- Added name= for exact case-insensitive item-name matching, e.g. type:folder name="10 jrpgs trapped".
- Kept name: as the existing contains/phrase-style name search and path: as full-path matching.
- Persisted all-index Quick Search now loads path data for in: queries just as it does for path: queries.
- Updated the Search Help section, examples and Find tooltip with in:/name= guidance.
- Added regression coverage for ancestor matching, exact folder names, direct persisted-search behavior and Help documentation.
- Fixed Ctrl+Alt+F opening FSD in a Not Responding state after the app had been left monitoring overnight.
- Removed unbounded duplicate UI-side live-search accumulation in the normal direct-catalog Quick Search path.
- The live monitor already applies every search change to IndexStore before publishing UI notifications; Quick Search now relies on that authoritative delta instead of storing the same paths a second time.
- Legacy detailed-snapshot overlays are hard-capped at 4,096 paths; exceeding the cap drops the detailed snapshot and falls back to direct sidecar search.
- Disabled periodic full all-indexed snapshot rebuilds used only for overlay compaction, avoiding repeated million-node allocations and long-session GC pressure.
- Empty All Indexed searches are no longer re-entered through a new Dispatcher callback for every bulk live/journal batch.
- Ctrl+Alt+F always enters a lightweight direct-search surface rather than binding/retaining a detailed all-index snapshot.
- Global-search summary boxes no longer show stale totals from the previously viewed folder when no detailed snapshot is loaded.
- Cached live-index folder snapshots now acquire the monitor gate on a worker thread, so WPF cannot freeze while the monitor briefly owns that gate.
- Folder opens from Quick Search use the same asynchronous cached-snapshot path.
- Added a regression that deliberately holds the live-index gate and verifies the async snapshot call returns immediately to the caller and completes after the gate is released.
- Fixed a selected row turning inactive/grey by itself less than a second after selection while live indexing refreshed the results view.
- Results-view replacement now preserves both row selection and whether the DataGrid had active keyboard focus.
- Grid focus is restored on the Dispatcher after binding/render work, preventing WPF from immediately knocking the grid inactive again.
- Focus restoration only occurs when the grid was active before the refresh, so Find/Path/dropdown controls do not have focus stolen from them.
- Up/Down continues working through live refreshes without requiring another click.
- Fixed a selected results row becoming inactive/grey after clicking blank space inside the DataGrid.
- Empty results-grid clicks now explicitly return keyboard focus to the DataGrid without clearing the existing selection.
- Up/Down navigation continues working immediately after a blank-grid click.
- Row clicks, column headers and scrollbars keep their normal native mouse/focus behavior.
- Added automated wiring coverage for blank-grid focus retention.
- Fixed a folder showing its correct aggregate size in the parent view (for example 75.55 GB) but briefly showing 0 B / 0 files after opening it from an indexed shallow snapshot.
- The instant-open path no longer runs full-tree exclusion aggregate recomputation on a deliberately shallow snapshot whose grandchildren are intentionally omitted.
- Authoritative cached folder aggregates are preserved while still applying current cleanup-rule presentation.
- Added regression checks that shallow snapshots preserve root and child directory SizeBytes/FileCount/FolderCount values.
- Live and Quick Search view replacement now preserves selected rows by FullPath instead of relying on transient ScanNode object identity.
- Selecting a row no longer loses the selection about a second later merely because a background live refresh replaced the DataGrid collection/view.
- Fixed opening an indexed folder from Ctrl+Alt+F leaving the folder view empty even though the path and aggregate file/folder totals changed.
- Global Quick Search folder results are no longer promoted directly into _root/_current because those result objects intentionally carry no child tree.
- Opening a search-result folder now clears the global Find query as part of leaving All Indexed mode, so the old query cannot immediately filter the opened folder to zero rows.
- FSD first opens a lightweight cached snapshot of the selected indexed folder and its immediate children, avoiding a full subtree clone or disk rescan for normal Current folder view.
- Shallow indexed folder navigation is rehydrated again on subsequent folder opens, so children remain immediately browsable even though their descendants were intentionally omitted from the previous snapshot.
- If the live cached index is not warm, FSD falls back to the saved-index loading path rather than using the flat search result as a fake in-memory scan.
- Added regression coverage proving that a flat Quick Search folder result can be rehydrated into its real child rows from the cached authoritative index.
- Fixed Modified/date sorting getting stuck on one direction after Quick Search replaced the DataGrid view.
- Modified now sorts as DateTime values, not display text, in both oldest-to-newest and newest-to-oldest directions.
- Added one authoritative comparer covering all 10 visible results columns: Name, Path, Kind, Size, % Parent, Files, Folders, Modified, Cleanup rule and Note.
- Added explicit sort mappings for Cleanup rule and Note, which were missing from the previous release.
- Sort direction is now determined from FSD's persistent sort state rather than WPF's transient column SortDirection property.
- Sort arrows are resynchronized after every replacement view, so repeated clicks continue to toggle direction correctly.
- Added executable sort-semantic regression tests for ascending and descending behavior on every column.
- Fixed Quick Search column sorting reverting whenever refreshed search results replaced the DataGrid's ICollectionView.
- The active sort member and direction are now stored independently of the temporary view object.
- Every replacement view reapplies the remembered user sort before it is bound to the grid.
- Column sort indicators stay synchronized with the remembered single-column sort state.
- Added automated regression wiring checks covering persistent Quick Search sorting across view replacement.
- Fixed Ctrl+Alt+F reopening FSD as a blank white/non-responsive window after long unattended monitoring sessions.
- Live index notifications are now coalesced off the WPF Dispatcher before UI work is scheduled.
- A hidden/tray FSD keeps updating its authoritative index but does not rebuild invisible WPF views, autocomplete caches, or combined search snapshots.
- At most one live-update Dispatcher drain can be pending while hidden; thousands of file events collapse into one bounded backlog.
- Restoring the window gives WPF time to render first, then drains the merged live-update backlog after a short delay.
- Added a stress regression that feeds 5,000 detailed live events and verifies they request exactly one UI drain before the batch is processed.
- Detailed delete/recreate ordering and large bulk-update coalescing are also covered by automated QA.
- Fixed indexed-folder navigation appearing stuck while builds, extraction or OneDrive activity generated a continuous stream of live index changes.
- Current-folder live refreshes now snapshot only the viewed folder and its immediate children instead of repeatedly cloning every descendant.
- Recursive views are coalesced to a slower bounded refresh cadence, while all-index Quick Search keeps its prompt live-update path.
- Routine live-monitor batches no longer replace user-facing status text with an endlessly changing "Index updated live" count.
- Live refreshes now track the folder actually being viewed rather than rebuilding the original scan root and potentially jumping navigation back.
- Background live refreshes preserve the current View and Type selections.
- Fixed Quick Search returning 0 results after FSD had been left monitoring for hours because an old deleted-folder tombstone could keep suppressing a live subtree indefinitely.
- Recreated or moved-back files now clear any stale deleted ancestor that would otherwise hide them from the persisted Quick Search catalogue.
- Live UI search overlays use the same ancestor-tombstone clearing logic, so the in-memory view and saved-index search cannot disagree after delete/recreate or move-away/move-back cycles.
- Redundant child tombstones are compacted under broader deleted directories to keep long-running monitor state bounded.
- Added regression coverage for delete-folder -> restore-file -> Quick Search, alongside the existing live create/rename/delete and restart-catch-up tests.
- Fixed a crash when Ctrl+Alt+F Quick Search is opened immediately after an index refresh and Find input overlaps the all-index catalogue rebuild.
- Find and all-index catalogue cancellation tokens are now disposed only by the async operation that owns them, eliminating cancellation/disposal races during rapid typing and cache invalidation.
- Unexpected background Find failures are contained and reported in the status bar rather than escaping the WPF dispatcher and terminating the application.
- Index Service update/repair now waits for the service to fully stop and for Windows to release the old executable before replacing it.
- A post-update health check confirms the installed service version and responsiveness before reporting failure.
- Maintenance failures identify the failed stage (stop, release, copy, registration or start) instead of only returning a generic code.
- Added an optional Folder Space Detective Index Service for NTFS journal access without elevating the desktop application.
- Install, update/repair or remove the service from Tools > Indexing & Background Scanning. Windows asks for administrator approval only for service maintenance.
- The service runs from a private ProgramData copy so future normal FSD upgrades are not blocked by a running service executable.
- The service is local-only and exposes only Ping, NTFS capability and USN-journal read operations; it is not a generic privileged command bridge.
- Named-pipe access is restricted to LocalSystem, Administrators and the Windows SID of the FSD user who installed it, and remote pipe clients are rejected.
- Monitor changes prefers the service for restart catch-up, allowing a valid saved USN checkpoint to replay changes made while FSD was closed.
- The first checkpoint is established by a successful full indexed-root refresh; installing the service alone does not launch a surprise full-drive scan.
- If restart journal history is no longer complete, FSD marks the saved baseline as needing verification but keeps live monitoring active for new changes; watcher overflow or an unsafe incremental failure pauses only the affected root and asks for Refresh Selected Now.
- Added Monitor changes (local NTFS) per indexed root under Tools > Indexing & Background Scanning.
- Live create/modify/rename/delete events update the in-memory index in batches rather than forcing a full drive scan.
- Quick Search overlays live updates immediately, coalesces repeated filesystem notifications, and compacts the full indexed catalogue on a bounded schedule so continuous drive activity cannot starve the rebuild indefinitely.
- Normal folder navigation and folder autocomplete reuse the mutable monitored root so live changes propagate outside Quick Search too.
- New-directory live events are indexed shallowly rather than recursively scanning the whole new subtree, reducing surprise I/O on broad roots such as C:\ and OneDrive-backed folders.
- Live UI refreshes are throttled and only reload the current folder when a change actually overlaps that folder.
- Added single-instance protection so two interactive FSD processes cannot simultaneously monitor or write the same index store; older already-running FSD windows are detected too.
- Added configurable Alt+Up parent-folder navigation, including moving above an opened indexed subtree by reopening the parent through the warmed index when available.
- FSD detects NTFS journal availability and stores checkpoints when accessible. If Windows denies journal access to the normal non-elevated process, live updates still work while FSD is open and scheduled refresh covers downtime.
- Scan and Rescan now show processed files, folders, bytes, elapsed time and ETA in the bottom status area.
- A numeric percentage is shown beside the main progress bar whenever Folder Space Detective has a reasonable estimate; otherwise counters still update with an indeterminate bar.
- Freshly rebuilt saved indexes are retained in memory and reused immediately for normal folder Scan instead of being reopened/decompressed from disk.
- The all-indexed cache automatically starts warming again after index changes, so you no longer need to open Quick Search first before normal indexed navigation becomes instant.
- Quick Search can reuse the same freshly saved in-memory index root during its background warmup.
- Default Cycle View is now Ctrl+Shift+V and Cycle Type is Ctrl+Shift+T, avoiding the standard Ctrl+V Paste shortcut.
- Existing Alt+V/Alt+T and Ctrl+V/Ctrl+T default bindings migrate automatically; custom bindings remain configurable.
- Fixed Rescan deleting a containing saved index when rescanning only a subfolder of that index.
- A subfolder Rescan now leaves its configured parent index untouched; rescanning an indexed root replaces that root's index only after a successful scan.
- Pressing Scan again on the currently open path reuses the current in-memory tree immediately instead of reloading/scanning again.
- Refresh Selected Now shows estimated %, files, folders, bytes, elapsed time and ETA when enough information exists.
- Progress estimates use previous index item totals when available, with a drive-space fallback for first-time drive-root rebuilds.
- Opening an indexed folder from the folder/path box now checks the warmed all-indexed memory snapshot first.
- Warmed folder lookup is a direct FullPath dictionary lookup and retains folder entries only, not a second hash entry for every indexed file.
- A normal folder open never waits for the full all-indexed prewarm. If the memory snapshot is not ready yet, Folder Space Detective immediately falls back to the existing targeted saved-index loader and then to a real disk scan as needed.
- Once the all-indexed task is complete, folder navigation can reuse it immediately even if the final UI cache handoff is still finishing.
- Rescan still explicitly forces a fresh disk scan.
- Opening a warmed folder reuses the exclusions and Cleanup Rule annotations already computed for Quick Search.
- Results-grid columns now resize responsively to use the available width without expanding the app window.
- The grid avoids a horizontal scrollbar when all visible columns can stay above their readable minimum widths.
- If the screen/window is genuinely too narrow, or text is enlarged, horizontal scrolling appears normally instead of over-compressing columns.
- Compact numeric/date columns have sensible maximums, while Name, Path, Cleanup rule and Note absorb most spare width.
- Column minimums respect the current grid font size.
- The initial window is constrained to the current monitor's DPI-adjusted working area, helping high-scale displays such as 4K at 300%.
- The app explicitly uses PerMonitorV2 DPI awareness so moving between differently scaled monitors remains sharp and correctly sized.
- Added QA for 100%, 125%, 150% and 300% scaling profiles plus enlarged text and compact-screen fallback.
- Plain Down from Find now moves to the results grid.
- Plain Down from Min MB also moves to the results grid.
- Ctrl+L focuses/selects the folder/path box by default and is now configurable.
- Ctrl+F focuses Find by default and is configurable; it keeps the current query and places the caret at the end.
- Ctrl+G focuses the results grid from anywhere in the active FSD window and selects the first result if nothing is already selected.
- These focus shortcuts provide clean jumps between folder/path, Find and the results grid without repurposing Left/Right or the folder/path box's Down key.
- Left/Right in Find remain normal caret-editing keys.
- Plain Down in the top folder/path box continues to open/move into folder autocomplete suggestions.
- In the results grid, Up/Down move one row; only Up from the first row returns to Find.
- Page Up/Page Down jump roughly one visible screen of results.
- Home jumps to the first result and End jumps to the last.
- Plain Tab from any results-grid row returns to Find.
- Enter on a selected result reveals it in Explorer without running it; files are selected in Explorer.
- Ctrl+Enter opens/runs the selected item using its normal Windows shell action.
- Shift+Enter opens the selected folder inside FSD, using the exact same internal command as double-clicking that folder.
- All ten in-app shortcuts are configurable under Tools > Quick Access & Startup: Ctrl+L (focus folder/path), Ctrl+F (focus Find), Ctrl+G (focus grid), Alt+Up (parent folder), Ctrl+Shift+V (cycle View), Ctrl+Shift+T (cycle Type), Ctrl+R (toggle Rule matches only), Enter (reveal selected), Ctrl+Enter (open/run selected), and Shift+Enter (open folder in FSD).
- Duplicate and reserved assignments are rejected and every shortcut has a Reset action.
- Escape closes the Help dialog.
- Added View > Default View.
- Current folder remains the default for new/fresh installations.
- Optionally choose All files and folders below here so new scans and folder navigation start in recursive view automatically.
- The preference is persisted between launches and also applies when drilling into folders, using Up, or opening a folder from Quick Search.
- Changing the default applies it immediately to the current normal folder view.
- Fixed multi-second UI stalls when typing in the top folder/path box with very large indexes.
- Folder autocomplete catalogue preparation, matching and ranking now run in the background rather than on the UI thread.
- Saved folder catalogues are prewarmed and cached; rapid keystrokes share the same in-progress catalogue build instead of restarting it.
- Each new keystroke cancels stale ranking immediately.
- Autocomplete compiles the query once and keeps only the best 40 suggestions during ranking instead of sorting every matching folder.
- Empty path text no longer starts a broad autocomplete search.
- Added Tools > Excluded Folders... for global scan/search exclusions.
- Add custom exclusions by typing/pasting a path or choosing a folder with Browse.
- Added "Exclude the Windows Recycle Bin on all drives" so C:\$Recycle.Bin, D:\$Recycle.Bin and equivalent drive-letter recycle bins can be suppressed without adding them one by one.
- Exclusions apply to live scans, saved-index loading, all-indexed Quick Search, folder autocomplete, totals and background index refresh.
- Existing saved indexes are filtered immediately; future scans/index refreshes skip excluded subtrees entirely.
- Parent sizes/counts are recomputed after exclusions, so hidden folders do not continue contributing to totals.
- Excluded folders are a core setting and are not gated behind Pro indexing.
- Quick Search now searches every available saved index automatically.
- Ctrl+Alt+F no longer requires choosing a folder, scanning it, switching to a recursive view, or pressing Enter before searching.
- While Quick Search is active, the path box shows a grey "All indexed locations" scope hint rather than inserting editable text.
- If no folder is loaded and you begin typing in Find, Folder Space Detective automatically switches to all-indexed search.
- Search results now include a Path column so you can immediately see where a file or folder lives.
- Right-click any result-grid header to show or hide columns. Your choices are remembered between launches.
- Overlapping indexed roots are de-duplicated by full path, with newer saved index data preferred.
- The all-indexed catalogue is prewarmed in the background while Folder Space Detective is running, and normal search typing remains debounced/cancellable off the UI thread.
- Fixed plain-term matching so words search item names rather than being satisfied by arbitrary parent-folder text. For example, "live locali .exe" now finds executables whose names contain those words instead of every .exe inside a Live Localiser directory.
- Use path: or a leading backslash when you intentionally want a path match; extension shorthand such as .exe remains supported.

QUICK ACCESS
------------
- The default system-wide Quick Search shortcut is Ctrl+Alt+F.
- The shortcut can be changed or disabled under Tools > Quick Access & Startup.
- The same dialog also lets you change the in-app defaults Ctrl+L (focus folder/path), Ctrl+F (focus Find), Ctrl+Shift+V (cycle View), Ctrl+Shift+T (cycle Type), Ctrl+R (toggle Rule matches only), Enter (reveal selected item) and Ctrl+Enter (open/run selected item).
- Closing the main window can optionally keep Folder Space Detective running in the notification area.
- Folder Space Detective can optionally start with Windows, already minimized in the notification area.
- File > Exit always closes the application completely.

CORE FEATURES
-------------
- Scan a folder or drive and immediately see the largest files and folders.
- Drill into large folders and switch between current and recursive views.
- Storage Overview groups usage into useful categories and supports category or size-heatmap colors.
- Optional persistent indexing speeds repeat scans and powers folder-path autocomplete and Quick Search.
- Advanced Find supports multiple AND terms, exclusions, wildcards and name/path/extension/type filters.
- Cleanup Rules help review reusable cleanup candidates before taking action.
- Delete sends selected content to the Windows Recycle Bin by default; Shift+Delete remains guarded permanent cleanup.
- Protected paths, drive roots and reparse points/junctions are guarded.

FREE / PRO
----------
- New installations start with a 14-day Pro trial.
- The 14-day trial is based on elapsed calendar time from first launch, not the number of days on which the application is opened.
- When the trial ends, the application continues in Free mode rather than becoming unusable.
- Free retains core scanning, drill-down, recursive analysis, Storage Overview, search/filtering, excluded-folder settings and safe single-item cleanup.
- Pro adds persistent indexing/background refresh, indexed autocomplete, all-indexed Quick Search, Cleanup Rules, Rule Matches Only, advanced bulk cleanup workflows and custom size-color rules.
- Help > License & Upgrade provides Buy Pro, Activate, Validate and Deactivate this PC controls.
- Pro is €9.99 as a one-time Lemon Squeezy licence with up to 3 PC activations. The existing live checkout has been verified at €9.99; existing licences continue validating.

LICENSING / PRIVACY
-------------------
- v1.1.2 uses the live Folder Space Detective Pro Lemon Squeezy product and checkout.
- License responses are constrained to the configured Friction Tamer store, Folder Space Detective product and live variant.
- No private Lemon Squeezy API key is embedded in the executable.
- Activated Pro licenses validate periodically with a 30-day offline grace period.
- Production activation state is bound to the live product configuration; stale activation data from pre-release Test Mode builds is discarded automatically.
- Folder Space Detective contains no telemetry, analytics, advertising or scan-data upload.
- Internet access is limited to Lemon Squeezy licensing and opening the checkout page.

DISTRIBUTION
------------
The public Windows x64 package is portable and self-contained. Internal seller/demo tooling is not included in the customer build.
