mirror of
https://github.com/luxfi/bridge.git
synced 2026-09-24 00:26:46 +00:00
User pointed out that @luxfi/brand should be used 'for all lux apps / projects' — confirming the canonical brand sourcing principle. Audit pass against the bridge stack found two leaks of Lux-specific identity INTO the jurisdiction-neutral SDK: 1. `pkg/bridge/package.json` declared `@luxfi/brand` as a direct dependency — but the SDK source never imports it. Dead dep and a layering violation: Zoo / Hanzo / any white-label consumer of `@luxfi/bridge` shouldn't pull Lux brand metadata into their bundle. Dropped. 2. `pkg/bridge/src/app/lib/wagmi-config.ts` had a hardcoded SSR fallback URL `https://bridge.lux.network` for the WalletConnect metadata block. On client-side hydration this is overridden by `window.location.origin`, but the first SSR-render frame was leaking the Lux hostname into Zoo / Hanzo tenant builds. Replaced with `deriveAppOrigin(cfg.apiHost)` — strips the leading `api.` subdomain from the configured API host so the fallback is tenant-derived. `api.bridge.lux.network` → `bridge.lux.network`, `api.bridge.zoo.network` → `bridge.zoo.network`. Catch-all fallback is `https://localhost` if the URL fails to parse. 3. `docs/LLM.md` gains a 'Canonical brand sourcing' subsection documenting the principle: - `@luxfi/brand` (~/work/lux/brand) is the ONLY source of Lux brand identity for ALL Lux-ecosystem apps (bridge, exchange, id, pay, etc.) - SDK is jurisdiction-neutral; tenants supply brand at mount time - App-specific endpoints (api.bridge.lux.network) are independent of brand.json's appDomain (lux.exchange) - Other Lux apps follow the same pattern; any hardcoded brand string in a Lux app is a leak — file as a follow-up issue. SDK 1.0.3 -> 1.0.4. Additive + neutralization only — no functional behavior change for Lux consumers; Zoo / Hanzo SSR frames now show their own hostname instead of bridge.lux.network. Tests: 58/58 SDK unchanged.