Skip to content

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) and cat_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 expiring cat-uploads/ after a day.
  • POST /api/maps/import (the old map ZIP) is removed.