Public Access
Stop a finished push deleting the edit made while it was in flight, and pull a newly synced type from the start
- The outbox coalesces a new save into the row a push already read, under a new operation id, but Complete, Revise and Park found the row by sequence alone. The acknowledgement of the earlier state deleted the row holding the later one and the edit was gone without a word. They now take the PendingOperation and act only while the row still holds it; a later edit is rebased onto the version just accepted, so it pushes cleanly instead of conflicting with its own earlier save. - A pull filtered by type moves the cursor past changes of types it did not ask for, so a build that added a type (SpelunkKey, ObjectStore) never received the items of that type made before it. sync_state.pulled_types records the list a cursor was read under, and a different list starts the pull over once. Migration AddSyncStatePulledTypes.
This commit is contained in:
1 parent
03c8e8589a
commit
f332d9a56f
12 files changed
+757
-31
No files matched your search
@@ -327,7 +327,7 @@ internal sealed class VaultItemRepository<TSecret>(
|
||||
|
||||
if (pending is not null && NeverReachedTheServer(pending))
|
||||
{
|
||||
await outbox.CompleteAsync(pending.Sequence, cancellationToken).ConfigureAwait(false);
|
||||
await outbox.CompleteAsync(pending, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
// Recorded even though nothing goes to the server. Somebody created an item and then removed it,
|
||||
// which is two things they did — and a log that showed only the create would describe a keychain
|
||||
|
||||
Reference in new issue
Block a user