You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Deletion guard does not pause on a large mass deletion (87% of folder) #204
During end-to-end validation, a folder with 300 synchronized flat files had 260 of them removed locally (87%, well above the account's thresholds of count=10 / percent=20%). Expected: the deletion guard pauses sync and raises DeleteReview before the engine propagates the deletions to the server. Observed: the folder returned to Sincronizado (IdleOk) and the deletions were processed; the guard never paused.
In an earlier smaller test (12 of 20 removed, i.e. 60%, also above percent=20%) the guard did pause and raise DeleteReview.
Why it matters
The guard exists precisely to stop an accidental mass deletion from reaching the server. A 260-file deletion is the worst case for that, and it did not pause. This is a real reliability gap in the safety feature, independent of the proactive notification work (#203).
A test folder ~/temp/nextsync-test synced 300 flat files to a remote path, then 260 were removed locally in one shot.
The removal was detected (folder re-synced), but the guard did not flag it. The same folder path had been used for a previous (12-file) test, so the engine may have carried a baseline/journal that changed the guard's view — worth investigating.
What to investigate
How the guard derives "previously present" paths (journal/baseline) and why an 87% removal did not exceed the effective threshold.
Whether the engine's async reconciliation runs before the guard scans (race), letting deletions propagate unfiltered.
Whether the previous test run left a stale journal/baseline that skewed the comparison.
Acceptance
A delete of a high fraction (> count and > percent threshold) of a folder's files pauses sync and surfaces DeleteReview before the engine propagates, consistently (not just for the 12-file case).
Resolved: not a guard bug, an artifact of the test setup
After a clean reproduction this turned out to be a testing artifact, not a deletion-guard defect.
What I saw originally
Test folder A (remote /NextSync-Test, previously used in an earlier test): 300 files synced, 260 removed → the guard did not pause; the engine processed the loss and the guard manifest was re-based to the post-loss state (60 files).
260 files removed locally → the tray flipped to "Revisar borrados masivos" (DeleteReview) and the engine paused. So with a correct baseline the guard works for an 87% deletion.
Cause of the original miss
The first test reused a remote_path and a guard manifest that were already contaminated/overwritten by the earlier run, so the baseline did not reflect the 300-file set and the guard was blind to the deletion. Not a code-path failure in the guard.
Outcome
The guard logic is correct (verified by mass_deletion_is_blocked and the clean repro).
A real UX gap did surface: the summary for a large flat deletion collapsed to a bare counter. That is addressed in Preview loose files in the mass-deletion summary #206 (released in v0.2.20): the review now previews loose files.
Closing as won't-fix / test artifact. If you later see a mass deletion that does not pause on a folder with a healthy (fresh) baseline, reopen with that repro — that would be a real regression.
Activity
gnacho commentedon Sep 8, 2026
Resolved: not a guard bug, an artifact of the test setup
After a clean reproduction this turned out to be a testing artifact, not a deletion-guard defect.
What I saw originally
/NextSync-Test, previously used in an earlier test): 300 files synced, 260 removed → the guard did not pause; the engine processed the loss and the guard manifest was re-based to the post-loss state (60 files).Clean reproduction (remote
/NextSync-Test2, fresh manifest)DeleteReview) and the engine paused. So with a correct baseline the guard works for an 87% deletion.Cause of the original miss
remote_pathand a guard manifest that were already contaminated/overwritten by the earlier run, so the baseline did not reflect the 300-file set and the guard was blind to the deletion. Not a code-path failure in the guard.Outcome
mass_deletion_is_blockedand the clean repro).Closing as won't-fix / test artifact. If you later see a mass deletion that does not pause on a folder with a healthy (fresh) baseline, reopen with that repro — that would be a real regression.