The sign-in response carries each workspace's logo

FeatureSecurityService
Shipped
August 26, 2026 at 1:04 AM UTC
Author
Kamo
Commit
ff8fe7a

The picker drew two letters per row because the response held a name and an alias and no image. A list of workspaces is read by mark long before it is read by name. Resolved here rather than in the browser. The URL has to name the folder the theme was provisioned into, and that rule already lives in OrgDomains.themeImageBase — rebuilding it in kamo-login would be a second copy to drift, and every row would request a file nothing ever wrote. simpleLogoUrl mirrors resolvePrimaryDomain for the same reason: DNS-verified first, then merely active, then {alias}.kamocrm.com for an org that has no domain at all. The domains ride on the existing sign-in query as two aggregates rather than a lookup per org — this is the sign-in path, and a member of a dozen workspaces would otherwise pay a query each. Two, because choosing between them is the preference above. Nothing records whether a logo was ever uploaded, so the URL says where the file WOULD be. A 404 is an ordinary outcome and the row falls back to its monogram. Verified against production: kamocrm.com, b11capital.com, breakbeat.store and the demo subdomain tenants all return the image at the URL these rules build — the subdomains from their own folder on the parent apex, not collapsed into the platform's.

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