Add host activity and DB browser, and keep dialogs, drag-drop, and idle maintenance responsive.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-28 02:03:52 +02:00
parent b72c375e87
commit b33a78dbbe
45 changed files with 3254 additions and 171 deletions

View File

@@ -26,7 +26,7 @@ public sealed class FolderReconciler
_preferences = preferences;
}
public Task ReconcileAsync(Source source, string pathRel, CancellationToken cancellationToken)
public Task<bool> ReconcileAsync(Source source, string pathRel, CancellationToken cancellationToken)
=> ReconcileAsync(source, pathRel, cancellationToken, verifyChildren: false);
public Task<bool> ReconcileAsync(
@@ -74,11 +74,25 @@ public sealed class FolderReconciler
return false;
}
if (!Directory.Exists(full) || LocationClassifier.IsRecycleBinName(parent.Name))
if (LocationClassifier.IsRecycleBinName(parent.Name))
{
return false;
}
if (!IndexedPathPresence.DirectoryExists(full))
{
if (string.IsNullOrEmpty(pathRel))
{
return false;
}
var gone = DateTimeOffset.UtcNow;
await _store.Entries.TombstoneByPathPrefixAsync(source.Id, parent.PathRel, gone, cancellationToken)
.ConfigureAwait(false);
await _store.Entries.TombstoneAsync(parent.Id, gone, cancellationToken).ConfigureAwait(false);
return true;
}
var live = await _providers.EnrichAsync(_enumerator.EnumerateChildrenSafe(full, out _), cancellationToken)
.ConfigureAwait(false);
var indexed = await _store.Entries.GetChildrenAsync(source.Id, parent.Id, EntryStatus.Present, cancellationToken)