Per-app store buckets are unversioned; versioning needs a version-aware delete first Issue open
On branch design-carloku-durability
EnsureBucket (internal/objstore/aws.go:271-292, "Nothing here ever calls PutBucketVersioning", :197) creates carlos-store-* buckets with no versioning and no lifecycle. An overwrite or delete by the app is unrecoverable. The same goes for buckets a deployment adopts (Tito's titogo-uploads, PRO-6190).
The order matters. Once a bucket is versioned, the console's DeleteBucket path fails unless it first deletes every object version and delete marker. So:
- Make the console's store-delete path delete all versions and delete markers, then the bucket.
- Then turn on versioning in
EnsureBucket, with a 30-day noncurrent-version expiry, and backfill existing and adopted buckets.
Design §5.7 (docs/superpowers/specs/2026-10-23-durability-design.md on this branch). Found by Tito's review on 2026-10-23.