-
Require CDN_BASE_URL everywhere so no cover URL can expire
-
Lower the browser upload cap to 2 GiB
-
Exorcise sweep: strip AI tells from server copy, comments, and docs
-
server: adopt lint block, fix clippy, fmt
-
Format the tree with rustfmt and add the lint + supply-chain gates
-
Fix the blob presign size declaration, bind part checksums
-
server: reap abandoned multipart sessions in the orphan cleanup
-
server: route promote through multipart copy above 5 GiB
-
server: expose client-direct multipart on StorageBackend
-
server: split public image content into a separate CDN bucket (S1)
-
Scan-then-promote uploads to immutable content keys (C1)
-
Add copy_object and content-addressed key foundations for scan-then-promote
-
server: cap buffered scan download to recorded size + slack