Ship default logos so unbranded hosts render a real lockup

Fixkamolos
Ya
18 Mei 2026, 02:58 UTC
Mwandishi
Kamo
Ahadi ya
6ba9770

Ported ThemeLogo dropped the local-file fallback the kamo-internal original had, so any host whose tenant MinIO bucket hadn't been provisioned (or doesn't exist at all) silently degraded to a text wordmark. The defaults were sitting in kamo-internal/public/ the whole time — copied them over. - public/logo.svg + public/logo-full.svg copied verbatim from kamo-internal's defaults (the K-leaf mark, primary green #98AA42). - ThemeLogo.candidates() now appends /logo-full.svg and /logo.svg to the fallback chain AFTER the tenant MinIO URLs. Tenant assets win when present; otherwise the local fallback renders. - ThemeLogo no longer bails when getThemePath() returns empty — local fallbacks alone are still a valid list. - Cache-bust is skipped for /-prefixed local paths (Next.js owns caching for those). - SSR <link rel="preload"> in app/layout.tsx targets /logo-full.svg when no tenant path resolves, so the header doesn't flash the wordmark before the image arrives. Build 32/32.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei