Version history:
- Add "delete marker" as a first-class ObjectVersion action and seed
one into the mock so a stale marker shows up in the history.
- Render it with a struck/dashed thumbnail glyph and a "Delete marker"
label, and drop the download/URL/restore actions — the only useful
action on an empty placeholder is permanently removing it.
- Row is non-clickable (nothing to preview) and dimmed.
- Confirmation copy is tailored to markers (no version id shown, no
"current version is not affected" — there's no meaningful content).
Bucket lifecycle policy form:
- Add a one-line description under the "Lifecycle policy" heading
explaining what these policies do.
- Disable the "Retained noncurrent versions" input when
"Noncurrent version expiration" is empty (S3 requires the
noncurrent-days condition on any noncurrent-count rule). A short
description under the field explains the dependency.
- Clear the retained value on the exact age→empty transition so a
save can never persist an orphaned cap, but keep any pre-existing
orphaned value visible (and editable once age is set again) rather
than silently discarding it on modal open.