mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-07-17 17:28:58 +00:00
## Summary Reports each hosted Cloud renderer's declarative Firebase auth state to Desktop. Desktop remains the sole owner of PostHog identity and arbitrates all live `WebContents` before changing the process-global person. Linear: [GTM-278](https://linear.app/comfyorg/issue/GTM-278) · Parent: [GTM-93](https://linear.app/comfyorg/issue/GTM-93) ## Changes - reports `pending` as soon as host auth synchronization starts - waits for Firebase initialization, then reports `signed_out` or `signed_in` with the Firebase UID - reports restored sessions, logout, and direct account switches through the same declarative state contract - makes repeated same-UID Firebase updates a no-op - adds the optional `reportFirebaseAuthState` contract to the Desktop bridge types - keeps host bridge failures from interrupting renderer startup or Firebase auth ## Ownership and privacy - the frontend never calls PostHog `identify`, `alias`, bind, or unbind APIs - browser PostHog provider behavior is unchanged - the auth-state message is local to Desktop; Desktop #1272 applies its own telemetry-consent gate before any PostHog identify or emission - `enable_telemetry` controls only the frontend `HostTelemetrySink` (renderer event forwarding), so this observer deliberately does not share that rollout flag - no canonical `comfy_user_id`, `/api/user` lookup, Cloud API dependency, Redis state, token redemption, or website transport change is added ## Review and rollout order Review [Comfy-Desktop #1272](https://github.com/Comfy-Org/Comfy-Desktop/pull/1272) first because it defines the trusted state-reporting API and consensus policy. Deploy this frontend first: the method is optional and therefore a no-op on older Desktop builds. Then release Desktop #1272, and only afterward deploy [comfy-router #34](https://github.com/Comfy-Org/comfy-router/pull/34). Auth [Comfy-Desktop #1222](https://github.com/Comfy-Org/Comfy-Desktop/pull/1222) must not become an identity authority; with Desktop #1272 its legacy imperative bind is inert and the post-reload Firebase report is the source of truth. ## Testing - `pnpm test:unit src/platform/telemetry/hostUserIdSync.test.ts src/platform/telemetry/providers/cloud/PostHogTelemetryProvider.test.ts` — 53 tests passed - `pnpm typecheck` - targeted Oxlint and ESLint - targeted `oxfmt --check` - `pnpm knip` - pre-commit typecheck/lint/format hooks - pre-push `knip` - `git diff --check` No user-facing UI changes.