mirror of
https://github.com/supabase/supabase.git
synced 2026-10-11 12:25:05 +03:00
The version list endpoint caps a page at 1000 rows. Purging an archived file deleted that one page plus the marker and called it done, so a longer history kept its older versions — and with the marker gone one of them became current again, putting the "permanently deleted" file back in the bucket. It now lists and deletes in rounds until nothing is left, the way the live object purge does. It also deletes versions by id, the current one included, so a restore between opening the dialog and confirming would hand it a live file to destroy. It now re-reads the marker immediately before the first delete and aborts if the path is no longer archived. That narrows the window rather than closing it; only Storage can make the check and the delete one operation. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N3euXsz25sTybsGTcxCFfn