Improve file operations, layout memory, and drive status.
Add a sequential file-operations queue with pause, reorder, and optional auto-clear; persist window size and tree width; show free space; and clear leftover indexing status. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -56,7 +56,7 @@ public sealed class SourceManager
|
||||
source.VolumeSerial = fp.VolumeSerial ?? source.VolumeSerial;
|
||||
source.Kind = fp.Kind;
|
||||
source.LastSeenUtc = _clock.UtcNow;
|
||||
source.Status = source.Status == SourceStatus.Scanning ? SourceStatus.Scanning : SourceStatus.Online;
|
||||
source.Status = await ResolveReachableStatusAsync(source, cancellationToken).ConfigureAwait(false);
|
||||
source.LastError = null;
|
||||
await _store.Sources.UpsertAsync(source, cancellationToken).ConfigureAwait(false);
|
||||
if (source.IsIndexed)
|
||||
@@ -251,7 +251,7 @@ public sealed class SourceManager
|
||||
{
|
||||
existing.LastSeenUtc = _clock.UtcNow;
|
||||
existing.Status = _volumes.IsPathReachable(existing.LastRootPath ?? path)
|
||||
? (existing.Status == SourceStatus.Scanning ? SourceStatus.Scanning : SourceStatus.Online)
|
||||
? await ResolveReachableStatusAsync(existing, cancellationToken).ConfigureAwait(false)
|
||||
: SourceStatus.Offline;
|
||||
await _store.Sources.UpsertAsync(existing, cancellationToken).ConfigureAwait(false);
|
||||
return existing;
|
||||
@@ -346,6 +346,20 @@ public sealed class SourceManager
|
||||
}
|
||||
}
|
||||
|
||||
public Task<Source?> GetAsync(long id, CancellationToken cancellationToken = default)
|
||||
=> _store.Sources.GetAsync(id, cancellationToken);
|
||||
|
||||
private async Task<SourceStatus> ResolveReachableStatusAsync(Source source, CancellationToken cancellationToken)
|
||||
{
|
||||
if (source.Status == SourceStatus.Scanning
|
||||
&& await _store.ScanJobs.HasActiveAsync(source.Id, cancellationToken).ConfigureAwait(false))
|
||||
{
|
||||
return SourceStatus.Scanning;
|
||||
}
|
||||
|
||||
return SourceStatus.Online;
|
||||
}
|
||||
|
||||
private IReadOnlyList<string> LoadRecents()
|
||||
{
|
||||
var file = Path.Combine(_env.DataDirectory, "recents.txt");
|
||||
|
||||
Reference in New Issue
Block a user