KamoCRM

Pre-sized copies of every org logo beside the original

FeatureSecurityService
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.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing