Add Git overlay, operation tools, and virtualized preview so large folders stay responsive.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -15,6 +15,10 @@ public interface IIndexStore
|
||||
IAnalysisStore Analysis { get; }
|
||||
IHistoryStore History { get; }
|
||||
IHashStore Hashes { get; }
|
||||
IFileRelationStore Relations { get; }
|
||||
IRenameBatchStore RenameBatches { get; }
|
||||
ISyncProfileStore SyncProfiles { get; }
|
||||
IOperationProfileStore OperationProfiles { get; }
|
||||
|
||||
Task RunWriteAsync(Func<IIndexStore, Task> work, CancellationToken cancellationToken = default);
|
||||
Task<T> RunWriteAsync<T>(Func<IIndexStore, Task<T>> work, CancellationToken cancellationToken = default);
|
||||
@@ -78,6 +82,8 @@ public interface ITransferStore
|
||||
{
|
||||
Task<long> InsertAsync(TransferJob job, CancellationToken cancellationToken = default);
|
||||
Task UpdateAsync(TransferJob job, CancellationToken cancellationToken = default);
|
||||
Task<IReadOnlyList<TransferJob>> GetIncompleteAsync(CancellationToken cancellationToken = default);
|
||||
Task<IReadOnlyList<TransferJob>> GetHistoryAsync(int take, CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
public interface ISearchStore
|
||||
@@ -161,6 +167,36 @@ public interface IHashStore
|
||||
Task<IReadOnlyList<DuplicateGroup>> GetDuplicateGroupsAsync(long? sourceId, string? pathPrefix, int take, CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
public interface IFileRelationStore
|
||||
{
|
||||
Task<IReadOnlyList<FileRelation>> GetAmongAsync(IReadOnlyList<long> entryIds, CancellationToken cancellationToken = default);
|
||||
Task UpsertAsync(FileRelation relation, CancellationToken cancellationToken = default);
|
||||
Task DeleteAmongAsync(IReadOnlyList<long> entryIds, IReadOnlyList<FileRelationKind> kinds, CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
public interface IRenameBatchStore
|
||||
{
|
||||
Task<long> CreateAsync(IReadOnlyList<RenameBatchItem> items, CancellationToken cancellationToken = default);
|
||||
Task<RenameBatch?> GetLatestUndoableAsync(CancellationToken cancellationToken = default);
|
||||
Task MarkUndoneAsync(long id, CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
public interface ISyncProfileStore
|
||||
{
|
||||
Task<IReadOnlyList<SyncProfile>> ListAsync(CancellationToken cancellationToken = default);
|
||||
Task<SyncProfile?> GetAsync(long id, CancellationToken cancellationToken = default);
|
||||
Task<long> UpsertAsync(SyncProfile profile, CancellationToken cancellationToken = default);
|
||||
Task DeleteAsync(long id, CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
public interface IOperationProfileStore
|
||||
{
|
||||
Task<IReadOnlyList<OperationProfile>> ListAsync(CancellationToken cancellationToken = default);
|
||||
Task<OperationProfile?> GetAsync(long id, CancellationToken cancellationToken = default);
|
||||
Task<long> UpsertAsync(OperationProfile profile, CancellationToken cancellationToken = default);
|
||||
Task DeleteAsync(long id, CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
public sealed class HashWorkItem
|
||||
{
|
||||
public long EntryId { get; init; }
|
||||
|
||||
Reference in New Issue
Block a user