v0.162.0 — .cat archives M4: archives of any size
The fourth milestone of the .cat archives program, approved at its gate on 2026-11-09. Tasks, decisions and test script: the milestone file.
- [x] Archives of any size, both ways. An archive past the request limit is uploaded straight to storage and imported from there, with a progress bar; a big export runs in the background and arrives as a notification with a download link that lasts a day, while small exports stay instant. Both work on a self-host's local disk as well as on S3.
- [x] Files reused, not uploaded twice. A file the importer already holds (same bytes) is linked, so importing an archive again is fast and takes no new space.
- [x] Imported things in the Library. Imported tokens, maps and Objects show in the campaign's Library; Also add to my Library copies them to yours.
- [x] A map archive carries its doors' types. The object types and conditions a map's tokens use travel with the map, so a door imported into another campaign keeps its type.
- [x] The old map ZIP is gone. Its import and the Import Map window are removed; maps export and import as
.cat.
For self-hosters and developers
- Migration 0086 adds
stored_files(the hash index behind reuse) andcat_jobs(background exports). Both are created only if missing. CAT_EXPORT_JOB_THRESHOLD_BYTES(default 256 MiB) sets when an export becomes a job;CAT_UPLOAD_MAX_BYTES(default 1 GiB) caps an upload. On S3 or GCS, add a lifecycle rule expiringcat-uploads/after a day.POST /api/maps/import(the old map ZIP) is removed.