- Shipped
- September 12, 2026 at 7:37 AM UTC
- Author
- Kamo
- Commit
- ebc0f1a
Behavior & Labeling pointed each tile at the slot's public URL the moment the commit returned, before provisioning had written the slot (it had not even been requested yet). For a new organization that URL still held the base theme's photograph, seeded into its folder, so an owner who saved a first background was shown KamoCRM's image as their own, and the tile never re-fetched because the URL never changed. Before saving, the picked image showed as "missing": /api/conversion/image/resize-bg fell back to a host named conversion-service on port 8080, which does not resolve in the cluster (live: a bare 500 in 0.17s), so every background was previewed as the raw file, a blank tile for anything the browser cannot decode. - The route falls back to kamowsconversion-service like every other conversion route; a guard test walks them all. - resizeBackgroundIfNeeded returns the converter's WebP, named and typed as one, and refuses with a reason a file neither the converter nor the browser can use. Both pickers (Behavior & Labeling and the creation wizard) say why, instead of adding a tile that cannot draw itself. - After a save the tiles keep the pictures they showed and swap to the slot URLs, pinned with ?v=<themeRevision>, once config.json carries the revision provisioning writes last.