- Shipped
- September 24, 2026 at 10:54 PM UTC
- Author
- Kamo
- Commit
- 212eb5c
Every surface drew org logos from the original upload: 2.2 MB for crm's full logo at a 30-56px nav/header, 2.95 MB (its .svg stand-in) in the email composer, 4.3 MB for its traced lifestyle SVG. ThemeLogoVariantService now keeps **************** + manifest.json for all eight logo slots (stem = the original's file name), cut by ConversionService /image/logo-variants. Clients pick the smallest rung >= drawn height x 2 and fall back to the original. Originals are untouched. - upload-logo: the old logo's copies are deleted first (nothing stale is ever served), then the new ones are cut; the request waits at most 20s, the rest finishes in the background. After the ext is saved. - provisionFull/provisionUpdate: ensureAll re-cuts only stems whose source bytes changed (SHA-256 in the manifest), drops copies of a logo that is gone. Before writeConfigFiles, like the favicons. - DataLoader: a background backfill for every live org (not on the boot path). - img/sized/ is never seeded from the base theme.
