- Shipped
- August 26, 2026 at 11:12 PM UTC
- Author
- kamo
- Commit
- dba99f4
Signed into Wienerschnitzel, opened Settings → Branding, saved Company Info, and the entire workspace reverted to Kamo's logo and colours. Closing the tab and opening the organization again brought its own branding back. Two defects, and the first one is mine from the alias migration. OrgUrlSync held its own copy of the sessionStorage key. Theme.tsx renamed that key from "kamo-theme-domain" to "kamo-theme-slug" and this copy kept the old name, so the read returned null and `?org=` silently stopped being restored after a client-side navigation. Nothing threw. Two pages into the app the URL no longer named the tenant, so the server re-render a save triggers had nothing to resolve, fell back to the host — which on the shared platform host is the platform — and repainted everything. The key is imported now, and a test asserts the component imports it rather than restating the rules, because the rules were never wrong. The second is why a lost `?org=` was able to do that much damage. OrgProvider recorded whatever organization the render produced as the tab's own, including a host fallback. So one untrusted render did not just paint the wrong branding for that render — it overwrote the tab's recorded organization, and everything client-side after it was wrong too, until the tab was closed. The layout already knows whether the organization was NAMED or merely inferred; it passes that to OrgUrlSync for exactly this reason, and now passes it here too. A fallback is still rendered — it has to be, or there is no shell — it simply cannot become the tab's answer.