Make seeded and uploaded branding revalidate, so an org stops being served the base theme it was seeded with

FixSecurityService
Shipped
August 27, 2026 at 10:59 PM UTC
Author
Kamo
Commit
4f3dab0

A new organization is seeded with the base theme — the platform's own logo and backgrounds copied to the new org's keys — and those keys never change when the org uploads its own. `copyFolder` and the logo upload both wrote them with no Cache-Control at all, so anything fetched in the window between creation and the first upload could be reused indefinitely, as the org's branding, after the org replaced the file. That is what "Distinct Designs Construction" hit: its uploaded simple logo reverted to Kamo's on refresh while the layout (which reads a revisioned config.json) stayed correct, and its background pane showed Kamo's three seeded images followed by its own — the slots past the seeded three had no cache entry to be stale. Its full logo was unaffected only because the upload changed the extension, giving it a different key. Both write paths now carry the same `max-age=0, must-revalidate` the provisioned CSS, config.json and backgrounds already used, so the whole theme pipeline is consistent.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing