- Shipped
- September 6, 2026 at 3:17 AM UTC
- Author
- Kamo
- Commit
- ba4f4b6
The route map in PaneRibbon stays exactly as it was and becomes the fallback layer: each of "/", "/member" and "/team" now pairs the wording this site ships with the settings key an organization can override it from. A route missing from the map still gets no ribbon at all — /sorry, /logout and the verification screens are not places to be cheered along, and nothing on the labeling page can change that. The wording arrives the way the register logo overlay already does: resolved through the parent chain by provisioning, baked into the theme config.json, and parked in sessionStorage by DynamicMetaLoader before it fires the config-loaded event, so the first paint is not a frame behind. An org that has chosen nothing has no key at all, and every screen reads exactly as it does today. useRibbonMessage also listens for a re-apply, because this site repaints itself when a route names an organization the host did not — a ribbon left on the platform's greeting through that transition would be the one piece of the page still unbranded. The lookup runs for every route and the decision to render is taken after it: hooks cannot be called conditionally, and a route with no ribbon still mounts this component. The favicon follows authLogoBrandSource, matching the logos on these screens, and only when provisioning actually generated a software set.